Paraiso 0.1.0.0公開
あの日胸に抱いたのは、ささやかな希望と憧れ。訪れたのは、速すぎるコードと尽きせぬ課題。
http://hackage.haskell.org/package/Paraiso-0.1.0.0 うごごご・・・
以前はただ文字列の結合でコードを生成していたバックエンドまわりを大幅に強化し、データフローグラフ組立て→解析と最適化→計画立案→抽象文法→コードという段階を踏んでコードを作るようにしましたよ。その結果、CUDAをサポートするようになった。仕組みを悩みながら決めるまでに2ヶ月くらいかかったが、CUDAバックエンド作るのはすぐだったことに驚く。
うちらの分野で使われている既存のコード(CPU向け)と対決しても遜色ない性能が出ますし、(Paraisoとしての)ソースコードには指一本触れずにGPUに移行できる。なにより、ソースの変更は1、2行で、1万行以上にも及ぶC, CUDAコードを操り、性能をがらりと変えていく、そんな夢が現実のものとなりました。すでに2^1000通りのオーダーのコードを生成できる可能性を実現できたので、ぜひGAとかに掛けてみたい。
やんぬるかな、あまり大きな報告をまとめてる時間はないです。詳細は函数プログラミングの集い 2011で!
いづれにせよ、ほんとうの勝負はMPI化してからですよ・・・