http://developer.download.nvidia.com/CUDA/training/GTC_Express_Sarah_Tariq_June2011.pdf
上記のチュートリアル (スライド 29) では、int への 3 つのポインターを開始します。
int *a, *b, *c;
明らかにこれは (int *) 型ですが、何らかの方法でカーネルが構文でインデックスにアクセスできるようにします。a[index]
また、(私には) 不明なコマンドを使用して値を初期化します。
a = (int *)malloc(size); random_ints(a, N);
では、このコマンドは何をするのでしょうか? まず、ポインター *a をキャストして int を指すようにします (ただし、後でa
魔法のようにベクトルになります)。random_ints が正確に行うことに関するソースを見つけることができません(おそらくいくつかのインクルードが必要なため、コンパイラもそれを認識しません)。a
長さ N のベクトルをランダムな intで作成すると思います (a
タイプは ですint
)。
etc etcで同じことをしてこれを回避しようとしましたvector <int> * a;
が、それをカーネルに渡すのにまだ問題があります(何を試しても要素が追加されません)。
私はC++で作業しています。前もって感謝します。
編集:これは疑似コードでしょうか? 明示的な C++ の例では、これを別の (わかりやすい方法で) 行っているためです。