Как в заголовке, в программах cuda, где параметр ядра находится после запуска ядра, в локальной памяти или глобальной памяти GPU?Где хранятся данные параметра ядра?
Например, в LLVM IR программы Cuda:
__global__ kernel(int param1):
%0 = alloca int
store param1, %0
Таким образом, в данном случае, где делает% 0 пункт? локальной памяти или глобальной памяти?
Кроме того, я видел, что иногда параметры ядра хранятся и используются непосредственно в регистрах вместо их хранения в любой памяти. Как это решение принято?
На всех устройствах, поддерживаемых CUDA 7 или 7.5, он находится в [постоянной памяти] (http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#function-parameters). Если вы сбрасываете сгенерированный машинный код (SASS), вы сможете это наблюдать. –
@RobertCrovella Спасибо! Как насчет CUDA 6? Как я могу увидеть, какая память в SASS? Это специальный классификатор, отмеченный в SASS для этого? – cache