Ein Stack-Dump kann während einer OpenCL-Kompilierung™ auftreten, wenn eine Schleife einen Schreibvorgang in einen indizierten Kanal enthält und die Schleifenanzahl die Anzahl der zugewiesenen Kanäle übersteigt. Siehe den Beispielcode unten.
Kanal vorzeichenloses Zeichen my_channel[16] __attribute__((depth(1024)));
char-Daten[32];
...
for (vorzeichenloses Zeichen i = 0; i < 32; i ) {
write_channel_intel(my_channel[i], Daten[i]);
}
Stellen Sie sicher, dass die Anzahl der Schleifen niemals die Anzahl der zugewiesenen Kanäle überschreitet.
#define num_channels 32
Kanal vorzeichenloses Zeichen my_channel[num_channels] __attribute__((depth(1024)));
char data[num_channels];
...
for (vorzeichenloses Zeichen i = 0; i < num_channels; i ) {
write_channel_intel(my_channel[i], Daten[i]);
}
Dieses Problem wurde ab Version 19.1 des Intel® FPGA SDK für OpenCL-Compilers™ behoben.