【トリップ検索】MERIKEN's Tripcode Finderat SOFTWARE
【トリップ検索】MERIKEN's Tripcode Finder - 暇つぶし2ch750: ◆MERIKEN4.k
12/11/27 06:43:01.11 qHzcgcY70
10桁トリップ検索のコードですが、なんとCatalyst 12.8以前のドライバでは
出力が化けることが判明しました。ドライバのバクにしても
いくらなんでもひどすぎるorz

751: ◆MERIKEN4.k
12/11/27 19:01:37.31 qHzcgcY70
>>746
手間がかからないならサポートしてもいいんですけど、テストの量が倍以上に
なりますからねえ。残念です。

752: ◆MERIKEN4.k
12/11/27 19:18:07.56 qHzcgcY70
>>739
これ2枚積めば10G TPS超できそうです。TDP 500Wの化物だけど、
普通に検索君1号に2枚収まりそうなんだけど、流石に20万は払えないよな…
あぶないあぶないw

Radeon最上位のデュアルGPU版「HD 7990」発売、重さを支える支柱付き カードは弩級
URLリンク(akiba-pc.watch.impress.co.jp)

Club 3D Radeon HD 7990 Dual GPU
URLリンク(www.club-3d.com)

753:名無しさん@お腹いっぱい。
12/11/27 19:19:19.94 hGvQPEA10
>>752
そんなに電源虐めたいかww

754: ◆MERIKEN4.k
12/11/27 19:34:03.64 qHzcgcY70
>>753
そこにハードウエアがあれば限界まで性能を出したくなるのが
男のさがというものですw

755: ◆supernova.rT
12/11/27 19:36:20.84 3f/efQ6N0 BE:5355599279-DIA(123422)
10桁酉が割られる日も近いな…ゴクリ

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

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

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

759:名無しさん@お腹いっぱい。
12/11/27 20:39:00.84 oOatxZVu0
>>758
単純に考えて、3.5MB×2×4225≒30GBかぁ……

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

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

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

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

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

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

763: ◆MERIKEN4.k
12/11/27 23:10:13.31 qHzcgcY70
>>762
あれれ、そうでしたっけ? もうちょっと調べてみます。

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

765: ◆MERIKEN4.k
12/11/28 00:08:01.45 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:名無しさん@お腹いっぱい。
12/11/28 00:12:07.31 JI44h4XK0
>>765
> SALUBusy: 80.84% -> 113.88%
100%越えってどゆことー?

767: ◆MERIKEN4.k
12/11/28 05:40:16.34 v1ASRvbE0
>>766
それはまったく謎ですw

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

2ch トリップ仕様
URLリンク(sourceforge.jp)

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

769:名無しさん@お腹いっぱい。
12/11/28 08:12:30.61 ttD8PkvV0
>>768
面妖な!

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

770: ◆MERIKEN4.k
12/11/28 19:13:59.54 v1ASRvbE0
7990ですけど別の会社からも発売されてますね。

PowerColor AX7990 6GBD5-2DHJ Radeon HD 7990 6GB
URLリンク(www.newegg.com)

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

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

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

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

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

774: ◆MERIKEN4.k
12/11/29 00:36:21.42 VD1AV4Df0
倫理演算じゃなくて論理演算でした。

775: ◆MERIKEN4.k
12/12/01 23:53:39.30 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:名無しさん@お腹いっぱい。
12/12/02 13:44:02.57 E9WK095v0
駄目元でAMDのフォーラムに報告してみるとか

777:名無しさん@お腹いっぱい。
12/12/03 19:33:58.87 VDyT7kE/0
URLリンク(www.meriken2ch.com)
そんなにPC酷使したいならこれで12桁の酉でも探してろ

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

779:名無しさん@お腹いっぱい。
12/12/03 19:36:00.76 Q+462s2K0
よりによってこのスレに誤爆www

