誰もがCPUとGPUの両方に対して単一のコードベースを維持する経験はありますか? 可能であれば、いくつかの長期間の計算にGPUを使用するアプリケーションを作成したいのですが、互換性のあるGPUがターゲットマシンに存在しない場合は、通常のCPUバージョンを使用します。 CPUバージョンとGPUバージョンの両方にコンパイルされる条件付きコンパイル指令を使用してコードの一部を書くことができれば本当に役に立ちます。もちろん、CPUとGPUで異なる部分がいくつかありますが、アルゴリズムの本質を1か所にとどめたいと思います。それはすべて可能ですか?CPUとGPUの同じコードベース
4
A
答えて
1
OpenCLは、Cベースの言語です。 GPL(NVidiaおよびAMD)とCPU(IntelおよびAMD)で動作するOpenCLプラットフォームが存在します。
GPLとCPUの両方で同じOpenCLコードを実行することは可能ですが、実際にはターゲットデバイス用に最適化する必要があります。最良の性能を得るには、異なるGPUとCPUに対して異なるコードを記述する必要があります。しかし、CPU OpenCLプラットフォームは、GPUに最適化されたコードでさえ、低性能フォールバックとして機能することができます。
ターゲットデバイス(CPUまたはGPU)に応じて実行する条件付きディレクティブを作成することができれば、複数のデバイスでOpenCLコードのパフォーマンスを向上させることができます。
+0
私が知る限り、CUDAはC/C++言語の亜種を使用しています。また、ATIとNVidia GPUの両方をサポートするはずの新しいVisual Studio 11があります。ですから、私はOpenGLだけに制限されていないと思いますか?別のポイントは、私はいくつかのCPU/GPU固有のコードを書くことに同意している、私はちょうどアルゴリズムの主要なロジックの2つのバージョンを保ちたいとは思わない。 – Max
関連する問題
- 1. WPFとSilverlightの同じコードベース?
- 2. 同じコードベースのモバイルアプリクローン
- 3. シリアルCPUとGPUコード
- 4. フルバージョンと同じコードベースのAndroid体験版
- 5. CUDAのGPU CPU
- 6. GPU + CPU Tensorflowトレーニング
- 7. CPU/GPU間のテンソルフロー
- 8. GPUとCPU間の明示的な同期は何ですか
- 9. 同じコードベースの2つのライブラリのコンパイル
- 10. 同じコードベースの異なるブランド化
- 11. Appcelerator - 複数のアプリケーション同じコードベース
- 12. CPUとGPU間の命令の転送
- 13. KVMのCPUとしてGPUを使用
- 14. 異なるドメイン同じディレクトリ - コードベース
- 15. CPU上のMPI-2対GPU
- 16. ウェブとネイティブの同じコードベースの別々のパッケージ
- 17. Web(Angular 4)とMobile(Ionic 3)の同じコードベースの共有
- 18. Tensorflow - Resource exhausted error CPU&GPU
- 19. OpenCL CPUデバイス対GPUデバイス
- 20. Tensorflowは同じコードですが、CPUデバイスとGPUデバイスの結果が異なります
- 21. phonegapとwebに同じコードベースを使用していますか?
- 22. 同じGradleファイル、同じコードベース、異なる開発者の依存関係グラフ
- 23. CPUの変数、GPUのトレーニング/グラジエント
- 24. iPhone/iPod touchのCPU/GPUの性能
- 25. トーチ:GPU/CPU応答の違い
- 26. メモリコピー速度の比較CPU <-> GPU
- 27. OpenCL:プログラムgpuマルチスレッドCPUのような
- 28. gitで同じコードベースの複数のブランチを管理する
- 29. 複数のドッカーが同じコードベースの環境を構築する
- 30. Gitlab同じコードベースの複数のインスタンスを持つベストプラクティス
オペレーティングシステムを指定していませんが、これはオペレーティングシステム固有のものと思われます。 – dandan78
CPUとGPUの両方に完全に同じコード構造を使用することはお勧めできません。両方の場合に最適ではないためです。 –
これは抽象的な意味で可能です。何らかの組織が必要ですが、確かに実行可能です。たとえば、[Thrust](http://code.google.com/p/thrust/)(これは現在CUDAにバンドルされています)をご覧ください。実際の計算にはいくつかのバックエンドがあります。 – Bart