[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/04 02:30 / Filesize : 321 KB / Number-of Response : 909
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【トリップ検索】MERIKEN's Tripcode Finder



1 名前: ◆MERIKEN4.k [2012/09/25(火) 18:24:38.09 ID:BDWiD/680]
こちらはMERIKEN's Tripcode Finderの本スレです。動作報告・質問・要望等は
こちらでどうぞ。

MERIKEN's Tripcode Finder(旧CUDA SHA-1 Tripper MERIKEN's Branch)は
2012年9月現在で最速の12桁トリップ検索プログラムです(最高速の記録は
1689.88M tripcodes/s)。CPUのみでも検索できますが、NVIDIA GeForce
シリーズのビデオカードを使用すれば非常に高速に検索を行うことが
できます。特徴は以下の通りです。

・ビデオカードのGPUによる高速検索(CPU検索にも対応)。
・GUIによる簡単な操作(コマンドラインからの使用も可能)。
・正規表現によるターゲットの指定。
・漢字等のShift-JIS文字を含むキーの探索。
・ヒット率、ヒットまでの平均時間等のさまざまな情報の表示。
・ターゲットの数の制限の撤廃。
・10桁トリップ検索への暫定的対応。
・検索速度の実行時の最適化。
・GPLv3で公開されたソースコード。

■入手先
www.meriken2ch.com/programming/merikens-tripcode-finder

■前スレ
anago.2ch.net/test/read.cgi/software/1311428038/

756 名前: ◆MERIKEN4.k mailto:sage [2012/11/27(火) 19:38:49.66 ID:qHzcgcY70]
10桁検索ですけど、crypt()のseedの値に基づいてカーネルを動的に
書き換えていたことをすっかり忘れていましたw
これって実行時にOpenCLバイナリを書き換えるか、seedの数だけバイナリを
用意しなきゃいけないってことだよな…

757 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/27(火) 19:59:40.97 ID:oOatxZVu0]
>>756
最適化スゲェ……
でも、10桁のシード(ソルト)って確か2バイト分(最大256^2=65536通り)あるんじゃ

758 名前: ◆MERIKEN4.k mailto:sage [2012/11/27(火) 20:35:03.96 ID:qHzcgcY70]
>>757
実際には2chの仕様のせいで65^2=4225通りなんですけど、
それでも結構な数です。とりあえず実験的に作ってみますけど、
さすがにこれを配布パッケージに含めるのは考えちゃいますねw

759 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/27(火) 20:39:00.84 ID:oOatxZVu0]
>>758
単純に考えて、3.5MB×2×4225≒30GBかぁ……

動的書き換えでお願いします(切望)

760 名前: ◆MERIKEN4.k mailto:sage [2012/11/27(火) 21:00:31.98 ID:qHzcgcY70]
>>759
書き換えが必要なのはOpenCLのカーネルのバイナリだけなので
そこまでひどくはならないですw せいぜい数十MBのオーダーでしょう。
圧縮がかなり効くはずなので配布パッケージ自体はそこまで大きくならない
はずですけど、こればっかりは試してみないとわかりません。

761 名前: ◆MERIKEN4.k mailto:sage [2012/11/27(火) 22:03:05.43 ID:qHzcgcY70]
新しいドライバで10桁検索をプロファイリングしてみたのですが、
SALBusyが80.84%なのに比べてVALUBusyが28.91%と妙に低いのに
気づきました。MemUnitBusyが66.81%とかなり高いのも気になります。
これは実際にS-Boxで費やされている実行時間は全体の3割程度ということで、
かなり効率が悪いことになります。ちょっとドライバのバージョンを落として
比較してみます。

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/27(火) 22:41:52.20 ID:X0Buxy760]
>>747-748
バージョンによって最適化がかなり違うのですか、面倒ですねえ。

>>756
saltに応じてカーネルの動的書き換えとかできるのですか。
できるにしても実際にやるのが凄いですw

>>758
crypt(3)の仕様で64^2=4096通りではないのですか?

763 名前: ◆MERIKEN4.k mailto:sage [2012/11/27(火) 23:10:13.31 ID:qHzcgcY70]
>>762
あれれ、そうでしたっけ? もうちょっと調べてみます。

764 名前: ◆MERIKEN4.k mailto:sage [2012/11/27(火) 23:17:19.40 ID:qHzcgcY70]
>>762
CUDAでも開発環境のバージョンによってかなり速度差が出てましたけど、
OpenCLではドライバのバージョンで違ってくるので頭が痛いです。
HashcatはカーネルをLLVM IRで配布してるみたいですけど、
似たようなことをしたほうがいいのかもしれません。



765 名前: ◆MERIKEN4.k mailto:sage [2012/11/28(水) 00:08:01.45 ID:v1ASRvbE0]
Catalyst 12.9 Betaに戻してみたら、こんな感じでした。

VALUBusy: 28.91% -> 36.15%
SALUBusy: 80.84% -> 113.88%
MemUnitBusy: 66.81% -> 63.67%

VALUBusyがちょっと上がっただけで速度は3倍になってるので、
ベクターユニットが遊んでいるせいで7970は相当余力を残している
ことになります。かなりの性能向上が期待できそうなので、
OpenCLの実装が一段落したら、自分でGCNのコードをいじってみようかな…

766 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/28(水) 00:12:07.31 ID:JI44h4XK0]
>>765
> SALUBusy: 80.84% -> 113.88%
100%越えってどゆことー?

767 名前: ◆MERIKEN4.k mailto:sage [2012/11/28(水) 05:40:16.34 ID:v1ASRvbE0]
>>766
それはまったく謎ですw

768 名前: ◆MERIKEN4.k mailto:sage [2012/11/28(水) 06:28:09.26 ID:v1ASRvbE0]
>>762
調べてみましたけど、2chのトリップ生成でのsaltの扱いはcrypt (3)の仕様から
ずれているので、やっぱり4225通りであってました。

2ch トリップ仕様
sourceforge.jp/projects/naniya/wiki/2chtrip

最初に10桁トリップ検索の実装をした時にも思ったことですが、
見れば見るほどひどい仕様ですw

