自然言語処理における GPGPU プログラミングの参考書

GPU を用いた自然言語処理のプロジェクト実習を考えているので、学内の CUDA の講習会とやらに行ってみる。時間を間違えて遅刻して行ったら先にmasayu-aさんがいた。あまり目新しいことはなかったが、一応資料はもらっておいて shuhei-k くんに渡しておく。

CUDA の本も一応「はじめての CUDA プログラミング」

はじめてのCUDAプログラミング―驚異の開発環境[GPU+CUDA]を使いこなす! (I・O BOOKS)

はじめてのCUDAプログラミング―驚異の開発環境[GPU+CUDA]を使いこなす! (I・O BOOKS)

と「CUDA高速GPUプログラミング入門」
CUDA高速GPUプログラミング入門

CUDA高速GPUプログラミング入門

を買ってみたのだが、あまり参考にならず。自分で英語のドキュメント読んだほうがどう考えても速い。(特に後者を読むのは時間の無駄だと思う。インストールから書かれているのでとても丁寧でいいのだが、たぶんそういう人は CUDA を使うべき対象外な気がする……)
一方、
並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング

並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング

は割と参考になった。MapReduce の話、ソートの話、探索の話、あとグラフアルゴリズムの話(幅優先探索などの探索の話や、最小全域木を求める話とか)などなど、マルチコア・マルチスレッドで動かせるアルゴリズムソースコードつきでいろいろ紹介されている。研究でGPU使ったなにかをしたいのであれば、こっちの本のほうが役に立つのではないかと思う。
Data-Intensive Text Processing With MapReduce (Synthesis Lectures on Human Language Technologies)

Data-Intensive Text Processing With MapReduce (Synthesis Lectures on Human Language Technologies)

が注文可能になったようだ(Amazon.co.jp では予約可能となっているが、Amazon.com では In Stock なので、じきに発送されるだろう)が、自然言語処理学で並列処理が適用可能な(もしくは適用不可能な)手法はこちらを見ていただけるといいと思う。基本的にはオンライン学習や乱択アルゴリズムとは相性が悪いので……