780:名無しさん@お腹いっぱい。
12/12/04 14:07:03.07 OIUiTKsY0
Catalyst 12.11 Beta11が出たな

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

782: ◆MERIKEN4.k
12/12/05 13:42:17.40 YhHPYAwa0
>>777-779
ぜひ活きのいいのをお願いしますw

783: ◆MERIKEN4.k
12/12/05 13:44:23.29 YhHPYAwa0
>>780
かなり頻繁に更新してますね。現在ダウンロード中です。

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

785:名無しさん@お腹いっぱい。
12/12/05 18:55:54.39 jmQ8Rzeo0
>>784
6G級あるか!?

786: ◆MERIKEN4.k
12/12/06 14:44:56.38 LfRKvPte0
>>785
さあ、どうでしょうねえ… ( ̄ー ̄)ニヤリ

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

Multiple Precision Integers and Rationals
URLリンク(www.mpir.org)

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

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

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

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

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

791: ◆MERIKEN4.k
12/12/07 08:23:57.13 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
12/12/07 08:32:34.86 G1/OJRD00
MPIRの分数の型であるmpq_tを使って確率計算をすると、
遅くて使いものにならないことが判明orz
厳密にしすぎるのも考えものですね…
仕方ないので浮動小数点数の型のmpf_tを使うことにします。
任意の精度を指定できるのでこれで十分でしょう。

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

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

p = pow(2.0/64.0, 12)

となります。

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

確率計算での参考:
URLリンク(www.geocities.jp)

796: ◆MERIKEN4.k
12/12/08 03:04:57.17 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:名無しさん@お腹いっぱい。
12/12/08 03:13:22.49 rwOPHj120
>>796
なるほど……固定文字列に展開する作戦ですか。勉強になります。
「トリップ検索人のための便利ツール」的なものを、頑張って完成させようと思います。それでは。

798: ◆JouJaku.HzIz
12/12/08 11:00:59.32 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
12/12/08 11:52:16.32 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:名無しさん@お腹いっぱい。
12/12/08 11:53:33.23 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:
URLリンク(d.hatena.ne.jp)
URLリンク(septieme-sens.blogspot.jp)
URLリンク(tsubame.gsic.titech.ac.jp)
URLリンク(devtalk.nvidia.com)

801: ◆MERIKEN4.k
12/12/08 12:42:23.91 vyeW7s150
>>800
ユーザー名がもともとNullpoなのですw
本名にしておかなくてよかった…

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

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

URLリンク(stackoverflow.com)
URLリンク(www.clear.rice.edu)

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

803:名無しさん@お腹いっぱい。
12/12/08 19:37:38.89 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%」
などといったことが分かります。分かりやすくグラフにしてみました。
URLリンク(up3.viploader.net)
……いや別になんとなく思いついただけなのですが(震え声)

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

806:名無しさん@お腹いっぱい。
12/12/08 21:48:52.17 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
12/12/08 22:45:58.29 vyeW7s150
というわけでバージョン0.07のβ版を用意しました。

MERIKEN's Tripcode Finder 0.07 Beta 1
URLリンク(www.meriken2ch.com)

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

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

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

