如果在 OpenCL™ 編譯期間,如果迴圈包含對索引通道的寫入,並且迴圈計數超過分配的通道數,則可能會發生堆疊轉儲。請參閱下面的示例代碼。
通道無符號字元my_channel[16] __attribute__((深度(1024)));
字元資料[32];
...
for (unsigned char i = 0; i < 32; i ) {
write_channel_intel(my_channel[i], data[i]);
}
確保環路計數永遠不會超過分配的通道數。
#define num_channels 32
通道無符號字元my_channel[num_channels] __attribute__((深度(1024)));
字元資料[num_channels];
...
for (unsigned char i = 0; i < num_channels; i ) {
write_channel_intel(my_channel[i], data[i]);
}
此問題已從 Intel® FPGA SDK for OpenCL™ 編譯器版本 19.1 開始修復。