1

ファイルからデータをロードする必要があります。各サンプルは 20 次元です。

そこで、このデータ構造を使用してこれを支援しました。

class DataType
{
    vector<float> d;
}

しかし、この変数定義を使用している間は機能しません。

thrust::host_vector<DataType> host_input;
// after initializing the host input;
thrust::device_vector<DataType> device_input = host_input;
for(unsigned int i = 0; i < device_input.size(); i++)
    for(unsigned int j = 0; j < dim; j++)
        cout<<device_input[i].d[j]<<end;

それは動作しません。コンパイラーは、ベクター (ホスト) を device_input に使用できないと教えてくれました。device_input はデバイス (gpu) に実装されるため、vector は CPU に実装されます。では、DataType の正しい定義を与える適切な方法は何ですか?

4

1 に答える 1

2

std::vectorホスト側の動的メモリ割り当てが必要なため、デバイス側では使用できません。

これはうまくいくはずです。

class DataType
{
    float d[20];
}
于 2013-07-13T07:37:20.980 に答える