我正在使用Halide作为C++代码库的一部分。我有一个带AoT编译的函数,它计算一个元组值的Func,所以它以前被编译成buffer_t结构作为函数的输入(现在它被编译成halide_buffer_t)。在我调用的库的.cpp文件中,我将这些buffer_t值定义如下:
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++数组,并且我还需要最小值和范围的值,以便让函数在数组的一部分而不是整个数组上实现。这适用于旧版本的Halide,但不适用于新的卤化物缓冲区。用新的buffer实现做同样的事情,最好的方法是什么?
https://stackoverflow.com/questions/44492149
复制相似问题