769 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/28(水) 08:12:30.61 ID:ttD8PkvV0]
>>768
面妖な!

……ひょっとして10桁検索がどうしても遅くなるのはここにも理由があるんじゃ

770 名前: ◆MERIKEN4.k mailto:sage [2012/11/28(水) 19:13:59.54 ID:v1ASRvbE0]
7990ですけど別の会社からも発売されてますね。

PowerColor AX7990 6GBD5-2DHJ Radeon HD 7990 6GB
www.newegg.com/Product/Product.aspx?Item=N82E16814131483

一枚で$899なので>>752のカードより大分安いですが、がまんがまん…

771 名前: ◆MERIKEN4.k mailto:sage [2012/11/28(水) 19:29:28.10 ID:v1ASRvbE0]
>>769
10桁検索が遅くなるのはBitslice DESでメモリへのランダムアクセスが
大量に発生するのが大きいです。こればっかりは仕方ないですね。

772 名前: ◆MERIKEN4.k mailto:sage [2012/11/28(水) 20:09:39.45 ID:v1ASRvbE0]
isaファイルを出力させてGCNのコードを眺めてたんですが、
register spillsが発生している模様。"ScratchSize = 140;"なる記述が
isaファイルにありました。道理でなかなか速度が出ないわけです。
プロファイラのScratchRegsの欄がNAになってたので完全に油断してました。
NAはnot applicableじゃなくてnot availableの略だったのね…

なんにせよこれでMemUnitBusyやMemUnitStalledが高いのも、VALUBusyが
低いのも説明がつきます。これってCUDAのときみたいにS-Boxを書き換えたら
なんとかなるのかしらん。

773 名前: ◆MERIKEN4.k mailto:sage [2012/11/29(木) 00:31:56.88 ID:VD1AV4Df0]
S-Boxとおぼしき場所に倫理演算の命令に混じってbuffer_store_dwordと
s_buffer_load_dwordx4という命令が大量にあったので、
たぶんこれが速度が出ない原因なんでしょう。
ちょっとすっきりしたけど、これってコンパイラのレジスタの割付が
全然うまく行っていないということですよね。やれやれです。

774 名前: ◆MERIKEN4.k mailto:sage [2012/11/29(木) 00:36:21.42 ID:VD1AV4Df0]
倫理演算じゃなくて論理演算でした。



775 名前: ◆MERIKEN4.k mailto:sage [2012/12/01(土) 23:53:39.30 ID:g8/dTHR/0]
S-Boxの数を変えてISAファイルを調べてみたら、コンパイラがレジスタを
きちんと再利用していないことが判明。

S-Boxes: 1
Kernel occupancy: 10
NumVgprs = 180;
ScratchSize = 0;

S-Boxes: 7
Kernel occupancy: 10
NumVgprs = 239;
ScratchSize = 0;

S-Boxes: 8
Kernel occupancy: 20
NumVgprs = 105;
ScratchSize = 140;

register spillsが起きるとメモリアクセスが枷になって遅くなるし、
起きなければoccupancyが半分になるしでなかなかうまく行きません。
Bitslice DESに必要なレジスタの数は64 + 17 = 81ぐらいなので、
180〜245というのはいくらなんでも多すぎです。
CUDAだったら直接PTXのコードを書けばいいんだけど、OpenCLだと
そういうわけにもいかないので実に難しいです。使用するレジスタの数も
CUDAみたいにコンパイル時に指定できたらいいんですけどねえ。

776 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/02(日) 13:44:02.57 ID:E9WK095v0]
駄目元でAMDのフォーラムに報告してみるとか

777 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/03(月) 19:33:58.87 ID:VDyT7kE/0]
www.meriken2ch.com/programming/merikens-tripcode-finder
そんなにPC酷使したいならこれで12桁の酉でも探してろ

778 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/03(月) 19:34:41.74 ID:VDyT7kE/0]
すまん間違えたwちゃんと生贄連れてくるわ

779 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/03(月) 19:36:00.76 ID:Q+462s2K0]
よりによってこのスレに誤爆www

780 名前:名無しさん@お腹いっぱい。 [2012/12/04(火) 14:07:03.07 ID:OIUiTKsY0]
Catalyst 12.11 Beta11が出たな

781 名前: ◆MERIKEN4.k mailto:sage [2012/12/05(水) 13:40:50.64 ID:YhHPYAwa0]
>>776
う〜ん、どうなんでしょうねえ。レジスタ割り付けを改善すれば
速度が上がるのは自明なので、特に報告するまでもない気もします。
実際12桁検索は倍近く速くなったので、今後に期待といったところです。

782 名前: ◆MERIKEN4.k mailto:sage [2012/12/05(水) 13:42:17.40 ID:YhHPYAwa0]
>>777-779
ぜひ活きのいいのをお願いしますw

783 名前: ◆MERIKEN4.k mailto:sage [2012/12/05(水) 13:44:23.29 ID:YhHPYAwa0]
>>780
かなり頻繁に更新してますね。現在ダウンロード中です。

784 名前: ◆MERIKEN4.k mailto:sage [2012/12/05(水) 13:58:19.89 ID:YhHPYAwa0]
>>287のPCIe用の延長ケーブルを使って、空冷用のスペースを
確保しつつ検索君1号にグラボを3枚積めることを確認しました。
見た目は最悪wですが、ちゃんと動いているので結果オーライです。
弾も色々揃えたので、帰省するまでに最高速の記録を更新できるかも
しれません。



785 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/05(水) 18:55:54.39 ID:jmQ8Rzeo0]
>>784
6G級あるか!?

786 名前: ◆MERIKEN4.k mailto:sage [2012/12/06(木) 14:44:56.38 ID:LfRKvPte0]
>>785
さあ、どうでしょうねえ… ( ̄ー ̄)ニヤリ

787 名前: ◆MERIKEN4.k mailto:sage [2012/12/06(木) 14:57:33.42 ID:LfRKvPte0]
ターゲットが長くなるとヒットするまでの平均時間をいまいち正確に
出せなかった問題ですが、次のライブラリを使うことで解決できることが
わかりました。

