しばらく放置されていたGPUコンピューティングですが,機会があって遊んでみることになりました.
DirectComputeを直接使って計算するにはHLSL(High Level Shading Language)を使って開発することになるのですが,(多くの場合)そこで問題が発生します.
まずdouble
での開発が予想以上に難しい...というのも,組み込み関数はdouble
に対応していないのです.(私の実力不足と言えばそれまでですがorz)
たとえば指数関数を使おうとすると,ご存知の通りマクローリン展開などで適当に実装するわけにはいきません.加えて,乱数が必要な計算の場合には(基本的に)自分で実装することになりそうです.noiseという疑似乱数生成用の組み込み関数はありますが,少々ヤバそうです.(グラフィクス関連の用途には便利だそうですが)
結果的に,HLSLでの開発は断念ということに.代替手段としてCUDA(NVIDIA),あるいはATI Stream(AMD)などがあります.
新しくグラボを購入するほどではなさそうなので,CUDAを使ってみよう!
0 件のコメント:
コメントを投稿