Main Content

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 で導入