我试图将全局内存数组(opencl输入)复制到本地内存数组中,以减少opencl内核中数组的内存访问时间,因为我想经常从数组中读取数据。我这样复制(例如):
__Kernel (__global float* inputs...)
__local float in [64];
in[global_id] = inputs[global_id]
问题是当我编译内核以在板上运行它时,编译器会进行优化并且它似乎删除了本地内存,因为编译器在我写入本地内存(in)之后崩溃了。
编译器消息是:
编译器警告:积极的编译器优化:删除 不必要的存储到本地内存
即使我在aoc命令中使用参数-cl-opt-disable,它仍然是相同的,因为参数什么都不做。
那么有没有办法阻止编译器优化来解决这个问题?