Multiple Precision Integers and Rationals
www.mpir.org/

Visual C++だとlong doubleがdoubleと同じ精度なので困ってたのですが、
これなら全く問題ないでしょう。

788 名前: ◆MERIKEN4.k mailto:sage [2012/12/06(木) 16:26:33.08 ID:LfRKvPte0]
MPIRのビルドはあっさり成功して、ちゃんとTripcode Finderに
リンクすることができました。サンプルで2の120乗を計算してみましたが、
ちゃんと正しい結果が出ています。このライブラリには分数計算のルーチンも
含まれているので、非常に正確に確率計算ができるはずです。わくわく…

789 名前: ◆MERIKEN4.k mailto:sage [2012/12/06(木) 17:18:12.37 ID:LfRKvPte0]
おっと、間違えた。サンプルで計算したのは2の1920乗でした。
このライブラリ、logが計算出来ないから使うの結構面倒そうだな。
どうしたものか…

790 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/06(木) 20:46:13.83 ID:nOh2Wtf90]
>>787-789
>ヒットするまでの平均時間をいまいち正確に出せなかった
そうだったのですか!?
ひょっとして有効桁数が2桁表示なのはそのせい……?

↓ところで、トリップ確率を計算するソフトを作っていたのですが、
up3.viploader.net/pc/src/vlpc012973.png
桁数が変わる「.」とかが入った時や準X連な時の正確な組み合わせ数を計算するのが難しいのデス……
どういった計算アルゴリズムで出しているのですか?大雑把でいいので教えて下さい!

791 名前: ◆MERIKEN4.k mailto:sage [2012/12/07(金) 08:23:57.13 ID:G1/OJRD00]
>>790
基本的な流れは以下のとおりです。

(1) 正規表現のパターンを位置と固定長文字列の組み合わせに展開する。
(2) 各組み合わせごとの確率を計算する。
(3) (2)の確率の合計を求める。

注意しなければならないのは、各文字が特定の位置に出現する確率は
通常は1/64ですが、特殊文字の場合は違うということです。
例えば"."と"[:digit:]"がヒットする確率はそれぞれ64/64と10/64と
しておかなければ正確な結果が出ません。

具体的な例を挙げると、12桁トリップ検索における"^test./"の出現確率は

p = (1/64)*(1/64)*(1/64)*(1/64)*(64/64)*(1/64)

となります。

また、位置指定をしていない"/test[:digit:]/"の場合、出現位置が
0〜5の6通りなので、

p = (1/64)*(1/64)*(1/64)*(1/64)*(1/64)*(10/64)*(1/64)*6

になります。

792 名前: ◆MERIKEN4.k mailto:sage [2012/12/07(金) 08:32:34.86 ID:G1/OJRD00]
MPIRの分数の型であるmpq_tを使って確率計算をすると、
遅くて使いものにならないことが判明orz
厳密にしすぎるのも考えものですね…
仕方ないので浮動小数点数の型のmpf_tを使うことにします。
任意の精度を指定できるのでこれで十分でしょう。

793 名前: ◆MERIKEN4.k mailto:sage [2012/12/07(金) 10:59:12.72 ID:G1/OJRD00]
MPIRを使ってヒットまでの時間を予測するルーチンを書き直しましたが、
結局doubleを使った元のルーチンに比べて数パーセント精度が
向上しただけでした。元のルーチンもわりと正確だったということですが、
前からだいぶ気になっていた部分だったのでまあ良しとします。

794 名前: ◆MERIKEN4.k mailto:sage [2012/12/07(金) 20:35:40.18 ID:G1/OJRD00 BE:3192048386-2BP(12)]
>>790
あ、あと書き忘れてたけど、準x連の場合は該当する文字が出現する確率は
大文字と小文字をあわせて2/64になります。例えば"^[Aa]*$"のような
準12連が出現する確率は、

p = pow(2.0/64.0, 12)

となります。



795 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/07(金) 22:19:25.47 ID:1HdVOJHZ0]
>>791
>>基本的な流れ
これだと、あるパターンが複数行で当てはまる際重複して数えてしまうような……
「当てはまる全パターン」を正確に計算するのはカナリ厳しいことがよく分かりました
>位置と固定長文字列の組み合わせ
ほほう、なるほど。パーサを見直せば出来そうです
ただ、実際にトリップ検索スレに出てくる案件を見る限りでは、
「.」とか「*」とかとかを使う機会は無さそうですね……
>>794
あーいや、こちらが言うところの「準X連」とは、正規表現では「*[Aa][Aa][Aa]*」みたいなもののことです
(これが「純X連」になると、「*AAA*」となります)
もちろん「^[Aa][Aa][Aa]*」から「*[Aa][Aa][Aa]$」まで虱潰しに出して合計してみてもいいのですが、
そうすると「BGCAAAAAAfgt」みたいなものが重複ヒットしてしまうようで……
足し引きしてなんとかすることにします

確率計算での参考:
www.geocities.jp/trip_chaser/tripdata.html

796 名前: ◆MERIKEN4.k mailto:sage [2012/12/08(土) 03:04:57.17 ID:vyeW7s150]
>>795
> これだと、あるパターンが複数行で当てはまる際重複して数えてしまうような……

この問題はパターンを固定文字列に展開したあとで重複するものを
取り除くことでほとんどの場合回避できます。Tripcode Finderでは
qsort()とuniq()の組み合わせで対処しています。

> あーいや、こちらが言うところの「準X連」とは、正規表現では
> 「*[Aa][Aa][Aa]*」みたいなもののことです

正規表現では"*"は先頭に来ないのでいまいちよくわからないですが、
"^[^Aa]*[Aa][Aa][Aa][^Aa]*$"のことでしょうか。

> もちろん「^[Aa][Aa][Aa]*」から「*[Aa][Aa][Aa]$」まで虱潰しに出して合計してみてもいいのですが、
> そうすると「BGCAAAAAAfgt」みたいなものが重複ヒットしてしまうようで……

