6

DのMixinを使用して、線形代数演算をCPUコードとOpenCLまたはGLSLなどのGPU頂点シェーダー関数のいずれか/両方にマッピングできますか?これは、Dの真のキラーアプリケーションであり、CPUとGPUの両方の実行を対象としたより優れたブリッジロジックになります。これを、固定サイズの線形代数のみをCPUコードにコンパイルするglmおよびDのgl3nと比較してください。

VexCLは、OpenCLとC ++ 11(GCC 4.6以降)を使用したこの概念実証であり、メモリ割り当てとコード実行に関するバックエンド依存(CPU / GPU)実装の詳細を、C++AMPにいくらか類似して完全に抽象化します。それで、物事はDでのみ良くなることができますか?ミックスインは、VexCLで使用されるC ++式テンプレートの使用を完全に置き換えることができますか?これは、その使用法に関する優れたチュートリアルです。

CTFEは、この議論でもここで役割を果たす可能性があります。

4

1 に答える 1

1

はい、間違いなく。実際、それは非常に簡単なはずです。私は 2007 年にこの種の概念実証を行いました (最初の D カンファレンスでのプレゼンテーションを参照してください)。当時 CTFE で機能するものはほとんどありませんでしたが、C++ で同等のことを行うよりも桁違いに簡単でした。

この種のことをしたいという欲求は、テンプレート値パラメーター、CTFE、および SIMD 演算の開発の動機の一部でした。

于 2013-02-08T12:18:41.337 に答える