問題タブ [directcompute]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cuda - GPUプログラミングのためのDirectCompute対OpenCL?
GPUコンピューティングにうまく対応する必要のある(財務上の)タスクがいくつかありますが、OpenCLとDirectComputeのどちらを使用すべきかはよくわかりません。私はGPUコンピューティングをいくつか行いましたが、それはずっと前(3年)でした。当時は実際には代替手段がなかったので、OpenGLを介してそれを行いました。
私はいくつかのOpenCLプレゼンテーションを見てきましたが、それは本当に素晴らしく見えます。DirectComputeについてはまだ何も見ていませんが、それも良いと思います。
現時点では、クロスプラットフォームの互換性には関心がありません。さらに、2つのモデルは、一方から他方に移動しようとしたときに大きな頭痛の種を引き起こさない程度に類似していると思います。
それで、あなたはこれらの2つのいずれかを使用しましたか?特にDirectCompute?OpenCL(およびCUDA)と比較してどうですか?
c++ - DirectX 11の詳細なチュートリアルはどこにありますか?
これまでのところ、私が見つけた唯一のチュートリアルはdirectx11tutorials.comにあり、これは基本的に既存のサンプルから推測されます。他のチュートリアル、またはDirectX 11を使用したより良いオープンソースプロジェクトの場所を知っている人はいますか?(DirectX 11を使用したプロジェクトコードの追加ポイント:))
opencl - OpenCLとDirectCompute?
OpenCLとDirectComputeの比較を探していますが、何も見つかりませんでした。クロスプラットフォームであり、サポートされるGPUの範囲が広いというOpenCLの利点は、私には関係ありません。DX11GPUに対してのみWindowsでコーディングしても問題ありません。それを前提として、各APIの長所と短所は何ですか?
私はこの質問が以前に提起されたことを知っていますが、私はより多くの詳細を探しています。
Nvidiaハードウェアだけに制限したくないので、CUDAには興味がありません。
directx - DirectCompute は本当に DX10.1 GPU で使用できますか?
DX10.1 GPU で DirectCompute を使用する際に制限はありますか? 開発のほとんどは DX11 デスクトップで行いますが、DX10.1 ラップトップでコードのデモを行いたいと考えています。Bootcamp で Win7 を実行する Macbook Pro になります。GPU はNvidia 330Mです。どのような制限が予想されますか?
編集: DX10で Compute Shaders を使用することに関するページを見つけましたが、これらが重大な制限であるかどうかは完全にはわかりません。
編集 2 : 私の目標は、クオンツ ファイナンスと PDE の解決について少し学ぶことです。
parallel-processing - 65535を超えるスレッドをディスパッチする
DirectComputeを使用して頂点のスキンを作成しようとしています。採用されているスキニングの方法は、各頂点に影響を与えるさまざまな量の重みを持つことができるようなものです(たとえば、Md5メッシュはこのように定義されます)。
基本的に、計算シェーダーへの入力は次のとおりです。
出力は
ここで、計算シェーダーは頂点バッファー内の要素ごとに1回実行する必要があり、SV_DispatchThreadIDを使用して、シェーダーはVerticesBuffer内のすべての頂点に対してSkinnedVerticesBuffer内の対応するSkinnedVertexにデータを入力しようとします(1:1対応)。
したがって、問題は、多くのメッシュに65535を超える頂点があり、DispatchThreadIDコマンドでは、ディメンションごとにその数のスレッドしかディスパッチできないことです。これで、理論的には、多くの数を65535未満の3つの要素の組み合わせに分割するものを書くことができますが、素数の場合はそれができない可能性があります。
たとえば、71993(素数)の頂点を持つメッシュが表示された場合、それを処理する方法を考えることはできません。
コンテキスト->Dispatch(36000、2、0)で72000スレッドをオーバーディスパッチすることはできません。これは、DispatchThreadIDがバッファ境界を使い果たしてしまうためです。
現在、頂点の数を保持する一定のバッファに傾いており、次に最も近い2の累乗にディスパッチしてから、単純に実行しています。
これが私の唯一の選択肢ですか?他の誰かがこの障害に遭遇します。
c++ - C ++ AMPは互換性のあるGPUのないマシンで実行されますか?
C ++AMPはDirectX11をサポートするGPUによって高速化されることを理解しています。
ただし、私の質問は、コンパイルされたC ++AMPプログラムがDirectX11互換のGPUを搭載していないマシンで実行された場合、どうなるかということです。
DirectComputeのソフトウェア実装によってエミュレートされますか?
CPUで実行されますか(おそらくSSEスタイルの命令を使用して)?
それとも、実行に失敗するだけですか?
encryption - DirectCompute を使用した AES 暗号化/復号化のサンプル コード
DirectCompute (HLSL ソース コードを含む) を使用した AES 暗号化/復号化 (任意のタイプ) の実装を知っている人はいますか?
GPU での AES について議論しているいくつかの論文を読みましたが、それらは CUDA または OpenCL のいずれかを参照する傾向があります。それらを DirectCompute に移植することを学ぶことは良い練習になると思いますが、それは簡単なことではないので、最初から HLSL がどのように正しく行われているかを確認してもかまいません。
ありがとう!
directx - DirectCompute情報
私は自分のプロジェクトの一部としてGPUを利用しようとしています。CUDAとOpenCLの両方を調べましたが、これらをプロジェクトに導入する方法を示す情報が不足しているのは衝撃的です。彼らの専用のフォーラムグループでさえ死んでいます。だから今、私はDirectComputeを調べています。
私の知る限り、これはHLSLを利用する新しいタイプのシェーダーファイルです。私の質問はこれです、私のプログラム(DirectX 10/11であることを除いて)はその構造を変更する必要がありますか?
つまり、CSファイルを作成し、他のシェーダーと同じようにプロジェクトに設定して、魔法が起こるのを見るだけの場合ですか?
これに関する情報をいただければ幸いです。
format - R8G8B8A8_UNORM リソースから R32_UINT ビューを作成する
DirectCompute を使用してその場で画像編集を行う必要があります - ala: http://msdn.microsoft.com/en-us/library/ff728749%28v=vs.85%29.aspx
私のバックバッファは R8G8B8A8_UNORM で、Compute Shader 内で同時に読み書きできるようにするには、R32_UINT 形式の UAV を作成する必要があります。
これを行ったときのデバッグ出力からの引用:
「CreateUnorderedAccessView: ビューの作成時に、フォーマット (0x2a、R32_UINT) が無効です。リソースは、完全に修飾されたフォーマットで既に作成されており、キャスト可能ではありません (0x1c、R8G8B8A8_UNORM)」
上記のリンクのドキュメントからの引用:
「要素フォーマットごとにほとんどの 32 ビットは、DXGI_FORMAT_R32_UINT へのキャストをサポートしています」
何か不足していますか?
loops - この再帰関数をループにアンラップする方法は?
教育用に DirectCompute で単純な拡散パス トレーサーを作成しています。DirectCompute では再帰関数を使用できないため、この再帰ステートメントをループに変換する方法を見つける必要があります。
一般的な疑似コードまたは C の例は本当にありがたいです