From 8b7a061d016ae84db8ff5668264a7e88eb148fe5 Mon Sep 17 00:00:00 2001 From: dsharletg Date: Thu, 13 Jul 2017 23:06:49 -0700 Subject: [PATCH] Only pass scalars in a single buffer. --- .../arm-32-android/libhalide_hexagon_host.so | Bin 79584 -> 79600 bytes .../arm-64-android/libhalide_hexagon_host.so | Bin 22184 -> 22208 bytes .../bin/src/halide_hexagon_remote.h | 4 +- .../bin/src/halide_hexagon_remote_skel.c | 34 +++++---- .../bin/src/halide_hexagon_remote_stub.c | 31 ++++---- .../bin/v60/libhalide_hexagon_remote_skel.so | Bin 32536 -> 32504 bytes .../libhalide_hexagon_remote_skel.so | Bin 37888 -> 37912 bytes .../hexagon_remote/halide_hexagon_remote.idl | 12 ++-- src/runtime/hexagon_remote/halide_remote.cpp | 32 ++------- src/runtime/hexagon_remote/host_shim.cpp | 50 +++---------- src/runtime/hexagon_remote/pack_buffer.h | 66 ------------------ 11 files changed, 56 insertions(+), 173 deletions(-) delete mode 100644 src/runtime/hexagon_remote/pack_buffer.h diff --git a/src/runtime/hexagon_remote/bin/arm-32-android/libhalide_hexagon_host.so b/src/runtime/hexagon_remote/bin/arm-32-android/libhalide_hexagon_host.so index fc4653f555acc100fb796bf0a705871d5d05cd3e..dc83b23b670a86ead3cccb8480574cf7f60b9885 100755 GIT binary patch delta 12443 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 WJ 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ℜe>L>m>B!A*a zn|)>IhM9htq2jDCGi)9?WV2T)Rko~|j#)xJHp$Q5k>5>9Cke2M0&E7^># z0X+kH7SW2_PVbSh*}Ja~(`)!JEX0!qci$j$H!6e5>V50tLFA7?zH7^6!sI*nPPuvV zG`>SVGdY)UlkZKQ8nsc$7#b{--%QS(a4(SA-3~K5!_@9(UsL#QS?DU_b7j3Nmrs+g zx^CvV@}FI)6C9+AKBD%Xg)}u-vi!zn=XN<^%2dBa<3)kGoh^7o+rzd{S~$;oBs>

