Intel® FPGA SDK untuk kompilator OpenCL™ memberikan jaminan bahwa pernyataan dalam kernel NDRange dijalankan oleh thread dalam urutan pengidentifikasi thread. Untuk memastikan garansi terpenuhi dalam program yang berisi aliran kontrol yang bergantung pada thread, penghambat pemesanan ulang dimasukkan oleh pengkompilasi di titik gabungan jalur aliran kontrol yang bergantung pada thread. Kesalahan dalam konfigurasi hambatan tersebut menyebabkan komputasi terhalang di penghalang tanpa kemungkinan kemajuan ke depan.
Operasi saluran juga dapat menyebabkan kios ini.
Ditunjukkan di bawah ini adalah contoh "thread-dependent control-flow construct":
Dapatkan ID thread global
int id = get_global_id(0);
Pastikan kami tidak keluar dari batas
jika (id < n)
c[id] = a[id] b[id];
Di sini, pernyataan jika adalah konstruksi aliran kontrol yang bergantung pada thread, yaitu apa yang dilakukannya tergantung pada thread yang mengeksekusinya.
Tulis ulang kernel NDRange agar tidak berisi operasi saluran atau konstruksi aliran kontrol yang bergantung pada thread.
Masalah ini dijadwalkan akan diperbaiki pada versi Intel® FPGA SDK untuk perangkat lunak OpenCL di masa mendatang.