確かにそうなんですけど、実際には上の処理さえ施しておけば
重複ヒットは無視できる確率でしか発生しないので、Tripcode Finderでは
そこまで厳密に処理はしていません。あまり気にしなくてもいいんじゃないで
しょうかw

797 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/08(土) 03:13:22.49 ID:rwOPHj120]
>>796
なるほど……固定文字列に展開する作戦ですか。勉強になります。
「トリップ検索人のための便利ツール」的なものを、頑張って完成させようと思います。それでは。

798 名前: ◆JouJaku.HzIz mailto:sage [2012/12/08(土) 11:00:59.32 ID:lc8WRVoJ0]
ご無沙汰しております。
電源が届いた後、色々試してみましたがどうも上手く行きません。
Quadro FX 3800, GTX480, GTX590をPCに挿してNVIDIAコンパネでQuadroだけCUDA offにして0.07a7 CUI64を[-c -g -x 128]で走らせると、下記エラーが発生して落ちます。

MERIKENsTripcodeFinderCUI: CUDA FUNCTION FALL FAILED: the launch timed out and was terminated (file 'C:/Users/Nullpo/Documents/Visual Studio 2010/Projects/MERIKENsTripcodeFinderCUI/Source Files/MTF_CUI_CUDA_SHA-1.cu', line 554)
MERIKENsTripcodeFinderCUI: CUDA FUNCTION FALL FAILED: all CUDA-capable devices are busy or unavailable (file 'C:/Users/Nullpo/Documents/Visual Studio 2010/Projects/MERIKENsTripcodeFinderCUI/Source Files/MTF_CUI_CUDA_SHA-1.cu', line 461)
MERIKENsTripcodeFinderCUI: CUDA FUNCTION FALL FAILED: all CUDA-capable devices are busy or unavailable (file 'C:/Users/Nullpo/Documents/Visual Studio 2010/Projects/MERIKENsTripcodeFinderCUI/Source Files/MTF_CUI_CUDA_SHA-1.cu', line 461)
MERIKENsTripcodeFinderCUI: CUDA FUNCTION FALL FAILED: all CUDA-capable devices are busy or unavailable (file 'C:/Users/Nullpo/Documents/Visual Studio 2010/Projects/MERIKENsTripcodeFinderCUI/Source Files/MTF_CUI_CUDA_SHA-1.cu', line 461)

Quadro+GTX590だと発生しません。三枚挿すと発生します。仕方が無いので、現在はGTX480+GTX590で運用しています。

とりあえず
ガッ!

