Установите некоторую постоянную память на графическом процессоре
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);