setConstantMemory
GPU に定数メモリを設定する
構文
setConstantMemory(kern,sym,val)
setConstantMemory(kern,sym1,val1,sym2,val2,...)
説明
setConstantMemory(kern,sym,val)
は、val
のデータを入れるためにシンボル名 sym
の定数メモリを CUDA カーネル kern
に設定します。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);
バージョン履歴
R2012a で導入