2013-01-14 4 views
6

線形代数演算をにマッピングするために使用できますか? GLSLなどのOpenCLまたはGPU頂点シェーダ関数?これは、CPUとGPUの両方の実行を対象とするDとより良いブリッジロジックのための本当のキラーアプリケーションです。これをglmおよびD'gl3nと比較すると、固定長の線形代数をCPUコードにコンパイルするだけです。D CTFEとGPUコードの生成

VexCLは幾分同様のメモリの割り当てとコードの実行に関するバックエンド依存性(CPU/GPU)実装の詳細を抽象化のOpenCLを使用して、このための概念の証明であり、によってC++ 11(GCC 4.6またはそれ以降の)完全 C++ AMP。だから、物事はDの方がより良くなることができますか?ミックスインは、VexCLで使用されているC++式テンプレートの使用を完全に置き換えることができますか? Here's a nice tutorialを使用しています。

CTFEもこの説明では役割を果たすかもしれません。

答えて

1

はい、間違いありません。実際、それはかなり簡単なはずです。私は2007年にこの種の事実を実証しました(最初のD会議で私のプレゼンテーションを見てください)。 当時はCTFEで何も働いていませんでしたが、C++で同等のことをするよりもずっと簡単でした。

このようなことをしたいという希望は、テンプレート値パラメータ、CTFE、およびSIMD操作の開発の動機の一部でした。

+0

あなた自身または他の人の参照する文書またはコードがありますか? –

+0

私が当時書いたコードはおそらくまだMathExtraプロジェクトのdsource.orgにあります。しかし、私が言ったように、コンパイラは過去5年間で非常に改善されており、私のコードはすべて無駄になってしまっています。当時、コンパイル時には構造体を使用することさえできませんでした。今すぐ例外をスローしてポインタを使用することもできます。 Phobosでのコンパイル時の正規表現の実装は、より新しいコードの良い例です。 –