OS本読書会前の箸休めとしてGPGPUの勉強をすることになりました。
全2~3回くらいの予定でサクっとやるつもり。
以下適当にメモなど。
概要
- 日時:'10/10/10 17:30~21:00
- 場所:短歌会館
- 参加者:6人
- 内容:これからの並列計算のためのGPGPU連載講座(Ⅰ),(Ⅱ)の読合せ
これからの並列計算のためのGPGPU連載講座(Ⅰ)
- 資料のリンク先はここだよ。
- CPUとGPUにはそれぞれの得手不得手がある。GPUなら何でも出来るとか思わないこと。
- CUDAはクーダと読むのが正解。学会でみんなそう言ってたよ!
- 初期の頃は頂点シェーダとピクセルシェーダは別々。その後にユニファイドシェーダという汎用的なのが出てきて,これはプログラム次第で両方になれる。
- ジオメトリシェーダはユニファイドシェーダの一部なのか?よく分からない。
- XYZWのWは平行移動のためにある。行列の掛け算で平行移動できる。
- 表1にキャッシュが載ってないのはなぜ?
- CUDAのCが再帰呼び出しされてる件についてw
- 単純計算とか並列性が高い演算とかはGPU向き。
これからの並列計算のためのGPGPU連載講座(Ⅱ)
- 資料のリンク先はここだよ。
- 関数に対する指示子が3つある。__gloval__はCPUから呼び出してGPU上で実行される関数。__device__はGPUから呼び出してGPU上で実行される関数。__host__はCPUから呼び出してCPU上で実行される関数。
- pthreadとはLinuxで使われるスレッドのライブラリのこと。
- スレッドはメモリ空間を共有している。プロセスはそうじゃない。
- 昔のRubyはランタイムがスレッドの処理を頑張ってた。OSにはやらせないぜ?
- ScalaProcessor(SP)が8つ集まってMultiProsessor(MP)を構成して,そのMPがGPUのグレードによって複数個搭載される,というのがGPUの基本構成。あとは細かいメモリとかね。
- __syncthreads関数は,全SPの処理が終わるのを待つとかそういうこと?
- SPはインオーダーという記載があるけど,if文とかは使えないの?→各SPごとにRegistersというのを持ってるから,たぶんこの中にプログラムカウンタがあるんじゃね?だから使える??
- CUDAではSP単位のジョブをスレッド,MP単位のジョブをブロックと呼ぶ。さらにカーネル実行単位をグリッドと呼ぶ。
- P.10のRegistersのところは,各MP→各SPの誤記。
- 実際に使う人は,こういうハードウェアのことまで意識しながらコード書くのか?→いや分かんなかったら日立とかNECの中の人に聞いてるよ。

最近のコメント