799 名前: ◆MERIKEN4.k mailto:sage [2012/12/08(土) 11:52:16.32 ID:vyeW7s150]
>>798
  ||// ∧_∧|∧_∧
  ||/ r(    (n´・ω・`n) ぬるぽついてないのに「がっ」される
  ||  ヽ゚ホllヌ)|(     )
    ̄ ̄ ̄ ̄ ̄ u―u'

line 554とline 461はそれぞれ

> CUDA_ERROR(cudaMemcpy(outputArray, CUDA_outputArray, sizeOutputArray * sizeof(GPUOutput), cudaMemcpyDeviceToHost));



> cudaError = cudaMalloc((void **)&CUDA_outputArray, sizeof(GPUOutput) * sizeOutputArray);
> ERROR0(cudaError == cudaErrorMemoryAllocation, ERROR_NO_MEMORY, "Not enough memory.");
> CUDA_ERROR(cudaError);

なので、両方共CUDA側のメモリの処理ですね。480と590のCCが2.0で、
Quadro FX 3800のCCが1.3なのでそれが原因かとも思ったのですが、
Quadro + GTX 590で発生しないみたいなのでそうでもないようですねえ。

エラーメッセージを見る限りではCUDAが無効担っているにもかかわらず
APIからQuadroが見えているようです。NVIDIAコンパネでQuadroの
CUDAをonにした場合はちゃんと動作しますか?

800 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/08(土) 11:53:33.23 ID:rwOPHj120]
>>798
ユーザー名がぬるぽなのかガッ!と言いたいためにぬるぽにしたのか……

エラーメッセージでググる限りでは、
>the launch timed out and was terminated
「Primary Device(ディスプレイデバイス)に指定されているGPUで長時間カーネル関数を実行しすぎている」
(探したページではPrimary Deviceを切り替えて対処していたが、基本全部使うGPU検索ではどうか……)
>all CUDA-capable devices are busy or unavailable
「ゾンビプロセスがGPUを占有している」(1つ目のエラーのせいで発生したエラーってことか?)
「fork()する前にcudaThreadExit()すればいいんじゃね」(要するに処理のミス?)
「ドライバを少し古いものに戻してみるのはどうか」(GPUあるある)
てなかんじかな。

参考URL:
d.hatena.ne.jp/ang65/20100721
septieme-sens.blogspot.jp/2011/09/cuda_10.html
tsubame.gsic.titech.ac.jp/node/610
https://devtalk.nvidia.com/default/topic/479529/cuda-programming-and-performance/all-cuda-capable-devices-are-busy-or-unavailable-problem-in-a-multi-process-linux-application/#entry1140557

801 名前: ◆MERIKEN4.k mailto:sage [2012/12/08(土) 12:42:23.91 ID:vyeW7s150]
>>800
ユーザー名がもともとNullpoなのですw
本名にしておかなくてよかった…

普通はlaunch time outはカーネルの処理時間が長すぎて発生する
エラーなんですけど、このケースではCUDAが無効になっているはずの
Quadroに対して検索スレッドが実行されているようなので、ドライバーの
バグ臭いです。Quadroが無効になっていて480と590だけで検索が実行されて
いるなら、エラーの数(=検索スレッドの数)は3個のはずなので…
時間ができたらこちらで再現できないか試してみます。

802 名前: ◆MERIKEN4.k mailto:sage [2012/12/08(土) 13:08:25.51 ID:vyeW7s150]
>>800
もうちょっと調べてみたら、特定のGPUでCUDAが無効になっている場合、
cudaDeviceProp::computeModeをいちいちチェックして
そのGPUが有効かどうか確認しなければいけないことがわかりましたorz

stackoverflow.com/questions/8784572/how-to-choose-device-when-running-a-cuda-executable
www.clear.rice.edu/comp422/resources/cuda/html/group__CUDART__DEVICE_g5aa4f47938af8276f08074d09b7d520c.html

直すのにちょっと時間がかかりますが、作業が終わったらここで報告するので
しばらくお待ちください。

803 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/08(土) 19:37:38.89 ID:rwOPHj120]
>>801
別に恨みはないが言わせてもらおう……
   ( ・∀・)   | | ガッ
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/ ←>>801
  (_フ彡        /


話は飛びますが、検索していると、トリップキーの発見予定時間が
「it takes 2.3 days」などと表示されますよね?
あれが単純に、「出現確率の逆数÷検索速度」だとした場合、
検索し始めて表示時間だけ待ってトリップキーが出現する確率は

せ い ぜ  い 6 3 % ぐ ら い し か な い

ことを最近発見しました。要するに、「1/XのくじをN回引く間に1回でも当たる確率」ということですが。
この確率は、Nが極端に大きいと二項展開やテイラー展開で近似することができ、それによると
確率E=1-EXP(-N/X)。1/Xを「出現確率」、Nを「検索速度(毎秒)×時間(秒)」とすれば、
上記の値が出るということです。しかもこの値は比で考えることができるため、
「予想時間までに出てくる確率は63.2%」
「予想時間の半分の時間で出てくる確率は39.3%」
「予想時間の倍掛けて出る確率は86.5%」
などといったことが分かります。分かりやすくグラフにしてみました。
up3.viploader.net/pc/src/vlpc012980.png
……いや別になんとなく思いついただけなのですが(震え声)

804 名前: ◆MERIKEN4.k mailto:sage [2012/12/08(土) 20:27:31.63 ID:vyeW7s150]
>>803
表示されているのはあくまでも「平均の」待ち時間なので、
「検索し始めて表示時間だけ待ってトリップキーが出現する確率」は
50%になるように調整されています。

> 単純に、「出現確率の逆数÷検索速度」だとした場合

これだと上の確率がちゃんと50%にならないので次のように計算しています。
pをパターンの出現確率とすると、n回のトリップの生成で
パターンが出現*しない*確率q_nは、

q_n = (1 - p)^n

になります。これから50%の確率でパターンが出現するのに必要な
トリップ生成の回数n'は、

0.5 ≒ (1 - p) ^ n' ⇔ n' = ceiling(ln(0.5)/ln(1 - p))

となります。これから発見予定時間sは、次の式で求められます。

s = n' / [平均速度(TPS)]

この計算はMTF_CUI_Patterns.cpp内のLoadTargetPatterns()の
後半で行われています。詳しくはソースを参照してくださいと言いたい
ところですが、公開されているソースのこの計算の部分は非常にわかり
にくいですw MPIRを使って書きなおしたので次のバージョンでは
前よりわかりやすくなったはずですが、大して変わらないかもしれません。



805 名前: ◆MERIKEN4.k mailto:sage [2012/12/08(土) 21:35:28.17 ID:vyeW7s150 BE:3258549577-2BP(12)]
>>800
580+590の組み合わせでは問題は再現できませんでした。
バージョン306.97のディスプレイドライバで
NVIDIA Control Panelで580でCUDAを使用しないように設定してやると、
ちゃんとCUDAのAPIからは580は隠蔽されるようになっていました。
というわけで、この問題はディスプレイドライバのバグである可能性が高いです。
一応cudaDeviceProp::computeModeをチェックする処理を追加しておいたので、
次の開発版を試してみて下さい。

806 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/08(土) 21:48:52.17 ID:rwOPHj120]
>>804
それぐらい折込済み、だと……!?  おみそれいたしました。
でも、その場合でも、q_nは、「発見予定時間だけ経つと0.5である」「発見予定時間のX倍経つと0.5のX乗になる」
ことから、発見確率の予測はそれほど難しくないようです(X=2だと発見確率が75%、X=0.5だと29.3%ほど)。
当該ソースは「// Calculate the matching probability etc.」あたりでしょうか。一度読んでみます。

807 名前: ◆MERIKEN4.k mailto:sage [2012/12/08(土) 22:45:58.29 ID:vyeW7s150]
というわけでバージョン0.07のβ版を用意しました。

MERIKEN's Tripcode Finder 0.07 Beta 1
www.meriken2ch.com/programming/merikens-tripcode-finder

主な変更点はヒットまでの待ち時間の予測の改善と>>798で報告された
問題への対処です。

808 名前: ◆MERIKEN4.k mailto:sage [2012/12/08(土) 22:53:58.49 ID:vyeW7s150]
>>806
たしかにその場所ですけど、n'を計算する部分を書いたときには
うごかすことしか考えていなかったので本当に分かりにくいですよw

809 名前: ◆JouJaku.HzIz mailto:sage [2012/12/09(日) 11:00:55.85 ID:VG0S6xiH0]
>>807
対応して頂きありがとうございます。これから試してみます。
そもそもGeForceとQuadroではドライバが別パッケージになっているので、同時差しでバグが発生する可能性は大きそうですね。
Quadro使うやつはTesla使えってことか・・・。ついていけねぇ。

810 名前: ◆MERIKEN4.k mailto:sage [2012/12/09(日) 18:29:54.81 ID:D9EB7VO00]
12桁トリップ検索のRadeonへの対応の作業もほぼ終了したので、
最高速を測定してみました。オクでお安く手に入れた中古の6990を2枚使って
速度を稼いでいます。真ん中の7970は延長ケーブルでマザボにつなげて
2枚の6990の上に乗っけています。温度の心配はしなくても良くなったので
ギリギリまでOCしています。動くかどうか半信半疑だったのですが
なんとかなるもんですねw

【GPU0】DIAMOND 6990PE54G Radeon HD 6990 4GB @ 900MHz (OC)
【GPU1】Gigabyte GV-R7970C-3GD Radeon HD 7970 @ 1120MHz (OC)
【GPU2】DIAMOND 6990PE54G Radeon HD 6990 4GB @ 900MHz (OC)
【CPU】AMD Phenom II X6 1100T (定格)
【OS】 Microsoft Windows 7 64bit SP1
【バージョン】MERIKEN's Tripcode Finder 0.07 Beta 1
【トリップの種類】12桁
【1SMあたりのブロックの数(CUDA)】N/A
【1CUあたりのワークアイテムの数(OpenCL)】自動
【1WGあたりのワークアイテムの数(OpenCL)】自動
【1GPUあたりの検索プロセスの数(OpenCL)】1
【1検索プロセスあたりの検索スレッドの数(OpenCL)】2
【その他のオプション】-g
【Display Driver】Catalyst 12.11 Beta8
【10分間の平均速度】7428.97 tripcodes/s
【GPUの平均速度】7428.97 tripcodes/s
【CPUの平均速度】N/A
【GPUの使用率】97〜99%
【GPUの温度】83〜93℃
【その他】GPUのみ。

811 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/09(日) 18:40:27.95 ID:HKJ77yRt0]
6990×2に5870付けて待て屋やったときは1500W超えたな(ワットチェッカー上限超えたw
そんときはCPUも使ってたけど同等に電気食ってそうだww

812 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/09(日) 19:13:06.04 ID:38oGO8IR0]
>>810
ぐおおおおお!
CPUが空気wwwww

813 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/09(日) 20:50:13.83 ID:MhsAJkOg0]
最速記録の塗り替えか

814 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/10(月) 10:34:47.93 ID:NpT5XAETi]
6990って水冷にすれば1スロット化出来るよな
でPCIex16スロット7本有るマザー結構な数有るよな
7枚刺したらいいんじゃないかな〜



815 名前: ◆MERIKEN4.k mailto:sage [2012/12/10(月) 17:54:08.67 ID:FmksHTb00]
>>811
CPUには負荷はほとんどかかっていないのでそこまではいってないはずです。
恐らく検索君1号だけで1100〜1200Wぐらいです。

>>812
ここまでGPUが速いとCPU検索を同時実行すると却って速度が落ちるのです。

>>813
前スレを立てたときにくらべて10倍以上の速度が出せたので満足ですw

>>814
お金があればもっと色々試したいんですけど、自分はさすがにもう限界ですねえ。
勇者の登場を待ちましょうw

816 名前: ◆MERIKEN4.k mailto:sage [2012/12/10(月) 18:59:36.16 ID:FmksHTb00]
あ、そうそう。Beta 1に問題がなければ今週の金曜日ぐらいに
バージョン0.07の正式版をうpする予定なので、
不具合があればそれまでに報告していただけると有難いです。

817 名前:☆☆勇者さま☆☆☆━━━╋━⊂( ̄▽ ̄∩) [2012/12/10(月) 19:36:17.47 ID:vm9IVZbG0]
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  |  速くなったな   |
  |     |
  |    |   ,. . _
  |_______| --' 、   ̄ ̄ヽー- 、
       | |  ヽ ̄7 , , \  、   「 ̄ 7
       | |  ヽ / /_ /ハ |ヽ、\ V ./
       | |    i il/   ヽl  \ヽ. V
      ,. -{-、 __ .| ii i!  o   o  | il |
       {   Y/  l il |、   Д   | li |
      `t-く   ヽN `  --- <リiレ'
       | | `ー-- 、  / II - 2 ヽ  `丶、
       | |       ̄ !.ギ 子_ノ >-'   !
       | |        ,r`''ー─''。r'^ヽ、_,/- 、
       | |      / `ヽ、 , '~~`V-─ 、 )
       | |     /   /´`、   !  (_ノ
       i_j.    /   ./    ゙、   !
            /_/      ゙、  !
          :::`ー':::::::::::::::::::::::::::::ヽこノ:::

818 名前: ◆..//.//./5Hv mailto:sage [2012/12/10(月) 20:41:56.24 ID:Era62auz0]
スレ発見しましたー。
MERIKENさんなら./の10完12桁出そうな予感!

酉ありがとうございます(ノ^^)ノ

819 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/10(月) 22:20:03.40 ID:LbISDnqB0]
>>816
WinXP 32bit、GPUなしでver0.07 beta1の.exeを起動させると、「OpenCL.dllが見つかりませんでした…。」と出て起動できない(検索出来ない)。
ver0.06の安定版では起動させることが出来る

