Установите некоторую постоянную память на графическом процессоре
setConstantMemory(kern,sym,val)
setConstantMemory(kern,sym1,val1,sym2,val2,...)
setConstantMemory(kern,sym,val)
устанавливает постоянную память в ядре CUDA kern
с именем символа sym
для хранения данных в val
. val
может быть любым числовым массивом, включая gpuArray. Командные ошибки, если именованный символ не существует или если он недостаточно велик, чтобы содержать указанные данные. Допускается частичное заполнение константы.
Автоматического преобразования типа данных для постоянной памяти не происходит, поэтому важно убедиться, что предоставленные данные имеют правильный тип для заполняемого символа постоянной памяти.
setConstantMemory(kern,sym1,val1,sym2,val2,...)
устанавливает несколько постоянных символов.
Если KERN
представляет ядро CUDA, файл CU которого содержит следующие включения и определения констант:
#include "tmwtypes.h" __constant__ int32_t N1; __constant__ int N2; // Assume 'int' is 32 bits __constant__ double CONST_DATA[256];
можно заполнить их данными MATLAB следующим образом:
KERN = parallel.gpu.CUDAKernel(ptxFile,cudaFile); setConstantMemory(KERN,'N1',int32(10)); setConstantMemory(KERN,'N2',int32(10)); setConstantMemory(KERN,'CONST_DATA',1:10);
или
setConstantMemory(KERN,'N1',int32(10),'N2',int32(10),'CONST_DATA',1:10);