すでにメモリに割り当てられている単一のデータへの複数のポインタを設定できるかどうか疑問に思っていますか? 私がこれを尋ねている理由は、推力ベクトルの助けを借りて GPU で辞書順ソートを実装していたからです (そして時間の面で惨めに失敗しました)
たとえば、これらのC ++ステートメントと同等のものを達成しようとしています
unsigned int * pword; //setting up the array of memory for permutations of word
pword = new unsigned int [N*N];
unsigned int* * p_pword; //pointers to permutation words
p_pword = new unsigned int* [N];
//setting up the pointers on the locations such that if N=4 then 0,4,8,12,...
int count;
for(count=0;count<N;count++)
p_pword[count]=&pword[count*N];
誰かにコードを提供してもらうように頼んでいるわけではありません。単一のデータ配列へのポインターをセットアップできる方法があるかどうか知りたいだけです。PS:次の方法を試しましたが、スピードアップはまったく達成されませんでした
int * raw_ptr = thrust::raw_pointer_cast(&d_Data[0]); //doing same with multiple pointers
しかし、私はdevice_vectorを指しているという事実のために、アクセスが遅いという問題かもしれません
この点に関するヘルプは大歓迎です。