820 名前: ◆JouJaku.HzIz mailto:sage [2012/12/10(月) 22:41:16.10 ID:astkHfvt0]
>>807
対応ありがとうございます。
最初にQuadro, 480, 590を繋げて"CUI64 -c -g"で実行。エラーも出ずに実行されました。自動ブロック数設定は相変わらず安定しませんが・・・
次にNVIDIAコンパネでQuadroだけCUDA offにして"CUI64 -c -g -x 192"で実行。下記エラーが出るも、検索自体は実行されます。
MERIKENsTripcodeFinderCUI: CUDA FUNCTION FALL FAILED: unknown error (file 'C:/Users/Nullpo/Documents/Visual Studio 2010/Projects/MERIKENsTripcodeFinderCUI/Source Files/MTF_CUI_CUDA_SHA-1.cu', line 560)

画面の表示はこんな感じです。
CUDA0: (Quadro?)
CUDA1: 560.5M TPS, 192 blocks/SM (480)
CUDA2: 518.7M TPS, 192 blocks/SM (590)
CUDA3: 518.6M TPS, 192 blocks/SM (590)

^Cで強制終了させて、もう一度実行させると、例のエラーが三行出てCPUでのみ検索が実行されます。
挙動が良く分からない・・・

OpenGL用にQuadroを残しておきたいけど、熱的にやばそうなので480と590だけで運用することにします。

821 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/10(月) 23:34:40.12 ID:Ya8wVC3a0]
>>819
GPUでOpenCLかCUDA扱えないと使いづらいってのが俺の中でのこのソフトの認識
CPUだけなら待て屋とかSHArpとかがあるし(探索空間が違うから一緒にしてはいけない気もするが)

