Parallel and Concurrent Programming in Haskell 読書会 第4回
今年の #ICFP の Accelerate の最適化(Accelerate 0.13.0.x に入った最適化)に関する論文 "Optimising Purely Functional GPU Programs" http://t.co/jpbXSEleHi #PCPjH
2013-09-29 15:46:41Accelerate を CPU 上で試してみるための Data.Array.Accelerate.Interpreter モジュール http://t.co/6p6Qzm9KoT #PCPjH
2013-09-29 15:48:11#PCPjH Accelerate は deep embedding。モナドみたいに DSL のオペを直接 Haskell で書くのが shallow、一旦 DSL の構文を Haskell の (G)ADT で表現するのが deep。
2013-09-29 15:51:43なお、Accelerate HEAD には、Template Metaprogramming を使って最適化される既存の CUDA コード(ライブラリ)を使うための FFI が追加されています。 http://t.co/mrBkuloruA #PCPjH
2013-09-29 15:54:21.。oO(厳密には import だけなら 0.13.0.x から使えるようになっていますが、まだまだ改良中なので次のバージョンから使えるようになると考えた方が無難だと思います。 > Accelerate の FFI #PCPjH )
2013-09-29 15:57:26GHC 7.0.1 から使えるようになってますね。http://t.co/8P7shYdmVE http://t.co/i82VRblZ6a http://t.co/GflqAfROeT > Import #PCPjH
2013-09-29 16:07:02#PCPjH ghciのimportはたくさんモジュール使う必要があるような処理ghciでガンバってるときqualified無いとツラいなーと思って試しに叩いたら通ったので気付いたな
2013-09-29 16:09:23前章で特に言及されてませんでしたが、Elt クラスは Repa でも使われています。 http://t.co/rZSsW2wiAJ #PCPjH
2013-09-29 16:17:27TransformListComp [http://t.co/OQCobbJH9Y ] で使う GHC.Exts.the 関数の accelerate 版? #PCPjH
2013-09-29 16:22:29GHC.Exts.the は singleton 以外にも使えてしまう(ので実行時エラーが起きる可能性がある)のに対し、Accelerate の the には Scalar にしか使えないという違いがありますが…… #PCPjH
2013-09-29 16:24:17index3関数は無いらしい > :t index3 <interactive>:1:1: Not in scope: `index3' #PCPjH
2013-09-29 16:26:12#PCPjH use は host → device コピーをするので遅い。できるだけ配列は device 側 (= Acc の中) で作って消費しましょう。
2013-09-29 16:26:28enumFromN と enumFromStepN という関数名は vector に合わせてのものかしら c.f. http://t.co/kcAnl9ymCm #PCPjH
2013-09-29 16:28:26#PCPjH むう…何で Acc はモナドになっとらんのだろう。unlift とか bind の方が綺麗で親しみやすい感じになりそうなもんだけど。無限プログラムを作らせないためか?
2013-09-29 16:34:53#PCPjH モナドの bind だと型を制限できないからか。そうか。Heterogeneous MSP じゃないと困るんだな。
2013-09-29 16:38:44Shortest-Path なんか GPU で求める? → 実は OpenCL Progmming Guide にも Parallelizing Dijkstra's Single-Source Shortest-Path Graph Algorithm という章が #PCPjH
2013-09-29 16:48:31#PCPjH モナドが関数適用を抽象化するものだと考えると、パターン言語も抽象化する構成を導入すれば Acc もそれに収容できるのかも知れない。
2013-09-29 16:50:28