Parallel and Concurrent Programming in Haskell 読書会 第4回

2013/Sep/29に開催された"Parallel and Concurrent Programming in Haskell" (by Simon Marlow) の読書会第4回についての呟きをまとめました。今回は、GPUプログラミングのためのAccelerateライブラリを読んでParallelは終了、Concurrentに入りMVarとforkIO、例外処理に関して。
3
前へ 1 2 ・・ 5 次へ
shelarcy(しぇらーしぃ) @shelarcy

今年の #ICFP の Accelerate の最適化(Accelerate 0.13.0.x に入った最適化)に関する論文 "Optimising Purely Functional GPU Programs" http://t.co/jpbXSEleHi #PCPjH

2013-09-29 15:46:41
shelarcy(しぇらーしぃ) @shelarcy

Accelerate を CPU 上で試してみるための Data.Array.Accelerate.Interpreter モジュール http://t.co/6p6Qzm9KoT #PCPjH

2013-09-29 15:48:11
Jun Inoue @jun0inoue

#PCPjH あ、GHCi でも import って使えるんだ。知らなんだ。

2013-09-29 15:49:22
Jun Inoue @jun0inoue

#PCPjH Accelerate は deep embedding。モナドみたいに DSL のオペを直接 Haskell で書くのが shallow、一旦 DSL の構文を Haskell の (G)ADT で表現するのが deep。

2013-09-29 15:51:43
shelarcy(しぇらーしぃ) @shelarcy

なお、Accelerate HEAD には、Template Metaprogramming を使って最適化される既存の CUDA コード(ライブラリ)を使うための FFI が追加されています。 http://t.co/mrBkuloruA #PCPjH

2013-09-29 15:54:21
shelarcy(しぇらーしぃ) @shelarcy

.。oO(厳密には import だけなら 0.13.0.x から使えるようになっていますが、まだまだ改良中なので次のバージョンから使えるようになると考えた方が無難だと思います。 > Accelerate の FFI #PCPjH )

2013-09-29 15:57:26
Jun Inoue @jun0inoue

#PCPjH use はモナドの return だと思えばいいんじゃないかな?

2013-09-29 16:09:21
Noriyuki OHKAWA @notogawa

#PCPjH ghciのimportはたくさんモジュール使う必要があるような処理ghciでガンバってるときqualified無いとツラいなーと思って試しに叩いたら通ったので気付いたな

2013-09-29 16:09:23
shelarcy(しぇらーしぃ) @shelarcy

前章で特に言及されてませんでしたが、Elt クラスは Repa でも使われています。 http://t.co/rZSsW2wiAJ #PCPjH

2013-09-29 16:17:27
shelarcy(しぇらーしぃ) @shelarcy

TransformListComp [http://t.co/OQCobbJH9Y ] で使う GHC.Exts.the 関数の accelerate 版? #PCPjH

2013-09-29 16:22:29
shelarcy(しぇらーしぃ) @shelarcy

GHC.Exts.the は singleton 以外にも使えてしまう(ので実行時エラーが起きる可能性がある)のに対し、Accelerate の the には Scalar にしか使えないという違いがありますが…… #PCPjH

2013-09-29 16:24:17
コスモ @cosmo__

index3関数は無いらしい > :t index3 <interactive>:1:1: Not in scope: `index3' #PCPjH

2013-09-29 16:26:12
Jun Inoue @jun0inoue

#PCPjH use は host → device コピーをするので遅い。できるだけ配列は device 側 (= Acc の中) で作って消費しましょう。

2013-09-29 16:26:28
shelarcy(しぇらーしぃ) @shelarcy

enumFromN と enumFromStepN という関数名は vector に合わせてのものかしら c.f. http://t.co/kcAnl9ymCm #PCPjH

2013-09-29 16:28:26
Jun Inoue @jun0inoue

#PCPjH むう…何で Acc はモナドになっとらんのだろう。unlift とか bind の方が綺麗で親しみやすい感じになりそうなもんだけど。無限プログラムを作らせないためか?

2013-09-29 16:34:53
shelarcy(しぇらーしぃ) @shelarcy

visualize と書いているのに文字で説明しているのはどういうこと? #PCPjH

2013-09-29 16:37:22
二階堂ちむら or にしん @thimura

the って関数名はなかなかじゃぱにーずには思い付かない名前ですねー #PCPjH

2013-09-29 16:38:41
Jun Inoue @jun0inoue

#PCPjH モナドの bind だと型を制限できないからか。そうか。Heterogeneous MSP じゃないと困るんだな。

2013-09-29 16:38:44
Jun Inoue @jun0inoue

#PCPjH おうふ…ツイートに夢中で置いてかれ気味……追いつかんと

2013-09-29 16:41:11
shelarcy(しぇらーしぃ) @shelarcy

Shortest-Path なんか GPU で求める? → 実は OpenCL Progmming Guide にも Parallelizing Dijkstra's Single-Source Shortest-Path Graph Algorithm という章が #PCPjH

2013-09-29 16:48:31
shelarcy(しぇらーしぃ) @shelarcy

.。oO(つぶやきは常に実際の読書会より遅延されています…… #PCPjH )

2013-09-29 16:50:23
Jun Inoue @jun0inoue

#PCPjH モナドが関数適用を抽象化するものだと考えると、パターン言語も抽象化する構成を導入すれば Acc もそれに収容できるのかも知れない。

2013-09-29 16:50:28
Jun Inoue @jun0inoue

#PCPjH 完全に迷子。今どこを議論してるの。朗読は停止してるみたいだけど。

2013-09-29 16:52:40
前へ 1 2 ・・ 5 次へ