0

私は CUDA の初心者で、次の質問がありますか? 私のカーネルは型を計算することになっています:

vector <double *> *my_vector = new vector <double *>();

元の C++ コードを cuda に変更しようとする前は、配列 [6] がループで計算され、それが my_vector にプッシュされていました。

for{
          //calculations


        double *array = new double[6];
        array[0] = data;
        array[1] = data;
        array[2] = data;
        array[3] = data;
        array[4] = data;
        array[5] = data;

        my_vector->push_back(array);
}

スラストを使用すると役立つことはわかっていますが、使用しない方が好みです。カーネルで 2D 配列を使用し、データをホスト コードにコピーして戻し、それを std::vector を使用して my_vector にコピーすることを考えました。私がこれまでに試したことは失敗しました。

誰かがこれについてある程度の経験があり、何か考えがあるなら、それは大いに役立つでしょう.

4

1 に答える 1

1

ホストとデバイスのコードを使用するための便利なテンプレートを提供するThrustテンプレート ライブラリを見てください。は類推のthrust::device_vectorように使用できますが、デバイス コード内では使用できません。std::vector

于 2012-05-18T22:13:17.243 に答える