トップページ > ソフトウェア > 2011年09月06日 > v0jogezS0

書き込み順位&時間帯一覧

15 位/1082 ID中時間01234567891011121314151617181920212223Total
書き込み数0100000003101000000000006



使用した名前一覧書き込んだスレッド一覧
◆MERIKEN4.k
【トリップ検索】CUDA SHA-1 Tripper【GeForce】

書き込みレス一覧

【トリップ検索】CUDA SHA-1 Tripper【GeForce】
440 : ◆MERIKEN4.k [sage]:2011/09/06(火) 01:21:28.01 ID:v0jogezS0
>>419
> こんな数値でもちゃんと動いてるぜ。てゆか、もう一桁大きくしても大丈夫だし。
> Kernel details: Grid size: [700 1 1], Block size: [1024 1 1]
> Register Ratio: 0.875 ( 28672 / 32768 ) [27 registers per thread]

これ、SHA-1の話ですよね? Bitslice DESだとper threadのレジスタ数が最大の63になって、
なかなかOccupancyが上がらないのです。スレッドの数を増やしたら
性能は2割ほど上がったけどOccupancyが0.10から0.06に下がってしまいました。
【トリップ検索】CUDA SHA-1 Tripper【GeForce】
442 : ◆MERIKEN4.k [sage]:2011/09/06(火) 09:30:50.33 ID:v0jogezS0
>>421
遅くなりましたが、ようやく試すことができました。
>>361に比べてちょっと遅くなってるのはOSを変えてから
OCを切ったままにしてあるからです。

【GPU】GTX 580 (OCなし: 772/1544/2004)
【CPU】Phenom II X6 1100T 3.30GHz
【OS】Windows 7 Ultimate SP1 64bit
【バージョン】CUDA SHA-1 Tripper 0.4.0
【オプション】なし
【Display Driver】270.81
【速度】
2147479 kTrips in 3.354 sec - 640.274 MTrips/sec
2147477 kTrips in 3.370 sec - 637.234 MTrips/sec
2147482 kTrips in 3.354 sec - 640.275 MTrips/sec
2147483 kTrips in 3.369 sec - 637.425 MTrips/sec
【その他】配布パッケージのtrip.txt (5完1タゲ)

Device 0: "GeForce GTX 580"
Compute Capability revision number: 2.0
Total amount of global memory: 1503 Mbytes
Number of multiprocessors: 16
Number of cores: 512
Clock rate: 1.54 GHz

Use device 0, grid is 128 blocks, 8 blocks/SM (default is 8 blocks/SM)

Reading target file "target.txt"...
1 targets found
【トリップ検索】CUDA SHA-1 Tripper【GeForce】
443 : ◆MERIKEN4.k [sage]:2011/09/06(火) 09:47:58.92 ID:v0jogezS0
>>421
>>441
多ターゲット時の速度低下はある程度は仕方が無いと思います。
英単語のリストだと、付属のtarget_large.txtよりも
target_intの数が増えるのが大きいと思われますです。

【GPU】GTX 580 (OCなし: 772/1544/2004)
【CPU】Phenom II X6 1100T 3.30GHz
【OS】Windows 7 Ultimate SP1 64bit
【バージョン】CUDA SHA-1 Tripper 0.4.0
【オプション】なし
【Display Driver】270.81
【速度】
2044474 kTrips in 3.495 sec - 584.971 MTrips/sec
2044614 kTrips in 3.479 sec - 587.702 MTrips/sec
2044527 kTrips in 3.478 sec - 587.846 MTrips/sec
【その他】英単語のリスト(196962タゲ)

Device 0: "GeForce GTX 580"
Compute Capability revision number: 2.0
Total amount of global memory: 1503 Mbytes
Number of multiprocessors: 16
Number of cores: 512
Clock rate: 1.54 GHz

Use device 0, grid is 128 blocks, 8 blocks/SM (default is 8 blocks/SM)

Reading target file "target.txt"...
196962 targets found

【トリップ検索】CUDA SHA-1 Tripper【GeForce】
444 : ◆MERIKEN4.k [sage]:2011/09/06(火) 09:54:08.33 ID:v0jogezS0
>>441
> 正規表現のサブセット等への対応も考えたほうがいいのかの・・・

前方一致だけなら自分の改造版のソースを流用していただければ
すぐにプリプロセッサが出きるはずです。
後方一致や任意の位置での検索をしようとするとプリプロセッサだけでは
きびしくなってきますが…
【トリップ検索】CUDA SHA-1 Tripper【GeForce】
445 : ◆MERIKEN4.k [sage]:2011/09/06(火) 10:30:57.45 ID:v0jogezS0
10桁トリップのGPU検索の話の続きです。
Visual Profilerで調べた結果、Occupancyが1スレッドあたりのレジスタ数のせいで
低いことがわかったので、CUDA GPU Occupancy Calculatorで調べてみました。

http://developer.download.nvidia.com/compute/cuda/CUDA_Occupancy_calculator.xls

結果はこんな感じです。

http://www.meriken2ch.com/files/2011-09-05-CUDA-occupancy-current.JPG

やはり1スレッドあたりのレジスタ数が邪魔をしてたようで、1SMが同時処理できるブロックの数が4に
なってしまっています。これではOccupancyが上がらないのは当たり前です。

今後の予定としては、共有メモリを1スレッドあたり32 * 4 bytes使って
使用するレジスタの数を半分にすることです。レジスタの数をやみくもに減らしても
スピードが落ちるだけだし、1スレッドに割り当てる共有メモリの量を
増やしても同時処理できるブロックの数が減ってコアが有効利用できないので、
ここらへんがぎりぎりのラインでしょう。下のグラフのようになれば理想的ですが、
はたしてどうなることやら…

http://www.meriken2ch.com/files/2011-09-05-CUDA-occupancy-ideal.JPG

Threads per Block: 128 → 128
Registers per Thread: 63 → 32
Shared Memory per Block: 0 → 6144
Active Threads per Multiprocessor: 512 → 1024
Active Warps per Multiprocessor: 16 → 32
Occupancy of each Multiprocessor: 33% → 67%
【トリップ検索】CUDA SHA-1 Tripper【GeForce】
446 : ◆MERIKEN4.k [sage]:2011/09/06(火) 12:00:20.08 ID:v0jogezS0
あれ、計算間違えてるぞ。共有メモリは1スレッドあたり6144 / 128 = 12 * 4バイトか。
うーん、これは厳しいなあ。できるだけ節約しないと駄目だな、これは。

1スレッドあたりのレジスタ数を20、共有メモリを8 * 4バイトまで削ることができれば
1SMあたり192スレッドまで詰め込んでtheoretical occupancyが100%になるけど、
これは無理そうだしな…

しかし共有メモリが1SMあたり48Kしかないというのはなかなか厳しいです。
もうなるべくローカル変数を減らしてレジスタ数を削るしかないですね。



※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。