NVIDIA CUDA Toolkitのみを使用して、同じノードにCUDA対応デバイスを持たずにCUDAプログラムをコンパイルすることはできますか?cudaデバイスを使用せずにcudaプログラムをコンパイルすることはできますか?
11
A
答えて
13
あなたの質問に対する答えはYESです。
nvcc
コンパイラドライバはデバイスの物理的な存在に関係しないため、CUDA対応GPUなしでもCUDAコードをコンパイルできます。しかし、Robert Crovellaによると、CUDAドライバライブラリlibcuda.so
(Windowsの場合はcuda.lib
)にNVIDIAドライバが付属しており、CUDAツールキットインストーラには付属していないことに注意してください。これは、ドライバAPIを必要とするコード(エントリポイントの先頭にcu
が付いているコード、CUDA Cプログラミングガイドの付録Hを参照)は、NVIDIA GPUが存在しない状態で「最近の」ドライバを強制的にインストールし、 --help
コマンドラインスイッチを使用します。
同じ理由で、ノードが別のアーキテクチャのGPUをホストしている場合、アーキテクチャのCUDAコードをコンパイルできます。たとえば、GT 210(コンピューティング機能1.2)をホストしているマシンでGeForce GT 540M(コンピューティング機能2.1)のコードをコンパイルできます。
もちろん、両方の場合(アーキテクチャの異なるGPUまたはGPUはありません)、コードを正常に実行することはできません。
CUDAの初期のバージョンでは、エミュレーションモダリティでコードをコンパイルしてCPUでコンパイルしたコードを実行することはできましたが、デバイスエミュレーションは廃止されて以来使用されています。 CUDA対応デバイスをお持ちではなく、CUDAコードを実行したい場合は、gpuocelotを試すことができます(ただし、私はこれに関する経験はありません)。
関連する問題
- 1. G ++によるC++プログラムでCUDAを使用できますか?あるいはCUDAはGCCだけでコンパイルできますか?
- 2. CUDAプログラミング:レガシーGPUをCUDA 7.5ツールキットで使用するには?
- 3. オプションの有無にかかわらずCUDAプログラムをコンパイルするときの違い-G
- 4. CUDA:初めてのCUDAプログラムのコンパイル中にエラーが発生しました
- 5. 同じ__constant__メモリを使用するCUDAホストとデバイス
- 6. Linuxで基本的なOpenCV + Cudaプログラムをコンパイルする
- 7. python distutilsでCUDAコードをコンパイルできますか?
- 8. NVIDIA CUDA:開発者用ドライバとは何ですか? NVIDIA <strong>CUDA</strong>プログラムを開発する
- 9. 仮想マシンでCUDAをプログラム/テストできますか?
- 10. オブジェクト指向プログラミングにCUDA Cを使用することは可能ですか?
- 11. ここでCUDAを使うべきですか?
- 12. 32ビットウィンドウでCUDAを使用できますか?
- 13. CUDA cutil.hここはどこですか?
- 14. Linux用CUDA SDK V4.1.28のコンパイルは?
- 15. UbuntuでCUDAを使用する11.10
- 16. CUDAデバイスコードでstd :: vectorを使用する
- 17. フォースCUDAの推力::私は推力を使用するCUDAプログラムを持っていない並列処理
- 18. cudaMemcpy2Dを使用してデバイスからホストにアレイをコピーするCUDA
- 19. CUDAまたはOpenCLをllvmにコンパイルするIR
- 20. CUDA __device__属性を使用せずにクラスヘッダを定義するのはなぜですか? (C++)
- 21. nvccを使用してコンパイルされたCuda共有ライブラリを使用してOpenCVコードをコンパイルするには?
- 22. コンパイル時に#defineでCUDA Computeの機能(バージョン)を取得できますか?
- 23. EJB 2.0でライフサイクルメソッドを使用せずにコンパイルできますか?
- 24. デバイスアレイへのホストアレイを使用するCUDA
- 25. アクティブなCUDAデバイスからプロパティを取得する方法は?
- 26. CUDA関数は、デバイスまたはホストのどちらでも呼び出すことができます
- 27. HTMLボタンを使用せずにSVGアニメーションをプログラムでトリガすることはできませんか?
- 28. ヘッダファイルを使用せずにcプログラムを書くことができます
- 29. nvccがboost :: spiritでCUDAファイルをコンパイルできないのはなぜですか?
- 30. NVIDAカードをCUDA、ビデオ用マザーボードに使用
はい。 'nvcc'コンパイラドライバはデバイスの物理的な存在に関係しないので、CUDA対応GPUなしでコンパイルすることができます。同じ理論的根拠にしたがって、ノードが異なるアーキテクチャーのGPUをホストしているときに、アーキテクチャのCUDAコードをコンパイルすることができます。もちろん、どちらの場合でも、コードを正常に実行することはできません。 CUDA対応デバイスをお持ちでない場合は、gpuocelotを試すことができます(ただし、私はこれに関する経験はありません)。 – JackOLantern
@RobertCrovella説明をありがとう。コメントを完全な答えに変換しました。私が何か不足している場合、それを編集したり、コメントを追加してください。 – JackOLantern