говорят, что у меня ядро cuda
__global__ foo (int a, int b) { ... ... }
, где хранятся a и b.Занимает ли это место в регистре для каждого потока?
Нет, это не требует места в регистре для каждого потока, вместо этого a и b выделяются один раз в постоянном пространстве - пространстве только для чтения - из которого может читать весь поток.
a
b
Обратите внимание, что это пространство кэшируется постоянными регистрами и используется всеми потоками:
Постоянный кэш только для чтения, который общий для всех скалярных процессорных ядер и ускоряет чтение из константы пространство памяти, доступное только для чтения область памяти устройства [PTX ISA версии 2.1, глава 3].