0

グローバル メモリ内の CUDA に送信する 2 つの要素の構造を含む配列があり、グローバル メモリから値を読み取ります。

いくつかの本や投稿を読み、構造体から値を読み取るだけなので、配列をテクスチャ メモリに格納できれば面白いと思いました。カーネルの外側で次のコードを使用しました。

texture<node, cudaTextureType1D, cudaReadModeElementType> textureNode;

および main() の次の行

gpuErrchk(cudaMemcpy(tree_d, tree, n * sizeof(node), cudaMemcpyHostToDevice)); 
gpuErrchk(cudaBindTexture( (size_t)0,textureNode, tree_d, n*sizeof(node) ));

私のカーネルでは、次のものを使用しました。

        printf("Here %d\n",tex1Dfetch(textureNode, 0 ));

しかし、最初の行で「ノード」を使用するとコンパイルエラーが発生しますが、それをintに置き換えるとコンパイルされますが、私のポイントは次のようなものを使用して構造体の配列の要素にアクセスすることです:

tree[i].left; 

いろいろ試してみたのですがうまくいかないので、これが可能かどうか疑問に思っています。

ありがとう

4

1 に答える 1