822 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 07:36:11.77 ID:G8KcgggZ0]
>>819
報告ありがとうございます。こちらでも確認できました。
取りあえずOpenCLを添付することで対処したいと思います。

823 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 08:50:25.36 ID:G8KcgggZ0]
>>821
実際Tripcode FinderのCPU検索は待て屋やSHArp Tripperほど速度は出ないですからねえ。
GPUが使用出来ないと警告が毎回出るのはさすがにやりすぎなのでこれは直しておきます。

824 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 09:04:22.97 ID:G8KcgggZ0]
>>818
有難うございます。正規表現でいろいろパターンを指定できるので、
結構遊べますよw



825 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 10:05:57.67 ID:G8KcgggZ0]
>>820
やっぱりドライバのバグみたいですねえ。
今度試す機会があったら"CUDA DEVICES"の"Compute Mode"の値を
調べてみて下さい。問題を回避できるかもしれません。

826 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 15:41:44.59 ID:l2lR+Gjg0]
なんかやってます

WindowsのパスワードはGPUを25個使えば約6分から6時間で突破が可能、
毎秒3500億通りもの総当たりが可能な方法とは?
gigazine.net/news/20121211-gpu-brute-force-attack/

827 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 16:11:15.02 ID:G8KcgggZ0]
>>819
ついさっき修正が完了しました。次の安定版では直っているはずです。

828 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 16:31:35.11 ID:G8KcgggZ0]
>>826
これ5台のラックマウントサーバーですよね。グラボが25枚だそうですけど、
サーバーによって構成が違うみたいです。8枚載っているサーバーの
写真があるので、8枚+5枚+4枚*3という構成でしょうか。他のサーバーの
GPUを仮想化してHashcatで利用しているのは非常に興味深いです。
いつか自分でもこんな豪勢なクラスターを組み立ててみたいですねえ。

829 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 16:40:36.00 ID:l2lR+Gjg0]
>>828
やろうと思えば、個人レベルでも出来てしまう辺りがおもしろいですね

830 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 17:23:04.08 ID:KG0LrKw40]
古いPCが沢山あるのでネットワーク対応型MTFを待ってます

831 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 19:39:54.02 ID:G8KcgggZ0]
>>826の記事のグラボが8枚載ったラックマウントサーバーはどうやら
これのようです。

www.advancedhpc.com/gpu_computing/B7015F72V2.html

しかしこうやってみると壮観ですねえ。

gigazine.jp/img/2012/12/11/gpu-brute-force-attack/snap0787.jpg

832 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 21:55:11.42 ID:eYtNkyH+T]
はりにきたらすでにはられてたか>>826

833 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 22:56:32.68 ID:6gmHNGHj0]
>>821
常用しているのはうにだけど、
このソフトはCPUのみでも動くようになっているから、動かないのは問題かなと思って報告した。
>>827
早い対応ありがとうございます。
OpenCL.dllをいれようと思ったものの、検索してもよく分からなかったもので……。

834 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 23:05:15.63 ID:AXhxlsuZ0]
>>828
控えめに一枚500M/sだとしても×25で12.5G/sか・・・
8完が(ln(0.5)/ln(1-1/64^8))/(12.5*10^9)≒4.3時間で出てくる計算に



835 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 23:13:37.93 ID:G8KcgggZ0]
>>830
とりあえず10桁トリップ検索とコードの整理をするのが先ですけど、
ネットワーク対応はいずれぜひやりたいですねえ。

836 名前: ◆MERIKEN4.k mailto:sage [2012/12/11(火) 23:29:58.01 ID:G8KcgggZ0]
>>834
研究発表のスライドにはSHA-1で63G hashes/sでているとありましたよ。

passwords12.at.ifi.uio.no/Jeremi_Gosney_Password_Cracking_HPC_Passwords12.pdf

これはパスワード解析での数字なので、トリップ検索ならもうちょっと
速くなるでしょう。なかなか豪気ですねえw

837 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 23:31:14.25 ID:AXhxlsuZ0]
>>830
ネットワーク対応の暁には学校のPCルーム総動員で検索させてみたいな・・・
いやGPU買えよと言われそうだが

838 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 23:33:44.76 ID:AXhxlsuZ0]
>>836
>トリップ検索ならもうちょっと速くなるでしょう
要するに単にハッシュ出して比較、だけじゃない最適化が掛かっているのか……
8完が1時間切るとかどんなモンスターだww

839 名前: ◆JouJaku.HzIz mailto:sage [2012/12/12(水) 00:21:33.94 ID:gPuKMjn30]
>>825
Compute Modeは全てcudaComputeModeDefaultでした。
違うのはCompute Capabilityだけで、Quadroは1.3、他は2.0です。
他の手を考えてみます。

840 名前: ◆MERIKEN4.k mailto:sage [2012/12/12(水) 06:17:27.59 ID:FX/ZJoUj0]
>>839
そうですか。それは残念… 将来的には各GPUを使用するかしないかを個別に
設定できるようにする予定なのでいずれ解決できるかもしれませんが、
今の段階では難しいですねえ。

841 名前:名無しさん@お腹いっぱい。 [2012/12/12(水) 14:55:15.28 ID:/XRCYi610]
>>343のteslaがGTX5シリーズに負けてるのが印象的です
fermiコアの解析速度はプロセッサクロック×メモリバンド幅ですかね?

うちの560tiが580の報告の半分の速度しか出ないもので

842 名前: ◆MERIKEN4.k mailto:sage [2012/12/12(水) 16:13:34.77 ID:FX/ZJoUj0]
>>841
メモリバンド幅は関係ないです。
580と560tiはそれぞれGF110とGF114なので単純には比較できないですけど
半分だとちょっと遅すぎるような気がしますね。ちゃんとCC 2.1用のバイナリは
入ってるはずだけど…

843 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/12(水) 16:49:47.66 ID:EU7chw1W0]
GF114はSMあたりのコア数はGF110の32コアから48コアに増えていますが、
レジスタ数は増えていなくて、GF110は16SMでGF114は8SMなので
GF114ではレジスタがボトルネックになりがちだったと思います。

