Um despejo de memória pode ocorrer durante uma compilação OpenCL™ se um loop contiver uma gravação em um canal indexado e a contagem de loop exceder o número de canais alocados. Veja o código de exemplo abaixo.
caractere não assinado do canal my_channel[16] __attribute__(profundidade(1024));
dados de caracteres[32];
...
para (caractere não assinado i = 0; i < 32; i) {
write_channel_intel (my_channel[i], dados[i]);
}
Certifique-se de que a contagem de loop nunca exceda o número de canais alocados.
dia 32 de #define num_channels
caractere não assinado do canal my_channel[num_channels] __attribute__(profundidade(1024);
dados de caracteres[num_channels];
...
para (caractere não assinado i = 0; i < num_channels; i) {
write_channel_intel (my_channel[i], dados[i]);
}
Este problema é corrigido a partir da versão 19.1 do SDK Intel® FPGA para compilador OpenCL™.