2

Visual Studio に問題があることがわかりました。マルチスレッドを使用する私openMPのプロジェクトは、Dev-C++ よりも Visual Studio 2010 の方が 2 倍遅くなりました。CUDA テクノロジを使用する別のプロジェクトを作成しました。Visual Studio のせいでプロジェクトの動作が遅いと思います。そのため、他のコンパイラが必要です。サポート CUDA 、私の質問は次のとおりです。

  1. Dev-C++ は CUDA をサポートしていますか?

  2. Visual Studio 以外の CUDA をサポートするコンパイラはどれですか?

  3. CUDA をサポートする多くのコンパイラがある場合、アプリケーションに最高の速度を与えるものは何ですか?

4

2 に答える 2

3

CUDA ツールキットのリリース ノートには、サポートされているプラ​​ットフォームとコンパイラが一覧表示されています。

于 2013-02-16T16:53:27.357 に答える
0

まあ、それは逆だと思います。事は、と呼ばれるドライバーがありnvccます。デバイスコードとホストコードを生成し、ホストコードをコンパイラに送信します。これはCコンパイラであり、実行可能パスにある必要があります。(編集:Linuxではgcc、Windowsではclである必要があり、リリースノートのようにmacを無視する必要があると思います(?))

nvccコンパイラ情報の読み取り:

次の状況では、nvccには汎用Cコンパイラが必要です。

  1. 非CUDAフェーズ(実行フェーズを除く)中、これらのフェーズはnvccによってこのコンパイラに転送されるため

  2. CUDAフェーズ中、いくつかの前処理段階(0も参照)。Linuxプラットフォームでは、コンパイラーは「gcc」またはリンク用の「g++」であると想定されています。Windowsプラットフォームでは、コンパイラは「cl」であると見なされます。オプション-compiler-bin-dirが指定されていない限り、コンパイラ実行可能ファイルは現在の実行可能ファイル検索パスにあると予想されます。指定されている場合、このオプションの値は、これらのコンパイラ実行可能ファイルが存在するディレクトリの名前である必要があります。

そして、コンパイラについてそのように話さないでください。コードは、Dev-C++でより適切に機能するようになっています。生成されるのはアセンブリコードです。違いがないとは言いませんが、100%ではなく4〜5%かもしれません。

そして絶対にあなたの遅いプログラムのためにコンパイラを非難しないでください。これは間違いなく、非効率的なメモリアクセスとさまざまな種類のメモリの誤った使用によるものです。

于 2013-02-16T16:28:36.993 に答える