とはいえSMあたりのコア数が増えている分少しは向上しているようでしたし、
リファレンスではクロックもGTX560Tiの方が上なので、半分となると遅すぎる気もしますが、
OCされたGTX580との比較でしょうか?

844 名前:841 [2012/12/12(水) 17:12:49.24 ID:SeK148sf0]
【GPU】Geforce GTX560ti ×2
【CPU】core i5 3470
【OS】Microsoft Windows 7 64bit SP1
【バージョン】MERIKEN's Tripcode Finder 0.07 Beta 1
【トリップの種類】12桁
【1SMあたりのブロックの数(CUDA)】192
【その他のオプション】-g -x 128
【Display Driver】306.97
【10分間の平均速度】 762.15Mtripcodes/s
【GPUの使用率】99%
【GPUの温度】71〜80℃
【その他】 CUDA0,1:約381M TPS



845 名前: ◆MERIKEN4.k mailto:sage [2012/12/12(水) 18:58:07.81 ID:FX/ZJoUj0]
さっき測ったら定格の580が683M TPSぐらいなので560tiの速度は
55%ぐらいですか。CUDA GPU Occupancy Calculatorで調べてみても
特にCC 2.1でOccupancyが下がるということもなかったので、ちょっと
原因がよくわからないですねえ。

846 名前:名無しさん@お腹いっぱい。 [2012/12/12(水) 19:21:29.29 ID:SeK148sf0]
GF114はGPGPUには向いてないのですかねー。
現在最速はやはりGF110かな?

847 名前:名無しさん@お腹いっぱい。 [2012/12/12(水) 19:37:38.59 ID:jCx6f4p80]
つttp://dokumaru.wordpress.com/tag/gf110/

848 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/12(水) 20:44:44.70 ID:EU7chw1W0]
55%ですか・・・もう少し出てもよさそうな気もしますが、おかしいというほどではないかと思います。

単精度や32ビット整数の演算性能自体は、GTX560Tiはコア数とクロック的にGTX580の80%近くありますが、
それはピーク性能であって、SHA-1ハッシュの演算ではレジスタがそれなりに必要になります。

SM数とクロック的にはGTX560TiはGTX580の53%程度であり、
それぞれのSMの違いはコア数(と倍精度や特殊関数など)でレジスタ数に変化は無いので
レジスタがネックでコアを使いきれていないのだと思います。

GF114はグラフィックよりではあると思いますが、GPGPUでもレジスタを大量に使うものばかりではないでしょうし
消費電力や値段を考えると、GPGPUにはベストではないけどそれなりにではないでしょうかね。

GK104はGPGPUにはピーキー過ぎてお勧めしませんけど・・・

849 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/13(木) 04:38:55.18 ID:Fj613XFy0]
GK110買えそう
楽しみ

850 名前: ◆MERIKEN4.k mailto:sage [2012/12/13(木) 05:13:49.96 ID:sid26Nen0]
>>848
なるほどなるほど… CUDA Toolkit 5.0に添付されているOccupancy Calculatorでは
このあたりの事情が反映されていないようです。カーネルのレジスタ数は46〜48で
Occupancyは42%なのでレジスタ数が特に多いというわけではないのですが、
これがボトルネックになっているのは確実ですね。

851 名前: ◆MERIKEN4.k mailto:sage [2012/12/13(木) 05:17:50.58 ID:sid26Nen0]
>>849
Tesla K20ですか? いいな〜 買えたら是非報告をお願いします。

852 名前: ◆MERIKEN4.k mailto:sage [2012/12/13(木) 05:44:43.66 ID:sid26Nen0]
>>838
パスワード解析に比べてトリップ検索ではキーの生成が比較的単純なので、
それをうまく利用してやれば速度は1〜2割上がる傾向があります。
GPUクラスタの場合はノード間通信がボトルネックにならないので
更に速くなるものと思われます。しかしもう12桁トリップだと9完以上でないと
危ないですねえ。

853 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/13(木) 05:52:42.00 ID:q8Aa1QZH0]
>>852
いやいやいや
あくまでも12桁ですから、キーを割られる危険という意味では何完であろうと関係はないです
我々のような好き者にとっては問題なんですが

854 名前: ◆MERIKEN4.k mailto:sage [2012/12/13(木) 07:25:01.97 ID:sid26Nen0]
>>853
> あくまでも12桁ですから、キーを割られる危険という意味では何完であろうと関係はないです

あ、「危険」と書いたのはそういう意味じゃないです。
トリップの場合はある程度一致すればなりすましができるので
キーが割られなくても十分危ないんですよね。トリップが一致しているか
どうかを判断しているのは一般のユーザーで、普通の人はわざわざ
12桁目まで細かく確認しているわけではありません。ここらへんは普通の
パスワードとはぜんぜん違うところです。



855 名前: ◆MERIKEN4.k mailto:sage [2012/12/13(木) 08:47:43.45 ID:sid26Nen0]
今唐突に12桁トリップのCPU検索を高速化するアイディアを思いついたん
ですけど、1月の中旬まで帰省しているので実装はそれまでおあずけです。
残念…

なんでMTFのCPU検索がSHArp Tripperやhip2に比べて遅かったのか
不思議で仕方がなかったんですけど、よく考えたら普通のSHA-1の
ルーチンを使いまわしてたせいで、SSE2のレジスタをトリップ検索に
特化した形で効率的に使用していなかっただけでしたw
1個のハッシュの生成を高速化するより、SSE2の128bitレジスタを使って
4個同時に生成したほうが速いに決まってますよねえ。

856 名前: ◆MERIKEN4.k mailto:sage [2012/12/13(木) 09:05:24.37 ID:sid26Nen0]
あと、よく考えたらキーの動的生成とBitslice DESのルーチンの動的書き換え
( >>712-713 )で10桁トリップのCPU検索も高速化できることに気づきました。
なんで時間のないときに限って面白い考えを思いつくんだろうorz






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<321KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef