-1
私はCUDAコードを含むMEX関数を書いています。ホストの関数A
の値をすべてfloatにリセットする必要があります0.0
。これは、破壊し、アレイを再作成することで動作しているようです:はmexcuda関数で配列の値を0に設定しました
mxGPUDestroyGPUArray(A);
A = mxGPUCreateGPUArray(1, &dims, mxSINGLE_CLASS, mxREAL, MX_GPU_INITIALIZE_VALUES);
同じ結果を達成するために、より自然な/エレガントな方法はありますか?
(コメントから '移行' の質問は)**あなたは[ 'cudaMemset'](HTTPを使用することができるはずです。 com/cuda/cuda-runtime-api/group__CUDART__MEMORY.html#group__CUDART__MEMORY_1gf7338650f7683c51ee26aadc6973c63a)。 –
私の配列Aはサイズ[K、K、K]の3D配列です。私はcudaMemset(A、0.0、(K * K * K)* sizeof(float))を使ってみました。しかしこれは実行時にエラーの束を返します –
私はかなり 'cudaMemset'が使用できると確信しています。あなたのケースでなぜそれがうまくいかないのかを説明するために、より完全な説明が必要になるでしょう。 –