810: ◆MERIKEN4.k
12/12/09 18:29:54.81 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:名無しさん@お腹いっぱい。
12/12/09 18:40:27.95 HKJ77yRt0
6990×2に5870付けて待て屋やったときは1500W超えたな(ワットチェッカー上限超えたw
そんときはCPUも使ってたけど同等に電気食ってそうだww

812:名無しさん@お腹いっぱい。
12/12/09 19:13:06.04 38oGO8IR0
>>810
ぐおおおおお!
CPUが空気wwwww

813:名無しさん@お腹いっぱい。
12/12/09 20:50:13.83 MhsAJkOg0
最速記録の塗り替えか

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

815: ◆MERIKEN4.k
12/12/10 17:54:08.67 FmksHTb00
>>811
CPUには負荷はほとんどかかっていないのでそこまではいってないはずです。
恐らく検索君1号だけで1100~1200Wぐらいです。

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

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

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

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

817:☆☆勇者さま☆☆☆━━━╋━⊂( ̄▽ ̄∩)
12/12/10 19:36:17.47 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
12/12/10 20:41:56.24 Era62auz0
スレ発見しましたー。
MERIKENさんなら./の10完12桁出そうな予感!

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

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

820: ◆JouJaku.HzIz
12/12/10 22:41:16.10 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:名無しさん@お腹いっぱい。
12/12/10 23:34:40.12 Ya8wVC3a0
>>819
GPUでOpenCLかCUDA扱えないと使いづらいってのが俺の中でのこのソフトの認識
CPUだけなら待て屋とかSHArpとかがあるし(探索空間が違うから一緒にしてはいけない気もするが)

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

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

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

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

826:名無しさん@お腹いっぱい。
12/12/11 15:41:44.59 l2lR+Gjg0
なんかやってます

WindowsのパスワードはGPUを25個使えば約6分から6時間で突破が可能、
毎秒3500億通りもの総当たりが可能な方法とは?
URLリンク(gigazine.net)

827: ◆MERIKEN4.k
12/12/11 16:11:15.02 G8KcgggZ0
>>819
ついさっき修正が完了しました。次の安定版では直っているはずです。

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

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

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

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

URLリンク(www.advancedhpc.com)

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

URLリンク(gigazine.jp)

832:名無しさん@お腹いっぱい。
12/12/11 21:55:11.42 eYtNkyH+T
はりにきたらすでにはられてたか>>826

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

834:名無しさん@お腹いっぱい。
12/12/11 23:05:15.63 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
12/12/11 23:13:37.93 G8KcgggZ0
>>830
とりあえず10桁トリップ検索とコードの整理をするのが先ですけど、
ネットワーク対応はいずれぜひやりたいですねえ。

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

URLリンク(passwords12.at.ifi.uio.no)

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

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

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

839: ◆JouJaku.HzIz
12/12/12 00:21:33.94 gPuKMjn30
>>825
Compute Modeは全てcudaComputeModeDefaultでした。
違うのはCompute Capabilityだけで、Quadroは1.3、他は2.0です。
他の手を考えてみます。

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

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

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

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

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

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

844:841
12/12/12 17:12:49.24 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
12/12/12 18:58:07.81 FX/ZJoUj0
さっき測ったら定格の580が683M TPSぐらいなので560tiの速度は
55%ぐらいですか。CUDA GPU Occupancy Calculatorで調べてみても
特にCC 2.1でOccupancyが下がるということもなかったので、ちょっと
原因がよくわからないですねえ。

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

847:名無しさん@お腹いっぱい。
12/12/12 19:37:38.59 jCx6f4p80
URLリンク(dokumaru.wordpress.com)

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

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

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

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

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

849:名無しさん@お腹いっぱい。
12/12/13 04:38:55.18 Fj613XFy0
GK110買えそう
楽しみ

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

851: ◆MERIKEN4.k
12/12/13 05:17:50.58 sid26Nen0
>>849
Tesla K20ですか? いいな~ 買えたら是非報告をお願いします。

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

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

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

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

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

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

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

857:ののたん ◆KiwamonoL.
12/12/13 13:36:10.93 rNLBcKX70
>>855
えっ!?
SIMD ってなかったの!(SIMD るってなんだよ。w
まさか、Radeon でもやってないとか・・・・・。

ソースを読んでみる気は無い。www

あとまあ Hashcat 知ってるんなら知ってるかもしれんが。
URLリンク(hashcat.net)

858:名無しさん@お腹いっぱい。
12/12/13 16:42:37.91 tgXDqPZ80
もうこれはMERIKENさんにメチャクチャ頑張ってもらうしかない展開

859: ◆MERIKEN4.k
12/12/13 17:01:04.69 sid26Nen0
>>857
SSE2を使ってるルーチンを拾ってきたんですけど、
ベクター化されてないのであんまり速度が出てなかったみたいです。
RadeonのほうはCUDA版のベタ移植なのでそれこそなにもしていませんw
OpenCLドライバが頑張ってるのでせう。Southern Islandsだとベクトル化しても
あんまり意味ないみたいですし… 資料のほうはあとでありがたく読ませて頂きます。
これでさらなる高速化が出来るかもしれないですね。ぐへへへへ…

860: ◆MERIKEN4.k
12/12/13 17:06:59.50 sid26Nen0
>>858
明日の朝の飛行機の便に間に合わせるのに徹夜で荷物をつめはじめたところなので
さすがに帰省前は無理ですw 来月を楽しみにしていて下さい。
家を出る前に0.07の安定版はうpしておきます。

861: ◆YSRKENkO6Y
12/12/13 19:27:33.63 tgXDqPZ80
>>806です。
検索作業をサポートするソフトをリリースしてみます(実験版だけど)。
依頼を検索パターンに変換したり、特定パターンを自動生成したりできます。
良かったらどうぞ。
URLリンク(www1.axfc.net)

862:名無しさん@お腹いっぱい。
12/12/13 19:51:21.07 DyqVV5mA0
レジューム機能がほしいです

863:名無しさん@お腹いっぱい。
12/12/13 21:20:16.88 tgXDqPZ80
>>862
なんで検索空間>>酉空間なのにみんなレジューム機能が欲しくなるんだろうな……いや俺も思ってたことあったけど
自動実行と自動保存はAlpha 7で既に実装されてるから除くとして

864:名無しさん@お腹いっぱい。
12/12/13 21:44:28.47 sR2+e44BP
Radeon HD8000シリーズ楽しみすぎる

865: ◆MERIKEN4.k
12/12/13 23:04:23.15 sid26Nen0
バージョン0.07の安定版です。

MERIKEN's Tripcode Finder 0.07
URLリンク(www.meriken2ch.com)

Alpha 7からの変更点は以下になります。

・OpenCLドライバがインストールされていないと起動できないバグの修正。

866: ◆MERIKEN4.k
12/12/13 23:06:06.40 sid26Nen0
飛行機の時間ギリギリなってしまったのでレスはまた明日させて頂きます。
それではまた~

867: ◆YSRKENkO6Y
12/12/15 21:07:08.23 GRSKcena0
>>861の更新版、「検索人の友 Ver.0.6」のお知らせ。
待て屋・SHArp・MERIKENの検索パターンを相互変換することができます。
(リンクはスレリンク(qa板:667番)に貼りました)

868:名無しさん@お腹いっぱい。
12/12/16 17:19:41.64 V5+y2FbN0
「検索人の友 Ver.0.8」のお知らせ。検索パターンと検索速度から、出現予定時間を算出する機能を追加。
(リンク:スレリンク(qa板:317番)に記載)

869:名無しさん@お腹いっぱい。
12/12/17 06:52:14.80 NsR6YqHWP
SHA256ハッシュを取ると全てのビットが0になるキーが知りたい

870: ◆MERIKEN4.k
12/12/17 08:16:44.48 obM+cmx70
>>862
レジューム機能は原理的に無理ですけど、
累計を保存する機能は近いうちにつけておきます。

871: ◆MERIKEN4.k
12/12/17 08:32:18.59 obM+cmx70
>>868
依頼変換は便利そうですね。スレから依頼を直接引っ張ってきたり、
「大小区別指定」をチェックボックスにして条件を複数同時に指定できると
もっと便利かもしれません。帰省中で今は検索用のPCが使えない状態なので、
来月の中旬頃にはもっと詳しいことが書けると思います。

872:名無しさん@お腹いっぱい。
12/12/17 16:23:37.32 ilzoh/XC0
>>871
依頼引張り→依頼者が「正しい」形式で依頼してくるかが未知数という問題が・・・
全部まとめたシステム的なものはムズカシイけど、コピペから自動認識程度なら検討可
チェックボックス→次のバージョン(Ver.2.0)で対応予定。

Ver.1.0に更新のお知らせ:
スレリンク(qa板:320番)

873:名無しさん@お腹いっぱい。
12/12/17 20:47:36.05 tgzVEmdn0
>>869
なんでSHA256?
2chの12桁はSHA1だと思ったが……


仮に2chのトリップがSHA256に対応したとして、BASE64で000000はAなのでAのx完のトリップになると思う

874:名無しさん@お腹いっぱい。
12/12/25 16:10:43.34 8ibvVCIr0
おつかれさまです
現行では10酉探索にはradeonが使えないってことですが
いつか改善される予定ってありますか?

875: ◆MERIKEN4.k
12/12/27 14:10:32.77 mxDEJqWX0
>>874
一応7xxxシリーズ限定で使えるものがほとんど出来上がっているんですけど、
速度に満足できないので公開を見合わせている状況です。
今考えているのはAMD ILをいじってレジスタ数の割付を最適化することです。
またまとまった時間が取れるようになったら色々試してみる予定なのでしばらく
お待ちください。

876: ◆YSRKENkO6Y
12/12/27 20:41:02.20 dIBogKe10
自作ソフトウェアの更新のお知らせ。ぜひお試しを。

[検索人の友 Ver.2.0]
 このソフトは、以下のような作業を自動化します。
・検索依頼の各種形式への変換
 →依頼スレでのテンプレに準拠。各種形式に変換して表示できます。
  今回は大小指定の複数指定に対応。全大と全小を同時表示、なんてこともできます。
・特定パターンの検索ワードの自動生成
 →「純・準X連」「全数」「二構」「飛石」「最長」「最短」といったパターンの検索
  ワードを自動的に作成します。10桁(待て屋)、12桁(MERIKEN)両方に対応。
・各種トリップ検索ワードの相互変換
 →「まあ、待て屋。」「SHArp Tripper」「MERIKEN's Tripcode Finder」の 3種類の検
  索ソフトの検索ワードを互いに変換します。今回は「*」「+」といったパターンや、
  「(|)」にて|が二つ以上の場合にも対応。
・任意の検索ワードに対する出現確率を計算
 →上記 3種類の検索ソフトでの検索ワードと検索速度を入力すると、発見予定時間を有
  効数字4桁で表示します。発見予想順位を表示する機能も。
・トリップテスト
 →10・12桁トリップをテストできます。生キー対応。

URL:URLリンク(www1.axfc.net)

877: ◆YSRKENkO6Y
12/12/27 21:45:32.82 dIBogKe10
参考画面キャプ:
URLリンク(blog-imgs-52.fc2.com)

878:名無しさん@お腹いっぱい。
12/12/28 07:15:58.38 LSB18vp7O
俺はHD5750なので、7xxx限定だと寂しい。

879:名無しさん@お腹いっぱい。
12/12/28 10:11:27.22 btW3tXEk0
そんなグラボ使ってもゴミみたいな速度だからさっさと7990買った方がいい

880:名無しさん@お腹いっぱい。
12/12/29 15:30:34.93 QBY9tjiXO
CPU単体より速いし。

881:名無しさん@お腹いっぱい。
12/12/30 17:08:22.25 283bEnYe0
ハイエンドグラボだと暖房つけなくていいし。

882: ◆MERIKEN4.k
12/12/30 21:35:19.18 3b9pWfKV0
>>876
お疲れ様です。チェックボックスに対応して下さったんですね。
ありがとうございます。

883: ◆MERIKEN4.k
12/12/30 22:01:34.70 3b9pWfKV0
>>878
自分も5770を持ってるので対応したいのはやまやまなんですけど、
性能を出そうと思ったら最適化を1からやりなおして相当頑張らないと
だめでしょうね~ OpenCLじゃなくてAMD ILで書かないとうまくいかないと思います。
方法がないこともないみたいなんですけど、コードはGPU依存みたいだし
実際どうなんでしょうねえ。

AMD IL
URLリンク(openwall.info)

884:名無しさん@お腹いっぱい。
12/12/31 00:33:06.19 5dWhV9Q+O
いや性能を出す必要はなく、動作すればいいのですよ。
CPUと併用すれば、単体より絶対速くなるしね。
勿論、速い方がいいけど、所詮5750だし。
パフォーマンスアップは、ソフトじゃなく
ハードでやるべき。

885: ◆YSRKENkO6Y
12/12/31 02:23:57.88 FP3iWdXs0
>>882
MERIKENさんが帰ってきた、だと・・・!?
>>884
同意
パフォーマンスに拘るのはCOOLだと思うけど、
ちゃんと動くものがあればあるだけ欲しいと思う層もいるのですよ

886: ◆MERIKEN4.k
12/12/31 06:11:35.03 awFOsDcV0
>>884
7970用のルーチンも一応5770でも動きますけど、CPUよりずっと遅いですよ。
GPGPUの最適化は難しいのです。

887: ◆MERIKEN4.k
12/12/31 06:32:32.71 awFOsDcV0
>>885
その「ちゃんと動」かすのが10桁トリップ検索の場合結構大変なんですよ。
ソフトウェアの最適化なしだったらGPUでもせいぜい2~3M TPSといったところで、
ここから数十M TPSまで持って行くにはGPUのアーキテクチャに合わせてかなり
いろいろ工夫しないといけないのです。

888: ◆YSRKENkO6Y
12/12/31 07:57:11.86 FP3iWdXs0
>>887
>2~3MTPS
そうなのか・・・勉強になります
私の自作ツールの場合スクリプト言語で書かれたものですので
最適化とか心配しなきゃならないものでもありませんゆえ

Ver.2.0では正規表現の再現度を上げるのが大変だた・・・よく「*」「+」の展開法思いついたなあの時の俺

889: ◆MERIKEN4.k
12/12/31 08:42:39.52 awFOsDcV0 BE:1862028274-2BP(12)
正規表現は結構めんどくさいですよね。
あと、ご自分のツールのお話は新しくスレを立ててそちらでされてはいかがでしょうか。

890:名無しさん@お腹いっぱい。
12/12/31 08:57:16.76 eH5h6/ri0
追い出されててワロタw

891:名無しさん@お腹いっぱい。
12/12/31 10:07:06.18 o6b6oLP20
待て屋スレ過疎ってるからそっちでいいんじゃね

892:名無しさん@お腹いっぱい。
13/01/02 08:30:53.92 EBbdMn+A0
コレって
先頭から1234・・・・・・・みたいな場合はどうすればいいの?

893:名無しさん@お腹いっぱい。
13/01/02 10:34:58.70 j1GWXSL70
どうするじゃない、ちゃんと詳しく書け。
子供かお前は、人に伝える努力をしろ

894:名無しさん@お腹いっぱい。
13/01/02 12:57:32.84 EBbdMn+A0
◆1234********
みたいなトリップがほしいのですが
正規表現だけだと
◆**1234********
とかになってしまうので
希望の文字を先頭に持ってくる方法を教えて下さい

895:名無しさん@お腹いっぱい。
13/01/02 14:19:05.98 B+O8PAt80
^ググれよURLリンク(www.mnet.ne.jp)

896: ◆YSRKENkO6Y
13/01/02 15:57:36.42 dPGu+6vs0
>>892
このソフトの文法から言えば、
----------
#regex
^1234
----------
か、
----------
#noregex
1234
----------
でいい

897:名無しさん@お腹いっぱい。
13/01/02 23:11:07.52 EBbdMn+A0
>>895-896
ありがとうございます

898:名無しさん@お腹いっぱい。
13/01/03 19:09:59.78 ACm8OTnP0
HD7750 だとどのくらい出てるんでしょうか。

899: ◆MERIKEN4.k
13/01/03 20:27:04.29 uL2cvRSF0 BE:4256064588-2BP(12)
>>898
7750での報告はなかったはずです。コア数が7970の1/4なので、
クロック周波数の差を考え合わせると12桁トリップ検索で450M TPSぐらい
じゃないでしょうか。

900:名無しさん@お腹いっぱい。
13/01/04 08:22:04.31 3pwj0oYQ0
>>899
今使ってる HD6670 だと 267M くらいなので 1.6倍かー

901: ◆MERIKEN4.k
13/01/04 11:11:20.94 9q/aQkBO0
時間ができたので>>857の資料を読んでみました。MTFではトリップのキーの
長さは12桁に決め打ちしてしまっているのでかなりの速度向上が期待できそう
です。資料では最適化の結果命令数が21%減ったとのことでしたが、もう
ちょっと減らせるかもしれません。

それにしても、やっぱりソフトウェアの最適化についてあれこれ考えるのは
面白いですねえ。工夫一つで性能が数割から数倍に向上するのが
GPGPUの醍醐味ですしね。

902:名無しさん@お腹いっぱい。
13/01/04 17:52:21.79 vJlizUDg0
>工夫一つで
プログラミングの腕って結局そこに結実するんでしょうな……
上手くSIMDやGPGPUが決まった時の快感は異常

903: ◆MERIKEN4.k
13/01/05 21:57:03.78 7v0sXuCV0
>>902
ですよね~ GPGPUにはなんとも言えない緊張感があります。

904: ◆MERIKEN4.k
13/01/05 22:15:46.12 7v0sXuCV0
>>857の資料の内容は大体理解できました。要はSHA-1のブロックの最初の
ワード以外を決め打ちにして計算の手間を省こうという話で、トリップ検索に
そのまま応用できることがわかりました。PW[]を定数の配列にして
CPU側であらかじめ計算してからカーネルに渡せばいいはずです。
これはかなり楽して速度が稼げる美味しい話みたいです。

905: ◆JouJaku.HzIz
13/01/09 21:26:57.90 htgpuiWN0
>>839
「QuadroにGeForceが合わないなら、Teslaを使えばいいじゃない。」

【GPU】Tesla K20c
【CPU】XeonX5680@3.33GHz x2
【OS】Win7Pro64SP1
【Ver】0.07
【Len】12
【BLK/SM】256
【Opt】-c -g -x 256
【Drv】310.70
【15minAv】777.25 MTPS
【GPU Av】705.03 MTPS
【CPU Av】72.22 MTPS
【GPU Ld】-
【GPU Tmp】-
【Oth】HT off, QuadroはCUDA off

906: ◆JouJaku.HzIz
13/01/09 21:29:11.42 htgpuiWN0
今回はエラーも出ずに正常に動きました。
K20cはCPU負荷がGeForce5xxに比べて大きく、1枚でX5680の1コアを使い切る位です。
Open Hardware MonitorもGPU-ZもK20cにはまだ対応してないので、GPUの負荷や温度は分かりません。
整数演算はこんなものですかね。もう少し頑張って欲しかった。(´・ω・`)

907:名無しさん@お腹いっぱい。
13/01/10 16:57:35.57 d1+F/txNP
IDにgpu

908: ◆MERIKEN4.k
13/01/12 14:28:42.75 rJVHMMLY0
>>905-906
報告ありがとうございます。Tesla K20cにしてはちょっと遅いですねえ。
CC 3.5用のバイナリを実行ファイルに埋め込めば速くなるのかもしれませんが、
Toolkit 5.0を使うと他のカードでの速度が露骨に遅くなってしまうのが
悩みの種です。NVIDIAのカードでもOpenCL版を使えるように出来ないか
検討してみます。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch