Thrust (cuda api) と openMP テクノロジの両方を使用するビルドとプロジェクトです。私のプログラムの主な目的は、何かを計算するためのインターフェイスを提供することです。そのために、私は STRATEGY デザイン パターンを使用することにしました。これは基本的に、仮想関数を使用して基本クラスを定義し、次にその基本クラスから派生して必要な関数を実装する他のクラスを定義する必要があることを意味します。
私の問題はここから始まります: 1。プロジェクトに複数の .CU ファイルを含めることはできますか? 2. CU ファイルにクラスの宣言を含めることはできますか?
class foo
{
int m_name;
void doSomething();
}
3. これは続きます 2. 、DEVICE カーネルはクラス内で宣言できず、次のように実行する必要があることに気づきました。
//header file
__DEVICE__ void kernel(int x, inty)
{.....
}
class a : foo
{
void doSomething();
}
//cu file
void a::doSomething()
{
kernel<<<1,1>>>......();
}
それは正しい方法ですか?4.最後の質問は、私は THRUST を使用していますが、CU ファイルも使用する必要がありますか?
ありがとう、イガル