月別アーカイブ: 2017年5月

Haskell でオレオレ Num クラスを作るための考察

以前の記事に書いたように、 Haskell 標準の Num クラスには色々と不満がある:

Haskell の Num クラスに対する不満

結論としては「過去に遡って Num クラスの定義を変えるしかない」だったわけだが、時間干渉も因果律への反逆もできない我々としてはその選択肢は現実的ではないので、独自の Num クラス(オレオレ Num クラス)を作ることにする。この記事は、筆者がオレオレ Num クラスを作った際に考えたことをまとめたものである。

続きを読む

C++ から OpenCL を使う(その0):準備

21世紀を生きる者として、並列コンピューティング技術の一つや二つは扱えなければならない。

この間書いた Haskell で並列評価する記事は CPU のマルチコアを活用するものだったが、今度は CPU 以外のデバイス(GPU を念頭に置く)を活用できる技術を使いたい。いわゆる GPGPU をやりたい。(技術に入門するのが目的であって、計算能力を活かして特にこれがしたいという訳ではない。そもそも筆者の手持ちの GPU の計算能力などたかが知れているが……)

N 社の GPU を前提にするなら CUDA という選択肢もあるだろうが、ここでは移植性を重視して OpenCL を試すことにする。(というか、 Mac ユーザー的には CUDA という選択肢は存在しないも同然)

続きを読む