cuda デバイスで双方向リンク リストを作成する必要があります。
私はホストコードを持っています:
class Foo
{
public:
int my_index;
static int count;
static int index;
static Foo* first;
static Foo* last;
Foo* next;
Foo* prev;
Foo(); //adds object to list
~Foo(); //deletes object from list
}
Foo* Foo::first = 0;
Foo* Foo::last = 0;
int Foo::count = 0;
int Foo::index = 0;
私はそれを繰り返したいとき:
for (Foo* pr = Foo::first; pr; pr = pr->next)
{
//do something
}
私の最初の問題は、継承元のクラスが他
にもいくつか
あり、それらのサイズが異なるため、どうすればよいですか :Foo
Foo
タイプの作成されたすべてのクラスとすべての派生クラスをデバイスに コピーします。Foo
またはさらに良いことに、リンクされたリスト全体をデバイス から完全に保存します
Foo
ホストからデータにアクセスする必要はありません。デバイス上 でのみ
必要です。
2 番目の問題:
複数の CUDA デバイス (3 つの CUDA 対応グラフィック カード) を持ってい
ますが、両方のデバイスでデバイスの二重リンク リストにアクセスするにはどうすればよいですか?
- ピアツーピアコピー?
- 他の何か?