0

cpp ファイルを .cu ファイルに変換しようとしています。ただし、コンパイラは、cpp のすべての typedef および静的関数のエラーを報告しています。また、スコープ解決演算子も検出せず、それらのエラーも報告します。

4

1 に答える 1

2

CUDA は、プリプロセッサ マクロを展開する方法にいくつかの重要な変更を加えます。CUDA コンストラクトを展開し、ホスト コードとデバイス コードを分離するために、プリプロセッサを介してコードを複数回実行するためです。これにより、大規模な既存のコード ベースが壊れる可能性があります。

この場合 (および新しく作成されたプロジェクトであっても) の私の一般的な戦略は、既存のすべてのコードを .cpp ファイルに保持し、できるだけ少ないコードのみを .cu ファイルに移動することでした。.cu ファイルと .cpp ファイルで必要な typedef と定義を別のヘッダーに移動し、既存の .cpp ファイルから呼び出す CUDA 呼び出しとカーネル起動の周りに小さなラッパー関数を記述します。

于 2012-11-02T09:58:28.033 に答える