並列数学のためのCUDA対ダイレクトX 10。あなたはそれについて何かを持っていますか?並列数学のためのCUDA対ダイレクトX 10。あなたはそれについて何かを持っていますか?
答えて
ターゲットアーキテクチャがnVidiaチップを使用していることがわかっている場合は、おそらくCUDAが適しています。データ転送、命令パス、および操作の順序を完全に制御できます。下位レベルで作業しているときには、__syncthreadsの呼び出し回数を大幅に減らすこともできます。
DirectX 10はインターフェイスとのやりとりが簡単ですが、スピードの最適化を実際に行いたい場合は余分なレイヤーをバイパスする必要があります。 DirectX 10では、テクスチャメモリと共有メモリのどちらを使用するのか、共有メモリを使用するのか、特定のアルゴリズムに依存するのかはわかりません。
もしあなたがTesla C1060などにアクセスできるなら、CUDAははるかに良い選択肢です。 GPGPUの仕様を知っていれば、実際にスピードアップが可能です.Teslaとデスクトップで、特定のアルゴリズムで188倍のスピードアップが見られました。
まあ、CUDAは私がCUDAは厄介見つける...あなたは私に言わせればそれは大きな勝利だ...
CUDAはWindowsからLinuxに移植可能です。 NVidia GPUからATIへ –
ポータブルです。それはCではなく、その一部です。ネイティブに倍精度浮動小数点をサポートせず、エミュレートされます。単精度の場合は大丈夫です。それはあなたがそれに投げるタスクのタイプに依存します。あなたは、それを使う価値があるためにデータを渡すのに費やす時間よりも、並列で計算に費やさなければなりません。しかし、その問題はCUDA特有の問題ではありません。
アップルのOpenCLがパラレル・コンピューティングの業界標準となるように思えます。
倍精度については確かですか? –
CUDAは、倍精度浮動小数点演算のサポートについて何もしていません。 これは使用可能なハードウェアによって異なります。 9,100,200およびTeslaシリーズは、倍精度浮動小数点演算teslaをサポートしています。
これらの間で決めるのは簡単です。
あなたのアプリがWindows固有であることを許容できる場合、DirectX Computeを引き続き検討することができます。それ以外の場合は、CUDAまたはOpenCLを使用します。
あなたのアプリがNVIDIAのベンダーロックを容認できない場合、CUDAは使用できませんので、OpenCLまたはDirectX Computeを使用する必要があります。
アプリがDirectX interopを実行している場合、CUDA/OpenCLはグラフィックスAPIのinteropを実行するコンテキストスイッチのオーバーヘッドを招き、DirectX Computeはそうでないと考えてください。
これらの基準の1つ以上がアプリケーションに影響を及ぼさない限り、超並列ツールチェーンCUDAを使用してください。
- 1. フォースCUDAの推力::私は推力を使用するCUDAプログラムを持っていない並列処理
- 2. COMプログラミングについて学ぶための良い資料は何ですか?
- 3. C++ SQLiteの直列化されたモードでは、私はかなりの数ページを経た、そしてそれは考える起こっていただきましたが、[OK]アイデアを持っていますが、私は念のためにいくつかの質問を持っている
- 4. フォーム:あなたのCSSはあなたのマークアップに対応していますか、あるいはその逆ですか? HTMLフォームについて
- 5. groovy数学で何が問題になっていますか?
- 6. 私はいくつかの数字、このような何かを持っているXMLを持って右
- 7. 10と50のそれぞれの倍数に対して何か
- 8. コンピュータ上のサウンドについて学びたい初心者のための良い本は何ですか?
- 9. UITextInputのトークナイザ、それは何のために使われていますか?
- 10. AndroidでOpenGLについて知りたい。私はそれを学びたい。
- 11. 学習CUDAが、現在は、だから私は後半のようCUDAを学ぶためにしようとしてきたが、現在はスタックと私が間違ってやっているかわからない
- 12. Rails 3.xのRails 2.3アプリケーションのメンテナンスについて、Rails 3.xのnoobは何を知っていますか?
- 13. あなたはAOPのためのdesigneパターンを知っていますか?
- 14. JNIの "jobject this"とは何ですか?それは何のために使われていますか?
- 15. JavaScript開発にどれくらいの時間を費やしていますか?それを減らすためにあなたは何をしますか?
- 16. 私は空の値を持つ10個の配列を持っている
- 17. クローズ、ディスポジション、ファイナライズ、GC、Idisposable、....あなたはそれらの明確な説明を持っていますか?
- 18. console.logはなぜ使用されていますか?それは何をするためのものか?
- 19. 有限状態マシンとは何ですか?それは何のために使用されていますか?
- 20. applescriptとは何ですか?それは何のために使われていますか?
- 21. Androidキーストアファイルとは何ですか、それは何のために使用されていますか?
- 22. 何が良いですか? INotifyPropertyChangedまたは別々に*変更されたイベントを持っていますか?
- 23. Pythonの場合、x == 1またはx == 5またはx == 10の場合、aを書くいくつかの他の方法は何ですか?
- 24. もしあなたがJavaでクローンしなければ、あなたは何をしていますか?それを何と呼んでいますか?
- 25. TextToColumnsによって作成された列の数はいくつですか?
- 26. .data.rel.roは何のために使用されていますか?
- 27. #pragmaは何のために使用されていますか?
- 28. iframeは何のために使用されていますか?
- 29. sync_extras_uploadは何のために使用されていますか?
- 30. 私はjoomlaについて何を知っていますか?
クロスプラットフォーム(windows/linux/etc)とクロスベンダー(nvidia/ati)でなければならないOpenCLも見てください。 – hannson