Иногда ядра openCL имеют в своих параметрах
kernel someName (some globalparameters, __local int* myArray) {
в то время как другие скрипты находятся где-то внутри ядра
__local int myArray[length];
В чем разница между ними? Я думал, что это были только синтаксические различия, но теперь я вижу внутри одного из официальных образцов AMD (RadixSort) комментарий
__local KV_TYPE localDataArray[TPG*4*2]; // Faster than using it as a parameter !!!
так, очевидно, я был неправ. И эффективно, когда я пробую это в моих сценариях, это идет быстрее. Купить почему? Разве оба не должны быть просто указателями на массивы?