Что является наиболее близким и эффективным эквивалентом простой цепочке последовательностей вызовов glDispatchComputeIndirect () OpenGL в Cuda на Паскале и далее?В тех случаях, когда цепочка диспетчеризаций / ядер динамически изменяет размеры параметров запуска (блоки / потоки и т. Д.).
Является ли glDispatchComputeIndirect () вероятнее всего, оптимизацией издержек вызова API на стороне драйвера, а не механизмом на стороне устройства?
Является ли glDispatchComputeIndirect () эквивалентным вложенному параллелизму с ядром верхнего уровня из одного 1-го блока и 1-го потока, выполняющего последовательность дочерних вызовов ядра?
__device__ int blocks = 1;
__device__ int threads = 1;
__global__ void Parent()
{
Child1<<<blocks, threads>>>(); // changes blocks/threads inside child
cudaDeviceSynchronize();
Child2<<<blocks, threads>>>(); // changes blocks/threads inside child
cudaDeviceSynchronize();
...
}