Я использую JavaCL API, и мне нужно выполнить операцию, когда одно ядро нужно запускать много раз. Для того, чтобы изобразить принцип я написал алгоритм:OpenCL вызывает одно и то же ядро много раз
for(int k = 0; k < n; k++){
CLEvent calculation = kernels.calculation(queue, d_in2, d_in1, d_out, n, k, new int[] {n,n}, null);
(wait till the end of the "calculation" kernel)
(take d_out and give as an input to "calculation" kernel)
(launch calculation kernel again)
}
Перед запуском следующего «вычисления» ядро, то первым следует подождать до конца первого ядра и результаты первого ядра должны быть перешел к следующему.
Как реализовать этот алгоритм в главном коде JavaCL? Я думаю, что пример с любым API OpenCl, а также с кодом OpenCL в C++ был бы полезен.