2010-08-17
■[雑記] 近況など
特に音沙汰もなく元気です。
というわけで近況報告。
といっても最近はひたすら現在の研究、神経科学関連の論文を読むばかりです。
Mendeleyという論文管理ソフトを使い始めたので、7月はKindleとMendeleyをごにょごにょするツールなどを書いていました。
Kindle 2.5になってCollectionsという機能が増えたので、ファイルの整理がしやすくなりました。
と思ったら新しいのがでてしました。
ついでに誘惑に負けてXperiaを買いました。
2010-04-28
■[雑記] Kindle DX first impression
Xperiaを買うつもりが、なぜかKindle DXを買ってしまいました。
デバイス的にはまあまあ満足で、英語の論文などはほぼ問題なく見れます。
サイズも大きすぎずちょうどいい感じで、空いてる電車内でなら使えそう。
不満としてはファイル管理が完全におまけなので、大量のpdfを整理するのがすごく大変なこと。
せめてタグ付けぐらいはほしいところです。
あと、日本の書籍が購入できないのはやはり痛い。
Kindle Storeから簡単に洋書が購入できるのをみると、日本の電子書籍は周回遅れと感じてしまいますね。
まあ、これで雑誌やら小説やらが購入できたら歯止めが効かなくなりそうですけども。
日本語のpdfはフォントが埋め込まれていれば普通に表示できますが、それ以外については日本語フォントを入れても表示できないものもあるようです。
2010-02-12
■[GPGPU][CUDA] Instruction throughputの意味
まだまだ続くCUDAねた。
CUDAにはCUDA Visual Profilerという便利なものがありまして、メモリの使用帯域とか各カーネルごとの実行時間をお手軽に測定することができます。
で、こいつで測定できる項目の一つにinstruction throughputというのがあります。
直感的にはいわゆる実行効率なのかなーと思うわけですが,1.0以上あるとか*1、ただの比率だとか*2いろいろ書かれていてよくわからんわけです。
というわけで簡単に調べたメモ。
そして身も蓋もない話で申し訳ないのですが、だいたいのことはマニュアル(同梱のcudaprof.html)に書いてありました。
それによりますと
instruction throughput: Instruction throughput ratio.
(略) calculated using the "instructions" profiler counter.
(略) calculated based on the GPU clock speed.
というように、instructionsカウンタの値から計算されるわけですね。
ただしinstructionsカウンタの解釈が問題で、
「Profiler counters for a single multiprocessor」の項目にあるように
These counters are incremented by one per each warp.
となっています。つまりthread単位ではなくwarp単位で積算されているため、全体の実行命令数を求めるにはこの値を32倍する必要があります。
そしてもう一つ、
the profiler can only target one of the multiprocessors in the GPU
と書かれているように、このプロファイラはどれか一つのSMを測定対象としています。
そのため、この実行命令数は測定対象のSMに関する統計になっているとみられます。
さて、全体の実行命令数がわかれば後は簡単です。
Instruction throughputはratioとなっていますから、最大実行可能命令数 = GPU(SM)のクロック * 実行時間(GPU Timeカウンタ) * 8 (SP)として最大実行可能命令数を求め、実行効率 = 全体の実行命令数 / 最大実行可能命令数 とすればInstruction throughputの値が再現できます。
例えばGPU Time = 19684.3 [usec]、instructions = 4813980、クロック = 1.35 GHzでは
全体の実行命令数 = 4813980*32 = 154047360
最大実行可能命令数 = 1.35*10^9*19684.3*10^-6*8 = 212590440
となるので、
Instruction throughput = 154047360 / 212590440 = 0.724620355
となります。これは測定値 Instruction throughput = 0.724618とほぼ一致します。
・・・こんなんでいいのかな?
2010-01-13
■[GPGPU][CUDA] いろんなGeForceのdeviceQuery結果
手元にあるGeForceのdeviceQuery結果のメモ。
NVIDIA GeForce GT 240
ボードはno title
Device 0: "GeForce GT 240" CUDA Driver Version: 3.0 CUDA Runtime Version: 2.30 CUDA Capability Major revision number: 1 CUDA Capability Minor revision number: 2 Total amount of global memory: 536543232 bytes Number of multiprocessors: 12 Number of cores: 96 Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 16384 bytes Total number of registers available per block: 16384 Warp size: 32 Maximum number of threads per block: 512 Maximum sizes of each dimension of a block: 512 x 512 x 64 Maximum sizes of each dimension of a grid: 65535 x 65535 x 1 Maximum memory pitch: 262144 bytes Texture alignment: 256 bytes Clock rate: 1.40 GHz Concurrent copy and execution: Yes Run time limit on kernels: Yes Integrated: No Support host page-locked memory mapping: Yes Compute mode: Default (multiple host threads can use this device simultaneously)
NVIDIA GeForce GTX 260
ボードは涙隈孀欺乎匈
Device 0: "GeForce GTX 260" CUDA Driver Version: 2.30 CUDA Runtime Version: 2.30 CUDA Capability Major revision number: 1 CUDA Capability Minor revision number: 3 Total amount of global memory: 939196416 bytes Number of multiprocessors: 27 Number of cores: 216 Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 16384 bytes Total number of registers available per block: 16384 Warp size: 32 Maximum number of threads per block: 512 Maximum sizes of each dimension of a block: 512 x 512 x 64 Maximum sizes of each dimension of a grid: 65535 x 65535 x 1 Maximum memory pitch: 262144 bytes Texture alignment: 256 bytes Clock rate: 1.35 GHz Concurrent copy and execution: Yes Run time limit on kernels: Yes Integrated: No Support host page-locked memory mapping: Yes Compute mode: Default (multiple host threads can use this device simultaneously)
NVIDIA GeForce 9600 GT
ボードはELSA GLADIAC 796 GT SP 512MB - 株式会社 エルザ ジャパン
Device 0: "GeForce 9600 GT" CUDA Driver Version: 3.0 CUDA Runtime Version: 2.30 CUDA Capability Major revision number: 1 CUDA Capability Minor revision number: 1 Total amount of global memory: 536543232 bytes Number of multiprocessors: 8 Number of cores: 64 Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 16384 bytes Total number of registers available per block: 8192 Warp size: 32 Maximum number of threads per block: 512 Maximum sizes of each dimension of a block: 512 x 512 x 64 Maximum sizes of each dimension of a grid: 65535 x 65535 x 1 Maximum memory pitch: 262144 bytes Texture alignment: 256 bytes Clock rate: 1.50 GHz Concurrent copy and execution: Yes Run time limit on kernels: Yes Integrated: No Support host page-locked memory mapping: No Compute mode: Default (multiple host threads can use this device simultaneously)
NVIDIA GeForce 9200M GS
Device 0: "GeForce 9200M GS" CUDA Driver Version: 3.0 CUDA Runtime Version: 2.30 CUDA Capability Major revision number: 1 CUDA Capability Minor revision number: 1 Total amount of global memory: 536870912 bytes Number of multiprocessors: 1 Number of cores: 8 Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 16384 bytes Total number of registers available per block: 8192 Warp size: 32 Maximum number of threads per block: 512 Maximum sizes of each dimension of a block: 512 x 512 x 64 Maximum sizes of each dimension of a grid: 65535 x 65535 x 1 Maximum memory pitch: 262144 bytes Texture alignment: 256 bytes Clock rate: 1.30 GHz Concurrent copy and execution: No Run time limit on kernels: No Integrated: No Support host page-locked memory mapping: No Compute mode: Default (multiple host threads can use this device simultaneously)
NVIDIA GeForce 8600M GT
2010-04-27 追記
Device 0: "GeForce 8600M GT" CUDA Driver Version: 3.0 CUDA Runtime Version: 3.0 CUDA Capability Major revision number: 1 CUDA Capability Minor revision number: 1 Total amount of global memory: 255393792 bytes Number of multiprocessors: 4 Number of cores: 32 Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 16384 bytes Total number of registers available per block: 8192 Warp size: 32 Maximum number of threads per block: 512 Maximum sizes of each dimension of a block: 512 x 512 x 64 Maximum sizes of each dimension of a grid: 65535 x 65535 x 1 Maximum memory pitch: 2147483647 bytes Texture alignment: 256 bytes Clock rate: 0.75 GHz Concurrent copy and execution: Yes Run time limit on kernels: No Integrated: No Support host page-locked memory mapping: No Compute mode: Default (multiple host threads can use this device simultaneously)