*fi?KYUd5O9EO{B|_zFLZYMEVpW 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 delta 3955 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 WbNU= 24); + _ASSERT(_nErr, _pra[0].buf.nLen >= 20); _primIn = _pra[0].buf.pv; _praIn = (_pra + 1); _praROut = (_praIn + _numIn[0] + 0); @@ -621,11 +620,10 @@ static __inline int _skel_method_4(int (*_pfn)(uint32_t, uint32_t, void*, uint32 { _TRY(_nErr, _skel_unpack(_al, (_praIn + 2), _ppraIn, (_praROut + 0), _ppraROut, _seq_primIn3, 0, SLIM_IFPTR32((char**)&(((uint32_t*)_seq_nat3)[0]), (char**)&(((uint64_t*)_seq_nat3)[0])), SLIM_IFPTR32((uint32_t*)&(((uint32_t*)_seq_nat3)[1]), (uint32_t*)&(((uint32_t*)_seq_nat3)[2])))); } - _COPY(_in4, 0, _primIn, 16, 4); - _COPY(_in5Len, 0, _primIn, 20, 4); - _ASSERT(_nErr, (int)((_praIn[2].buf.nLen / 1)) >= (int)(_in5Len[0])); - _in5[0] = _praIn[2].buf.pv; - _TRY(_nErr, _pfn(*_in0, *_in1, *_in2, *_in2Len, *_rout3, *_rout3Len, *_in4, *_in5, *_in5Len)); + _COPY(_in4Len, 0, _primIn, 16, 4); + _ASSERT(_nErr, (int)((_praIn[2].buf.nLen / 8)) >= (int)(_in4Len[0])); + _in4[0] = _praIn[2].buf.pv; + _TRY(_nErr, _pfn(*_in0, *_in1, *_in2, *_in2Len, *_rout3, *_rout3Len, *_in4, *_in4Len)); for(_ii = 0, _seq_nat2 = (char*)_in2[0];_ii < (int)_in2Len[0];++_ii, _seq_nat2 = (_seq_nat2 + SLIM_IFPTR32(8, 16))) { _TRY(_nErr, _skel_pack_1((_praROutPost + 0), _ppraROutPost, 0, SLIM_IFPTR32((char**)&(((uint32_t*)_seq_nat2)[0]), (char**)&(((uint64_t*)_seq_nat2)[0])), SLIM_IFPTR32((uint32_t*)&(((uint32_t*)_seq_nat2)[1]), (uint32_t*)&(((uint32_t*)_seq_nat2)[2])))); diff --git a/src/runtime/hexagon_remote/bin/src/halide_hexagon_remote_stub.c b/src/runtime/hexagon_remote/bin/src/halide_hexagon_remote_stub.c index 8b3a975cb8d2..78292ddfa388 100644 --- a/src/runtime/hexagon_remote/bin/src/halide_hexagon_remote_stub.c +++ b/src/runtime/hexagon_remote/bin/src/halide_hexagon_remote_stub.c @@ -418,16 +418,16 @@ struct Interface { #define __QAIC_SLIM_EXPORT #endif -static const Type types[2]; +static const Type types[3]; static const SequenceType sequenceTypes[1] = {{&(types[1]),0x0,0x4,0x4,0x0}}; -static const Type types[2] = {{0x1,{{(const uintptr_t)0,(const uintptr_t)0}}, 2,0x1},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(types[0]),(const uintptr_t)0x0}}, 9,SLIM_IFPTR32(0x4,0x8)}}; -static const Parameter parameters[8] = {{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(types[0]),(const uintptr_t)0x0}}, 9,SLIM_IFPTR32(0x4,0x8),0,0},{0x4,{{(const uintptr_t)0,(const uintptr_t)0}}, 2,0x4,3,0},{0x4,{{(const uintptr_t)0,(const uintptr_t)0}}, 2,0x4,0,0},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(sequenceTypes[0]),0}}, 25,SLIM_IFPTR32(0x4,0x8),0,0},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(sequenceTypes[0]),0}}, 25,SLIM_IFPTR32(0x4,0x8),3,0},{0x4,{{(const uintptr_t)0,(const uintptr_t)1}}, 2,0x4,0,0},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(types[0]),(const uintptr_t)0x0}}, 9,SLIM_IFPTR32(0x4,0x8),3,0},{0x4,{{(const uintptr_t)0,(const uintptr_t)1}}, 2,0x4,3,0}}; -static const Parameter* const parameterArrays[21] = {(&(parameters[5])),(&(parameters[2])),(&(parameters[2])),(&(parameters[5])),(&(parameters[2])),(&(parameters[2])),(&(parameters[5])),(&(parameters[5])),(&(parameters[2])),(&(parameters[2])),(&(parameters[3])),(&(parameters[4])),(&(parameters[5])),(&(parameters[0])),(&(parameters[2])),(&(parameters[0])),(&(parameters[1])),(&(parameters[7])),(&(parameters[7])),(&(parameters[6])),(&(parameters[7]))}; -static const Method methods[9] = {{REMOTE_SCALARS_MAKEX(0,0,0x2,0x1,0x0,0x0),0x4,0x4,3,2,(&(parameterArrays[15])),0x4,0x4},{REMOTE_SCALARS_MAKEX(0,0,0x2,0x1,0x0,0x0),0x8,0x4,4,3,(&(parameterArrays[14])),0x4,0x4},{REMOTE_SCALARS_MAKEX(0,0,0x0,0x0,0x0,0x0),0x0,0x0,0,0,0,0x0,0x0},{REMOTE_SCALARS_MAKEX(0,0,255,255,15,15),0x18,0x0,10,6,(&(parameterArrays[8])),0x4,0x1},{REMOTE_SCALARS_MAKEX(0,0,0x1,0x0,0x0,0x0),0x4,0x0,1,1,(&(parameterArrays[1])),0x4,0x0},{REMOTE_SCALARS_MAKEX(0,0,0x1,0x2,0x0,0x0),0x4,0x4,4,2,(&(parameterArrays[19])),0x4,0x4},{REMOTE_SCALARS_MAKEX(0,0,0x0,0x1,0x0,0x0),0x0,0x8,2,2,(&(parameterArrays[17])),0x1,0x4},{REMOTE_SCALARS_MAKEX(0,0,0x1,0x0,0x0,0x0),0x4,0x0,1,1,(&(parameterArrays[0])),0x4,0x0},{REMOTE_SCALARS_MAKEX(0,0,0x1,0x0,0x0,0x0),0x20,0x0,8,8,(&(parameterArrays[0])),0x4,0x0}}; +static const Type types[3] = {{0x1,{{(const uintptr_t)0,(const uintptr_t)0}}, 2,0x1},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(types[0]),(const uintptr_t)0x0}}, 9,SLIM_IFPTR32(0x4,0x8)},{0x8,{{(const uintptr_t)0,(const uintptr_t)0}}, 2,0x8}}; +static const Parameter parameters[9] = {{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(types[0]),(const uintptr_t)0x0}}, 9,SLIM_IFPTR32(0x4,0x8),0,0},{0x4,{{(const uintptr_t)0,(const uintptr_t)0}}, 2,0x4,3,0},{0x4,{{(const uintptr_t)0,(const uintptr_t)0}}, 2,0x4,0,0},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(sequenceTypes[0]),0}}, 25,SLIM_IFPTR32(0x4,0x8),0,0},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(sequenceTypes[0]),0}}, 25,SLIM_IFPTR32(0x4,0x8),3,0},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(types[2]),(const uintptr_t)0x0}}, 9,SLIM_IFPTR32(0x4,0x8),0,0},{SLIM_IFPTR32(0x8,0x10),{{(const uintptr_t)&(types[0]),(const uintptr_t)0x0}}, 9,SLIM_IFPTR32(0x4,0x8),3,0},{0x4,{{(const uintptr_t)0,(const uintptr_t)1}}, 2,0x4,3,0},{0x4,{{(const uintptr_t)0,(const uintptr_t)1}}, 2,0x4,0,0}}; +static const Parameter* const parameterArrays[20] = {(&(parameters[8])),(&(parameters[2])),(&(parameters[2])),(&(parameters[8])),(&(parameters[2])),(&(parameters[2])),(&(parameters[8])),(&(parameters[8])),(&(parameters[2])),(&(parameters[2])),(&(parameters[3])),(&(parameters[4])),(&(parameters[5])),(&(parameters[2])),(&(parameters[0])),(&(parameters[1])),(&(parameters[7])),(&(parameters[7])),(&(parameters[6])),(&(parameters[7]))}; +static const Method methods[9] = {{REMOTE_SCALARS_MAKEX(0,0,0x2,0x1,0x0,0x0),0x4,0x4,3,2,(&(parameterArrays[14])),0x4,0x4},{REMOTE_SCALARS_MAKEX(0,0,0x2,0x1,0x0,0x0),0x8,0x4,4,3,(&(parameterArrays[13])),0x4,0x4},{REMOTE_SCALARS_MAKEX(0,0,0x0,0x0,0x0,0x0),0x0,0x0,0,0,0,0x0,0x0},{REMOTE_SCALARS_MAKEX(0,0,255,255,15,15),0x14,0x0,9,5,(&(parameterArrays[8])),0x4,0x1},{REMOTE_SCALARS_MAKEX(0,0,0x1,0x0,0x0,0x0),0x4,0x0,1,1,(&(parameterArrays[1])),0x4,0x0},{REMOTE_SCALARS_MAKEX(0,0,0x1,0x2,0x0,0x0),0x4,0x4,4,2,(&(parameterArrays[18])),0x4,0x4},{REMOTE_SCALARS_MAKEX(0,0,0x0,0x1,0x0,0x0),0x0,0x8,2,2,(&(parameterArrays[16])),0x1,0x4},{REMOTE_SCALARS_MAKEX(0,0,0x1,0x0,0x0,0x0),0x4,0x0,1,1,(&(parameterArrays[0])),0x4,0x0},{REMOTE_SCALARS_MAKEX(0,0,0x1,0x0,0x0,0x0),0x20,0x0,8,8,(&(parameterArrays[0])),0x4,0x0}}; static const Method* const methodArrays[10] = {&(methods[0]),&(methods[1]),&(methods[2]),&(methods[2]),&(methods[3]),&(methods[4]),&(methods[5]),&(methods[6]),&(methods[7]),&(methods[8])}; -static const char strings[368] = "initialize_kernels_v3\0busbwUsagePercentage\0set_performance_mode\0poll_profiler_state\0release_kernels_v2\0bwMegabytesPerSec\0small_input_args\0set_performance\0output_buffers\0mipsPerThread\0input_buffers\0power_hvx_off\0get_symbol_v4\0scalar_count\0power_hvx_on\0set_latency\0set_bus_bw\0module_ptr\0mipsTotal\0read_size\0set_mips\0poll_log\0threads\0sym_ptr\0symbol\0run_v2\0func\0name\0code\0"; -static const uint16_t methodStrings[35] = {138,305,169,285,263,103,22,251,255,346,274,339,183,154,225,121,211,274,358,331,64,353,323,314,319,295,0,363,274,43,59,84,274,197,238}; -static const uint16_t methodStringsArrays[10] = {26,16,34,33,9,31,23,20,29,0}; +static const char strings[346] = "initialize_kernels_v3\0busbwUsagePercentage\0set_performance_mode\0poll_profiler_state\0release_kernels_v2\0bwMegabytesPerSec\0set_performance\0output_buffers\0mipsPerThread\0input_buffers\0power_hvx_off\0get_symbol_v4\0power_hvx_on\0set_latency\0set_bus_bw\0module_ptr\0mipsTotal\0read_size\0set_mips\0poll_log\0threads\0scalars\0sym_ptr\0symbol\0run_v2\0func\0name\0code\0"; +static const uint16_t methodStrings[34] = {121,275,152,255,233,103,22,221,225,324,244,317,166,137,301,194,244,336,309,64,331,293,284,289,265,0,341,244,43,59,84,244,180,208}; +static const uint16_t methodStringsArrays[10] = {25,15,33,32,9,30,22,19,28,0}; __QAIC_SLIM_EXPORT const Interface __QAIC_SLIM(halide_hexagon_remote_slim) = {10,&(methodArrays[0]),0,0,&(methodStringsArrays [0]),methodStrings,strings}; #endif //_HALIDE_HEXAGON_REMOTE_SLIM_H #ifdef __cplusplus @@ -646,7 +646,7 @@ static __inline void _count_1(int _numIn[1], int _numROut[1], char* _in0[1], uin _numIn[0] += 1; _numROut[0] += 0; } -static __inline int _stub_method_3(remote_handle _handle, uint32_t _mid, uint32_t _in0[1], uint32_t _in1[1], void* _in2[1], uint32_t _in2Len[1], void* _rout3[1], uint32_t _rout3Len[1], uint32_t _in4[1], char* _in5[1], uint32_t _in5Len[1]) { +static __inline int _stub_method_3(remote_handle _handle, uint32_t _mid, uint32_t _in0[1], uint32_t _in1[1], void* _in2[1], uint32_t _in2Len[1], void* _rout3[1], uint32_t _rout3Len[1], char* _in4[1], uint32_t _in4Len[1]) { remote_arg* _pra; int _numIn[1]; int _numROut[1]; @@ -654,7 +654,7 @@ static __inline int _stub_method_3(remote_handle _handle, uint32_t _mid, uint32_ int _ii; char* _seq_nat3; _allocator _al[1] = {{0}}; - uint32_t _primIn[6]; + uint32_t _primIn[5]; remote_arg* _praIn; remote_arg* _praROut; remote_arg* _praROutPost; @@ -697,10 +697,9 @@ static __inline int _stub_method_3(remote_handle _handle, uint32_t _mid, uint32_ { _TRY(_nErr, _stub_pack(_al, (_praIn + 2), _ppraIn, (_praROut + 0), _ppraROut, _seq_primIn3, 0, SLIM_IFPTR32((char**)&(((uint32_t*)_seq_nat3)[0]), (char**)&(((uint64_t*)_seq_nat3)[0])), SLIM_IFPTR32((uint32_t*)&(((uint32_t*)_seq_nat3)[1]), (uint32_t*)&(((uint32_t*)_seq_nat3)[2])))); } - _COPY(_primIn, 16, _in4, 0, 4); - _COPY(_primIn, 20, _in5Len, 0, 4); - _praIn[2].buf.pv = _in5[0]; - _praIn[2].buf.nLen = (1 * _in5Len[0]); + _COPY(_primIn, 16, _in4Len, 0, 4); + _praIn[2].buf.pv = _in4[0]; + _praIn[2].buf.nLen = (8 * _in4Len[0]); _TRY(_nErr, __QAIC_REMOTE(remote_handle_invoke)(_handle, REMOTE_SCALARS_MAKEX(0, _mid, (_numIn[0] + 1), (_numROut[0] + 0), 0, 0), _pra)); for(_ii = 0, _seq_nat2 = (char*)_in2[0];_ii < (int)_in2Len[0];++_ii, _seq_nat2 = (_seq_nat2 + SLIM_IFPTR32(8, 16))) { @@ -714,9 +713,9 @@ static __inline int _stub_method_3(remote_handle _handle, uint32_t _mid, uint32_ _allocator_deinit(_al); return _nErr; } -__QAIC_STUB_EXPORT int __QAIC_STUB(halide_hexagon_remote_run_v2)(halide_hexagon_remote_handle_t module_ptr, halide_hexagon_remote_handle_t symbol, const halide_hexagon_remote_buffer* input_buffers, int input_buffersLen, halide_hexagon_remote_buffer* output_buffers, int output_buffersLen, int scalar_count, const unsigned char* small_input_args, int small_input_argsLen) __QAIC_STUB_ATTRIBUTE { +__QAIC_STUB_EXPORT int __QAIC_STUB(halide_hexagon_remote_run_v2)(halide_hexagon_remote_handle_t module_ptr, halide_hexagon_remote_handle_t symbol, const halide_hexagon_remote_buffer* input_buffers, int input_buffersLen, halide_hexagon_remote_buffer* output_buffers, int output_buffersLen, const halide_hexagon_remote_scalar_t* scalars, int scalarsLen) __QAIC_STUB_ATTRIBUTE { uint32_t _mid = 4; - return _stub_method_3(_halide_hexagon_remote_handle(), _mid, (uint32_t*)&module_ptr, (uint32_t*)&symbol, (void**)&input_buffers, (uint32_t*)&input_buffersLen, (void**)&output_buffers, (uint32_t*)&output_buffersLen, (uint32_t*)&scalar_count, (char**)&small_input_args, (uint32_t*)&small_input_argsLen); + return _stub_method_3(_halide_hexagon_remote_handle(), _mid, (uint32_t*)&module_ptr, (uint32_t*)&symbol, (void**)&input_buffers, (uint32_t*)&input_buffersLen, (void**)&output_buffers, (uint32_t*)&output_buffersLen, (char**)&scalars, (uint32_t*)&scalarsLen); } static __inline int _stub_method_4(remote_handle _handle, uint32_t _mid, uint32_t _in0[1]) { remote_arg _pra[1]; diff --git a/src/runtime/hexagon_remote/bin/v60/libhalide_hexagon_remote_skel.so b/src/runtime/hexagon_remote/bin/v60/libhalide_hexagon_remote_skel.so index 102416c183453676703ae0de058e071f45bf57e2..d60c45cbd11b1ed99085bb455bb3d110b9ba28fc 100755 GIT binary patch delta 10008 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 YIM_)j5z!6^@54RaI&0Aqd=?M-H<4G9;s5{u delta 8257 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 DF`IFl diff --git a/src/runtime/hexagon_remote/halide_hexagon_remote.idl b/src/runtime/hexagon_remote/halide_hexagon_remote.idl index 1a95a94d7ed7..d4d02abdcd21 100644 --- a/src/runtime/hexagon_remote/halide_hexagon_remote.idl +++ b/src/runtime/hexagon_remote/halide_hexagon_remote.idl @@ -1,7 +1,10 @@ +#include "AEEStdDef.idl" + interface halide_hexagon_remote { typedef sequence buffer; typedef unsigned long handle_t; + typedef unsigned long long scalar_t; // Routine to initialize a module on the remote side. Returns a pointer to the module. long initialize_kernels_v3(in buffer code, rout handle_t module_ptr); @@ -17,16 +20,11 @@ interface halide_hexagon_remote long power_hvx_off(); // Routine to run a pipeline on the remote side. - // v2: Pass all scalars and small input buffers in a - // small_input_args buffer. The small_input_args buffer is packed - // using the protocol in pack_buffer.h. It contains the input - // buffers first, followed by the scalars. An input buffer is - // passed in the small_input_args buffer if the input buffer is - // null. + // v2: Pass all scalars in a single buffer as an array of scalar_t. long run_v2(in handle_t module_ptr, in handle_t symbol, in sequence input_buffers, rout sequence output_buffers, - in long scalar_count, in buffer small_input_args); + in sequence scalars); // Routine to clean up a module on the remote side. long release_kernels_v2(in handle_t module_ptr); diff --git a/src/runtime/hexagon_remote/halide_remote.cpp b/src/runtime/hexagon_remote/halide_remote.cpp index ce256877286f..38d2f11e37b0 100644 --- a/src/runtime/hexagon_remote/halide_remote.cpp +++ b/src/runtime/hexagon_remote/halide_remote.cpp @@ -15,13 +15,13 @@ extern "C" { #include "dlib.h" #include "pipeline_context.h" #include "log.h" -#include "pack_buffer.h" const int stack_alignment = 128; const int stack_size = 1024 * 1024; typedef halide_hexagon_remote_handle_t handle_t; typedef halide_hexagon_remote_buffer buffer; +typedef halide_hexagon_remote_scalar_t scalar_t; extern "C" { @@ -316,8 +316,7 @@ int halide_hexagon_remote_get_symbol_v4(handle_t module_ptr, const char* name, i int halide_hexagon_remote_run_v2(handle_t module_ptr, handle_t function, const buffer *input_buffersPtrs, int input_buffersLen, buffer *output_buffersPtrs, int output_buffersLen, - int scalar_count, - const unsigned char *small_input_args, int small_input_argsLen) { + const scalar_t *scalars, int scalarsLen) { // Get a pointer to the argv version of the pipeline. pipeline_argv_t pipeline = reinterpret_cast(function); @@ -330,43 +329,24 @@ int halide_hexagon_remote_run_v2(handle_t module_ptr, handle_t function, uint64_t dev; uint8_t* host; }; - void **args = (void **)__builtin_alloca((input_buffersLen + scalar_count + output_buffersLen) * sizeof(void *)); + void **args = (void **)__builtin_alloca((input_buffersLen + scalarsLen + output_buffersLen) * sizeof(void *)); buffer_t *buffers = (buffer_t *)__builtin_alloca((input_buffersLen + output_buffersLen) * sizeof(buffer_t)); - const unsigned char *small_input_args_end = small_input_args + small_input_argsLen; - void **next_arg = &args[0]; buffer_t *next_buffer_t = &buffers[0]; // Input buffers come first. for (int i = 0; i < input_buffersLen; i++, next_arg++, next_buffer_t++) { - if (input_buffersPtrs[i].data) { - // This buffer is passed directly. - next_buffer_t->host = input_buffersPtrs[i].data; - } else { - // This input buffer was passed in the small_input_args buffer. - next_buffer_t->host = const_cast(read_buffer(small_input_args)); - if (small_input_args > small_input_args_end) { - log_printf("Input buffer %d read past the end of small_input_args [%p, %p)\n", - i, small_input_args - small_input_args_end); - return halide_error_code_access_out_of_bounds; - } - } + next_buffer_t->host = input_buffersPtrs[i].data; *next_arg = next_buffer_t; } - // Output buffers are next. for (int i = 0; i < output_buffersLen; i++, next_arg++, next_buffer_t++) { next_buffer_t->host = output_buffersPtrs[i].data; *next_arg = next_buffer_t; } // Input scalars are last. - for (int i = 0; i < scalar_count; i++, next_arg++) { - *next_arg = const_cast(read_buffer(small_input_args)); - if (small_input_args > small_input_args_end) { - log_printf("Input scalar %d read past the end of small_input_args by %d bytes\n", - i, small_input_args - small_input_args_end); - return halide_error_code_access_out_of_bounds; - } + for (int i = 0; i < scalarsLen; i++, next_arg++) { + *next_arg = const_cast(&scalars[i]); } // Prior to running the pipeline, power HVX on (if it was not already on). diff --git a/src/runtime/hexagon_remote/host_shim.cpp b/src/runtime/hexagon_remote/host_shim.cpp index b9133bfa23ca..8e1a0ab6b114 100644 --- a/src/runtime/hexagon_remote/host_shim.cpp +++ b/src/runtime/hexagon_remote/host_shim.cpp @@ -1,10 +1,11 @@ #include +#include #include "bin/src/halide_hexagon_remote.h" -#include "pack_buffer.h" typedef halide_hexagon_remote_handle_t handle_t; typedef halide_hexagon_remote_buffer buffer; +typedef halide_hexagon_remote_scalar_t scalar_t; extern "C" { @@ -13,52 +14,23 @@ int halide_hexagon_remote_run(handle_t module_ptr, handle_t function, buffer *input_buffersPtrs, int input_buffersLen, buffer *output_buffersPtrs, int output_buffersLen, const buffer *input_scalarsPtrs, int input_scalarsLen) { - const int buffer_alignment = 128; - const int scalar_alignment = 4; - - int small_input_args_size = 0; - - // Add up the number and size of the small input buffers. Buffers - // are considered small if they are less than - // min_input_buffer_size bytes. - const int min_input_buffer_size = 4096; - for (int i = 0; i < input_buffersLen; i++) { - if (input_buffersPtrs[i].dataLen < min_input_buffer_size) { - small_input_args_size += packed_buffer_size(input_buffersPtrs[i].dataLen, buffer_alignment); - } - } - - // Add up the number and size of the scalars. + // Pack all of the scalars into an array of scalar_t. + scalar_t *scalars = (scalar_t *)__builtin_alloca(input_scalarsLen * sizeof(scalar_t)); for (int i = 0; i < input_scalarsLen; i++) { - small_input_args_size += packed_buffer_size(input_scalarsPtrs[i].dataLen, scalar_alignment); - } - - // Allocate a buffer to hold the packed small buffers and scalars. - unsigned char *small_input_args = (unsigned char *)__builtin_alloca(small_input_args_size + buffer_alignment); - small_input_args = (unsigned char *)(((uintptr_t)small_input_args + buffer_alignment - 1) & ~(buffer_alignment - 1)); - - // Pack up the small buffers. - unsigned char *write = small_input_args; - for (int i = 0; i < input_buffersLen; i++) { - if (input_buffersPtrs[i].dataLen < min_input_buffer_size) { - write_buffer(write, input_buffersPtrs[i].data, input_buffersPtrs[i].dataLen, buffer_alignment); - - // Remove the buffer from the actual buffers list. - input_buffersPtrs[i].data = NULL; - input_buffersPtrs[i].dataLen = 0; + int scalar_size = input_scalarsPtrs[i].dataLen; + if (scalar_size > sizeof(scalar_t)) { + __android_log_print(ANDROID_LOG_ERROR, "halide", "Scalar argument %d is larger than %d bytes (%d bytes)", + i, sizeof(scalar_t), scalar_size); + return -1; } - } - - // Pack up the scalars. - for (int i = 0; i < input_scalarsLen; i++) { - write_buffer(write, input_scalarsPtrs[i].data, input_scalarsPtrs[i].dataLen, scalar_alignment); + memcpy(&scalars[i], input_scalarsPtrs[i].data, scalar_size); } // Call v2 with the adapted arguments. return halide_hexagon_remote_run_v2(module_ptr, function, input_buffersPtrs, input_buffersLen, output_buffersPtrs, output_buffersLen, - input_scalarsLen, small_input_args, small_input_args_size); + scalars, input_scalarsLen); } } // extern "C" diff --git a/src/runtime/hexagon_remote/pack_buffer.h b/src/runtime/hexagon_remote/pack_buffer.h deleted file mode 100644 index b237dfeb2a4a..000000000000 --- a/src/runtime/hexagon_remote/pack_buffer.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef HALIDE_HEXAGON_REMOTE_BUFFER_PACKING_H -#define HALIDE_HEXAGON_REMOTE_BUFFER_PACKING_H - -#include - -// This header implements a simple buffer packing protocol for packing -// and unpacking scalars and buffers into a larger buffer. - -template -void write_scalar(unsigned char *&write, const T& value) { - *(T *)write = value; - write += sizeof(T); -} - -template -T read_scalar(const unsigned char *&read) { - T value = *(T *)read; - read += sizeof(T); - return value; -} - -inline uint32_t packed_buffer_size(uint32_t size, uint32_t alignment) { - // We write the start and end offsets. - size += sizeof(uint32_t) * 2; - // We also need room for the padding. - size += alignment * 2; - - return size; -} - -// Given a pointer, compute an offset to add that is at least offset -// to ensure that start + aligned_offset(start, offset, alignment) is -// aligned to alignment. -inline uint32_t aligned_offset(const unsigned char *start, uint32_t offset, uint32_t alignment) { - uintptr_t x = (uintptr_t)start; - x = (x + offset + alignment - 1) & ~(alignment - 1); - return x - (uintptr_t)start; -} - -// Buffers are stored with two offsets, indicating the start and end -// of the buffer from the start. -inline void write_buffer(unsigned char *&write, const unsigned char *buffer, uint32_t size, uint32_t alignment) { - unsigned char *start = write; - uint32_t header_size = sizeof(uint32_t) * 2; - uint32_t offset_start = aligned_offset(start, header_size, alignment); - uint32_t offset_end = aligned_offset(start, offset_start + size, alignment); - write_scalar(write, offset_start); - write_scalar(write, offset_end); - memcpy(start + offset_start, buffer, size); - write = start + offset_end; -} - -inline const unsigned char *read_buffer(const unsigned char *&read) { - const unsigned char *start = read; - uint32_t offset_start = read_scalar(read); - uint32_t offset_end = read_scalar(read); - read = start + offset_end; - if (offset_end > offset_start) { - return start + offset_start; - } else { - // This was an empty buffer. - return NULL; - } -} - -#endif