Created
December 3, 2017 04:49
-
-
Save rej55/26405d65fb9a4b3cc6b96a960aeae67a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) | |
{ | |
//変数の定義 | |
const mxGPUArray *src; | |
mxGPUArray *dst; | |
const double *d_src; | |
double *d_dst; | |
//初期化 | |
mxInitGPU(); | |
//prhs[0]から読み取り専用のmxGPUArrayを生成 | |
src = mxGPUCreateFromMxArray(prhs[0]); | |
//srcのアドレスを取得 | |
d_src = (const double*)(mxGPUGetDataReadOnly(src)); | |
//GPU上に出力用の領域を確保 | |
dst = mxGPUCreateGPUArray(mxGPUGetNumberOfDimensions(src), | |
mxGPUGetDimensions(src), | |
mxGPUGetClassID(src), | |
mxGPUGetComplexity(src), | |
MX_GPU_DO_NOT_INITIALIZE); | |
//dstのアドレスを取得 | |
d_dst = (double *)(mxGPUGetData(dst)); | |
/* カーネル関数の実行など、dstにデータを書き込む */ | |
//dstをMATLABに返すためのmxArrayに変換 | |
plhs[0] = mxGPUCreateMxArrayOnGPU(dst); | |
//一次的なGPUArrayの解放 | |
mxGPUDestroyGPUArray(src); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment