0
我正在使用Halide作爲C++代碼庫的某些部分。我有一個AoT編譯函數,它計算一個Tuple-valued Func,所以它被編譯爲buffer_t結構,作爲之前函數的輸入(現在編譯爲halide_buffer_t)。在我調用庫.cpp文件,如下我定義這些buffer_t值:使用Tuple與Halide AoT編譯
result1.host = (uint8_t*)result_cpp_array;
result1.elem_size = sizeof(float);
result1.stride[0] = 1;
result1.min[0] = 2;
result1.min[1] = 2;
result1.min[2] = 2;
result1.stride[1] = size_x + 1;
result1.stride[2] = (size_y + 1) * (size_x + 1);
result1.extent[0] = size_x - 3;
result1.extent[1] = size_y - 3;
result1.extent[2] = size_z - 3;
int error = function_aot_halide(/*list of inputs*/, &result1, /*other results similar to result1*/);
我有這部分代碼來映射緩衝器到C++陣列,其中我想存儲的結果,而且我還需要min和extent的值來讓函數在數組的一部分而不是整個數組上實現。 這與舊版本的Halide正常工作,但它不適用於新的鹵化物緩衝區。用新的緩衝區實現做同樣的事情最好的辦法是什麼?