異なる.cuファイルから同じカーネル関数を呼び出すことが可能かどうか疑問に思いました。つまり、私のプログラムにはさまざまなクラスがあり、それらすべてにいくつかの共通の機能がありますが、メモリのサイズは異なります。例えば:
void Bitmap8::Or(const Bitmap8 &b1, const Bitmap8 &b2);
// the function above is as same as this one (of course they are in two different files)
void Bitmap4::Or(const Bitmap4 &b1, const Bitmap4 &b2);
どちらもメモリサイズの割り当てが異なります。操作を実行するために、彼らのために独自のCUDAカーネルを作成しました。プログラムをコンパイルしているときに、競合が発生する可能性はありますか?私はいつもそのような種類のエラーを抱えているからです:
1>Bitmap8.cu.obj : error LNK2005: "void * __cdecl big_random_block(int)" (?big_random_block@@YAPAXH@Z) already defined in Bitmap4.cu.obj
そしてそれらはたくさんあります
前もって感謝します