Hatena::ブログ(Diary)

fousの日記

2010-08-17

[] 近況など 01:04

特に音沙汰もなく元気です。

というわけで近況報告。

といっても最近はひたすら現在の研究、神経科学関連の論文を読むばかりです。

Mendeleyという論文管理ソフトを使い始めたので、7月はKindleとMendeleyをごにょごにょするツールなどを書いていました。

Kindle 2.5になってCollectionsという機能が増えたので、ファイルの整理がしやすくなりました。

と思ったら新しいのがでてしました。

ついでに誘惑に負けてXperiaを買いました。

Android SDKはまだ手をつけたばかりですが、そのうち何かアップしようかと思います。

2010-04-28

[] Kindle DX first impression 01:43

f:id:fous:20100429012737j:image:w320

Xperiaを買うつもりが、なぜかKindle DXを買ってしまいました。

デバイス的にはまあまあ満足で、英語の論文などはほぼ問題なく見れます。

サイズも大きすぎずちょうどいい感じで、空いてる電車内でなら使えそう。

不満としてはファイル管理が完全におまけなので、大量のpdfを整理するのがすごく大変なこと。

せめてタグ付けぐらいはほしいところです。

あと、日本の書籍が購入できないのはやはり痛い。

Kindle Storeから簡単に洋書が購入できるのをみると、日本の電子書籍は周回遅れと感じてしまいますね。

まあ、これで雑誌やら小説やらが購入できたら歯止めが効かなくなりそうですけども。

日本語のpdfフォントが埋め込まれていれば普通に表示できますが、それ以外については日本語フォントを入れても表示できないものもあるようです。

2010-04-27

[][] CUDAコンパイラバグその2 18:43

SDKをCUDA 3.0にしたら動かなくなったのでなんでかなーと思った結果。

C++のnamespace中でtextureを宣言すると、カーネル起動やメモリ操作関連APIで"unspecified driver error"が発生する模様。

Ref. CUDA 3.0 Bug? Texture inside namespace... - NVIDIA Forums

2010-02-12

[][] Instruction throughputの意味 18:44

まだまだ続く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

[][] いろんなGeForceのdeviceQuery結果 21:08

手元にある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)