Un dump de pile peut se produire lors d’une compilation OpenCL™ si une boucle contient une écriture sur un canal indexé et que le nombre de boucles dépasse le nombre de canaux alloués. Voir l’exemple de code ci-dessous.
canal non signé char my_channel[16] __attribute__((depth(1024)));
données carbonisées[32];
...
for (caractère non signé i = 0; i < 32; i ) {
write_channel_intel(my_channel[i], données[i]);
}
Assurez-vous que le nombre de boucles ne dépasse jamais le nombre de canaux alloués.
#define num_channels 32
canal non signé char my_channel[num_channels] __attribute__((depth(1024)));
données char[num_channels];
...
for (caractère non signé i = 0; i < num_channels; i ) {
write_channel_intel(my_channel[i], données[i]);
}
Ce problème est résolu à partir de la version 19.1 du compilateur Intel® FPGA SDK pour OpenCL™.