【トリップ検索】MERI ..
[2ch|▼Menu]
297: ◆YSRKEN.ceVZZ
13/10/09 20:50:39.62 hjmT6Azw0
でも、保存しようにも計算が追っつかない気が……真面目に計算してないからよく分からないけど

298:名無しさん@お腹いっぱい。
13/10/09 21:05:58.94 LbcdLs8/0
ずっと前にどこかで似たような話を見たと思ったら
スレリンク(software板:529番)
だった

299:混沌 ◆Chaos/geeeIV
13/10/09 21:22:42.31 P0BLzLC00
>>297
現状では、検索パターンに指定したパターン以外は全て捨てて
新たにパターンを探す時は最初から検索しなおしているわけだけど
保存計画は、計算済みのトリップをかたっぱしから保存していくので
計算済みのトリップならばデーターベースに検索命令入れるだけで1発で取り出せることw

とはいえ、高速ループで生成し続けるトリップを、生成する速度で未保存トリップか否かをチェックして未保存なら保存していく処理はスタンドアロンでは難しそう
こういうことにこそ、分散処理が威力を発揮しそうですよね

分散処理でトリップ範囲を分担し
ループで計算しながら、挿入ソートでメモリ展開しつつ、担当範囲の分担PCに計算済みトリップを分配していく



>>298
既出の話題でしたか^^;

300: ◆Urotsuki/1Ca
13/10/09 21:26:31.44 NxgWXisV0
結構夢があっていいですねー
SSDがもっと早くなってかつ低価格化すれば実現可能性は十分あります
現状のネックである消費電力と速度を打開してくれるのがSSDですから 価格面ならHDDですけど

301:名無しさん@お腹いっぱい。
13/10/09 21:30:18.36 wuthnGWj0
>>294>>296
そこでレインボーテーブルのアプローチですよ。
始点トリップ+終点トリップで72*2/8=18byte
長さ2^20(1MTrip)で(2^72/2^20)*18=72PiB
トリップの頭20bit=0(平均長さ1M)を終点にして残りをオフセットとして読めば
始点トリップ=9byteで9*2^(72-20)=36PiB
1Tあたり4000円で計算するなら1億4745万6000円
20MTPSくらいは出てるようだし平均1分の1GTPSを目標にすれば
始点トリップ=9byteで9*2^(72-30)=36TiB
1Tあたり4000円で計算するなら144万4000円……うん、中々現実的な範囲じゃない?

テーブル作成に掛かる時間は普通に全トリップ計算に掛かる時間(…を超える?)なので、そっちで死にますがww

302:混沌 ◆Chaos/geeeIV
13/10/09 21:54:48.06 P0BLzLC00
>>301
む〜ん、レインボーテーブルが理解できない><
ウィキペディアみてみたけどちんぷんかんぷんでした><

1回総当りでテーブル作るって事はわかるんだけど
なんでその時作ったテーブルが、別のハッシュから結果を取り出すことに使えるのか想像できないw

そこでつまづくから、その先の容量削減とかチェイン化とかちんぷんかんぷん
(っていうか、微積とか行列とかの記号出てくると、そっちでお手上げw)

303:SilentPC ◆SilentPCIePC
13/10/09 22:21:49.95 K2oUYBuJ0
トリップと遂になるハッシュ値を保存して行く時に、トリップ12桁全部をDBに保存せずにトリップ最初4文字でソート+ハッシュで保存していくとか?
残り8文字はDBから取り出したハッシュ群から計算して探す。12桁の残り8文字一致だけなら結構速く計算出来ると思う。
そうすると1トリップに付き8文字分データを減らせる。

304:混沌 ◆Chaos/geeeIV
13/10/09 22:26:10.85 P0BLzLC00
>>303
あーーっw
言われてみれば、トリップは保存しないでもアドレスから一意に決まる事に出来ますね
ディスクは半分で済みそうです

トリップから一意に決まるアドレス位置に そのトリップを計算するのに使ったキーを保存していけばいいのね

305:SilentPC ◆SilentPCIePC
13/10/09 22:32:50.29 K2oUYBuJ0
ああ、更に削る方法もあるかな?
例えば最初1文字までにして、2文字目は大文字か小文字か数字か記号で4パターン(00:01:10:11の2ビット)に分ける。
更に3文字目も同じく分ける。更に4文字目も…
そうやってトリップを区分分けする事で、残りの文字列のパターンを分類し、探すハッシュの数を絞っていくとか?

306:混沌 ◆Chaos/geeeIV
13/10/09 22:42:47.54 P0BLzLC00
>>305
トリップ ◆AAAAAAAAAAAA のトリップキーはアドレス0に保存
トリップ ◆AAAAAAAAAAAB のトリップキーはアドレス1に

こんな感じで、トリップから一意に決まる保存アドレスにキーだけを保存していく感じで良さそうw

307:名無しさん@お腹いっぱい。
13/10/09 22:46:57.59 wuthnGWj0
>>302
自分も全容や応用までは把握はできてないのですが…
まずH(key)→hashなハッシュ関数(SHA-1関数の先頭72bit)と、C(hash)→keyな変換関数(仮にBASE64関数)を準備。
適当な始点hashから「H(C(hash))→hash」を複数回チェインして終点hashを得るってのを沢山やって終点hash→始点hashのテーブルを作って保存しておく。
検索時は「H(C(hash))→hash」な処理を延々繰り返して、記録済みの終点hashと一致するまで検索を続ける。
一致する終点hashを見つけたら対応する始点hashから「H(C(hash))→hash」を繰り返して、H(C(hash))が目標と一致したらそのときのC(hash)が目的の値。
…ってのがレインボーテーブルの概要だったはずです。終点hash→始点hashのペア情報だけでチェイン回数分のハッシュを代用できるのが利点ですね。

C(H())チェインがキレイに全ハッシュ空間が一周するC()を組めれば繰り返し長を固定して探索時間の保障が出来ますが、
H(C())の鎖が短い繰り返しで一周してしまう部分とかをテーブルに含ませる(または検索時にループを発見する)必要もあり、
C()の出力鍵空間内でH()が衝突すると鍵空間<ハッシュ空間になって全てのハッシュを網羅できなくなる問題もあり、
その辺の工夫とかが多分レインボーテーブルのキモになるところだった筈です。
ハッシュ衝突とかは…異なるC()を使ったテーブルで補完するとかでしたっけ。

>>304
ちな301で書いた「トリップの頭20bit=0(平均長さ1M)を終点にして残りをオフセット」ってのもそれです。
↑に書いてるC(H())チェインが短くて頭20bit=0等が出ないと悲しい事になりますorz…ケチらず72TiB使うべきか。
>>305
単純にハッシュの頭nbitを削るだけでも行けそうですね。

308:名無しさん@お腹いっぱい。
13/10/09 23:36:27.79 MTyJscGe0
>>306
似たようなことコンテストの重複チェックルーチンでやったー懐い
FDDの物理アドレスだからエラーになったらおしまいという綱渡り・・・若かった
脇からすまそ

309:混沌 ◆Chaos/geeeIV
13/10/10 00:25:16.04 2gxQn/T50
>>308
まぁ何もOSのFAT管理を無視してトラックセクタ直指定するわけでも
ましてやトラックのギャップにデーター入れるわけでも(笑)ないので
単に、巨大なデータファイル(別に単一ファイルじゃなく適当な大きさのファイル郡でいいのですが)に
先頭からのオフセットで位置を決定するっていうだけなのでw
トリップ文字列からキーの保存オフセットに変換する関数を1つ用意するだけで
知りたいトリップのキーを保存するオフセットアドレスをトリップから直接得ることが出来るですよw

310: ◆Meriken//XXX
13/10/10 03:26:47.92 1qnGPo+xP
盛り上がってますね〜
私はいまだに検索君1号の調整中です。
これ、ちゃんと使えるようになるのかな…

311: ◆Meriken//XXX
13/10/10 06:11:07.20 1qnGPo+xP
MTFを起動しようとするとatimpag.sysでBSOD(0x00000116)が発生。
やっぱGPUが5個もあるのがいけないのかなあ。弱った弱った。

312: ◆Meriken//XXX
13/10/10 06:36:09.28 1qnGPo+xP
いろいろいじってたらいつの間にか動くようになりましたw
後は微調整だけど、取りあえず動作確認は出来たので一安心です。

313:名無しさん@お腹いっぱい。
13/10/10 06:43:37.09 wd4utxMC0
何て贅沢で羨ましい悩み。w

314: ◆Meriken//XXX
13/10/10 07:05:19.03 1qnGPo+xP
さすがにちょっとやり過ぎかもしれませんw
あれからまた安定しなくなったのでもっと調整が必要なようです。
実に難しいですねえ。

315:混沌 ◆Chaos/geeeIV
13/10/10 07:38:15.24 2gxQn/T50
おはようございます
いい感じに設定作業が進んでいそうですねー

316:やんやん ◆yanyan/Pails
13/10/10 08:18:22.69 9IgIyU1y0
Linux版の予定ってありますか?

317: ◆Meriken//XXX
13/10/10 08:42:56.48 1qnGPo+xP
>>315
いやあ、それが結局あれから全然安定しなくて、とりあえず
7970をはずしちゃいました。残念なことにM6Eだと5GPU以上だと
安定しないようです。これまで使ってたCrosshair V Formula-Zが
特別だったのかもしれません。

ちょうどAVX2の次はGCNのアセンブラに取り組もうと考えてたので、
7970は開発機に移してしまうことにします。GCN版はかなりの長丁場になりそうなので、
まあ妥当なところでしょう。

318: ◆Meriken//XXX
13/10/10 08:43:40.37 1qnGPo+xP
>>316
私自身がLinux版を作ることはないで〜す。

319: ◆Meriken//XXX
13/10/10 10:14:48.60 1qnGPo+xP
7970を外してもまだ調子が悪いので、今度は7990だけにしてみました。
6990が原因だとまだ助かるんだけど、マザボの初期不良というのだけは勘弁して欲しいなあ。

320:名無しさん@お腹いっぱい。
13/10/10 12:08:33.38 LHshhmTP0
皆様お疲れ様です

すいませんが質問させて頂きます
トリップの回文と双連の違いは何でしょうか?

宜しくお願いします。

321:名無しさん@お腹いっぱい。
13/10/10 12:37:06.54 jg8QWjDo0
回文 abcdeffedcba
双連 aabbccddeeff

322:混沌 ◆Chaos/geeeIV
13/10/10 12:48:04.01 2gxQn/T50
現時点で12桁トリップ全てを保存するのは非現実的ってのはわかったけれど
現実問題として、計算しながら、計算した分をどんどん保存していくということを考えた場合どうなるのか・・・

現時点でユグが調子いい時で20GTpsくらいかな
1年スパンで考えた場合

20G=2^30*20
1年=311万秒≒2^20*3
(2^30*20)*(2^20*3) = 2^50*60

とりあえず計算しやすいってことと、速度増加見込みってことで4倍の速度 80GTpsを見込めると仮定して
2^50*2^6 = 2^56

80GTpsで1年間ぶん回すと2^16 T = 65536Tのトリップを生成


うーん、分散処理で実現するには容量以外にもネットワーク負荷の事や
>>294の用に全空間分容量のHDDに記録していくわけじゃないので
ハッシュインデックス化する必要があり、それを記録分担する仕組みを考えるとか
色々課題はあるものの
1年で65536T*12 のトリップキー容量とハッシュインデックス化に必要なインデックス容量考えただけで
現時点ではまだ厳しそうですね・・・w

323:名無しさん@お腹いっぱい。
13/10/10 13:02:30.82 hf+1FSU2P
HDDに1か所保存とか分散だと失われる可能性高そう

1キーでも失われたらそれを再びみつけるのはものすごく大変だろうなー

324:名無しさん@お腹いっぱい。
13/10/10 13:14:55.98 LHshhmTP0
>>321
分かりやすい説明
ありがとうございますm(_ _)m

325: ◆Meriken//XXX
13/10/10 14:43:28.90 1qnGPo+xP
せっかく買ったM6Eですが、カードの選り好みが非常に激しく
なかなか性能を出せません。とりあえずうまく動いた7990と7970の
組み合わせで10桁トリップ検索専用にしておきました。
まあもともと種類の違うグラボを挿すこと自体かなり特殊なのですが、
この展開は完全に予想外です。やっぱり実際にやってみないとわかりませんねえ。

326: ◆Meriken//XXX
13/10/10 14:55:16.83 1qnGPo+xP
まあいいや。今後どうするかはAVX2版の開発が終わってから考えようっと。

327: ◆JouJaku.IYSv
13/10/10 19:09:27.72 56mjdoXX0
>>325
ご愁傷様です。
私も同じZ87チップセットですが、7990とTITANx2の混在で何も問題無くさくっと動きました。
謎ですねぇ。グラボと配線が干渉するので、これ以上追加して試すことは出来ません。

しかし、7990+TITANx2より7990+7970の方が速いって・・・。

328:名無しさん@お腹いっぱい。
13/10/10 19:25:36.93 QtlpUHtc0
Maxwell世代でMTFでもGeForceがRadeonに逆転したりしなんですかね

329: ◆Meriken//XXX
13/10/10 22:08:10.37 1qnGPo+xP
>>327
7990を一番上のスロットに挿さないとまともに動かないし、
これまで使っていたPCIeの延長ケーブルとM6Eの相性も良くないようです。
AMDのドライバも最新のものでないと動きませんでした。不思議なもんです。

330: ◆Meriken//XXX
13/10/10 22:31:07.18 1qnGPo+xP
そうか、M6Eは開発機にまわして、検索君1号はこれまで通りでもいいのか。
時間かかるけどそうしよっかな。

331: ◆Meriken//XXX
13/10/10 23:42:11.44 1qnGPo+xP
今調べたら電源のPCie用のケーブルの端子の先が少し溶けてました。
どうも不安定だった原因の一部はこれにあるようです。
やっぱり無茶させすぎですね。新しいのを注文することにします。
これでうまく行けばかなりおいしいけどどうかな〜

332: ◆Meriken//XXX
13/10/10 23:47:34.88 1qnGPo+xP
>>327
>>328
現在CUDA版の10桁トリップ検索のボトルネックになっているのは共有メモリの量なので、
これが増えない限りは速度は上がらないはずです。TITAN用に書き直せば
もちろん話は別ですが…

333: ◆Meriken//XXX
13/10/11 01:40:41.48 oMuOOsM+P
電源のPCIe用のケーブルを開発機から持ってきて取り付けたら
ようやく検索君1号が12桁トリップ検索でも安定して動くようになりました。
7990を一番上に乗っけているので見た目は前よりさらにやばくなりましたが、
前より冷えるようになったので速度は上がっています。
これで心置きなくAVX2対応の作業を始められます。

334: ◆Meriken//XXX
13/10/11 06:38:50.63 oMuOOsM+P
あれからまた不安定になったので、今度は7990+6990+6990の組み合わせを
試してみましたが、今までで一番安定して動いています。
M6Eはなるべくビデオカードの種類を揃えてやると安定して動作するようです。
すんなり動かなくてエライ目に遭いましたが、もう大丈夫でしょう。

335:名無しさん@お腹いっぱい。
13/10/11 07:00:31.48 kG6nG+a40
コネクタが溶けるとかどんだけw

336:混沌 ◆Chaos/geeeIV
13/10/11 10:16:34.06 7L8VTn8Q0
URLリンク(www.eurogamer.net)

凶器ですねw

337: ◆Meriken//XXX
13/10/11 15:01:05.83 oMuOOsM+P
7990は化物ですw 空冷だと12桁トリップ検索で本気を出しきれないのが
残念ですが…

338: ◆Meriken//XXX
13/10/11 15:14:10.87 oMuOOsM+P
AVX2対応のためにコードを見直してたのですが、
12桁トリップ検索はすぐに対応できそうです。楽しみだな〜

339:混沌 ◆Chaos/geeeIV
13/10/11 15:31:38.11 7L8VTn8Q0
自作なんてしたのも、もう遥か昔のことで最近のPC事情とか、全然ついていけない話になっているのですがw
「グラボ」にメモリ6Gってなんじゃそりゃwww って感じですよw

340:SilentPC ◆SilentPCIePC
13/10/11 16:20:48.16 vXaPX/w40
Powercolor HD 7990 Devil 13 6 GB
URLリンク(www.techpowerup.com)
URLリンク(tpucdn.com)
最大消費電力551W (; ・`д・´)…ゴクリ

341: ◆YSRKEN.ceVZZ
13/10/11 16:37:10.98 kAO/Va9a0
もはや電子レンジクラス

342:SilentPC ◆SilentPCIePC
13/10/11 16:45:35.62 vXaPX/w40
>>341
なるほど、つまり電子レンジで中のものを温めながら、同時にファンで中のものが熱くならないよう冷やしているのがHD7990なんだね。
拷問の域だな…(;´д`)

343:混沌 ◆Chaos/geeeIV
13/10/11 17:08:53.79 7L8VTn8Q0
暖めながら冷やすって言ったって
空冷だろうと水冷だろうとたとえ油冷であってもw
換気するか冷房でもしない限り、冷ました熱は全て部屋にたまるわけでして・・・

1年中強力ハロゲンヒーター部屋の中で動かしてるようなものですよねw

344:名無しさん@お腹いっぱい。
13/10/11 17:19:47.06 21WqkArR0
液体窒素の中に沈めて冷却する選択肢

345: ◆YSRKEN.ceVZZ
13/10/11 17:29:51.23 kAO/Va9a0
>>342
自分で言っててアレだが、レンジとかオーブンって1000W↑が普通だからちょっと違うかも
(ハロゲンヒーターとか電気ポットとかの方が近い)

その辺の冷蔵庫で250kWhぐらい(一日700Wh)だからそれより断然金が掛かるって……

346: ◆Meriken//XXX
13/10/11 17:30:20.53 oMuOOsM+P
>>343
6990も2枚あるから、ヒーターは3台ですw
7990はともかく、6990のうるさいのなんのって…

347:混沌 ◆Chaos/geeeIV
13/10/11 17:30:31.68 7L8VTn8Q0
いや、だから同じですってw
クーラーだって、室外機を部屋に持ち込めば、コンプレッサ動かしている分立派な暖房ですしw
冷蔵庫が部屋の中にあれば、冷蔵庫の中身は冷えても部屋の温度は上がるしw
液体窒素だって、液体窒素自体を冷やす装置が室内にあったら、冷やしたい部分を効果的に冷やす事はできても
部屋全体の温度はどんどんあがって・・・w

348: ◆Meriken//XXX
13/10/11 17:31:34.76 oMuOOsM+P
>>345
検索君1号だけで1300W超えてますw

349:混沌 ◆Chaos/geeeIV
13/10/11 17:32:03.99 7L8VTn8Q0
あw >>347は >>344にですw

350: ◆Meriken//XXX
13/10/11 17:35:32.84 oMuOOsM+P
とりあえずAVX2を検知するルーチンを追加しました。
まあ時間はたっぷりあるのでのんびりやることにします。

351:名無しさん@お腹いっぱい。
13/10/11 17:52:36.25 zZdEZh+x0
冷蔵庫inで、検索。

352:SilentPC ◆SilentPCIePC
13/10/11 17:59:12.22 vXaPX/w40
もういっそ、豪快にアメリカらしくガレージに検索君を置いて、水冷モーターは排水ポンプ用のを使って、ラジエーターは自宅のプールに沈めるのが良いのかもね…
日本なら逆にエコを意識して、発熱で発電をしてその電気で冷却をする装置を開発し、電気代を節約とか。
普通のPCの発熱程度じゃ無理でも、それぐらいの消費電力になれば流石にいくらか還元は出来ないものか?
何か良い発電装置のアイデア無いですか?

353:混沌 ◆Chaos/geeeIV
13/10/11 18:37:11.10 7L8VTn8Q0
冷蔵庫in、検索してみたら想像してたのと全然違ったw


冷蔵庫搭載PC
URLリンク(weekly.ascii.jp)
URLリンク(weekly.ascii.jp)

とか
冷蔵庫の中にマザー入れちゃって冷やすやつとか

そーいうのを想像してたのに、最近流行りのアレだったのね・・・w

354:名無しさん@お腹いっぱい。
13/10/11 19:00:32.74 fckT3S+N0
新生検索君1号大勝利!!!!!

355:名無しさん@お腹いっぱい。
13/10/11 23:27:37.53 r5Pqdip00
>>347
とりあえず最終的な廃熱を室内空気じゃなくて外気に捨てるところからですね。
>>352
温度差で発電すると発電機が熱抵抗になっちゃいますからねぇ…
温度差発電による稼動効率補助つきDCの噂は聞いたことありますが、
発電電力による冷媒循環での効率上昇が発電の熱抵抗を上回れるかどうか。
>>353
冷蔵庫/冷凍庫は温度差が稼げるだけで熱交換速度が遅いから、
断熱性のお陰で逆に蒸し風呂になるってアレですねww

356:名無しさん@お腹いっぱい。
13/10/12 05:04:23.90 BCrjFCBd0
664 :名無しさん? [↓] :2013/10/11(金) 23:58:53.30 ID:???
AMD Catalyst 13.11 Beta Driver for Windows
URLリンク(support.amd.com)

357: ◆Meriken//XXX
13/10/12 10:00:12.64 Oyi47z8vP
>>356
15日に発表のR9 290Xは対応カードの一覧には入っていませんね。
発表の日が楽しみです。

358: ◆Meriken//XXX
13/10/12 10:17:44.74 Oyi47z8vP
とりあえずAVX2で12桁トリップ検索を動かしてみました。
CPU(i7-4770)だけで209M TPS出てます。

URLリンク(www.meriken2ch.com)

ただ、リテールクーラーでは冷却が追いつかないようで、
しばらくしたらCPUがスロットルダウンして速度が下がってしまいました。

URLリンク(www.meriken2ch.com)

まあでも実際に倍近い速度が出せたのでまずまずの成果と言っていいでしょう。

359: ◆YSRKEN.ceVZZ
13/10/12 10:29:55.29 RMpLDz7l0
>>358
CUI画面がすごく懐かしく感じる……あれ、
無料版でもCUI実行で検索できましたっけ?

360: ◆Meriken//XXX
13/10/12 10:32:37.37 Oyi47z8vP
>>359
出来ませんよ。開発用に有効にしてるだけです。

361: ◆Meriken//XXX
13/10/12 10:52:01.12 Oyi47z8vP
32bit AVX2版も作ってみたのですが、こっちでは検索開始直後に
230M TPS出ています。かなり謎です。キャッシュの使い方とか、
OoO向けの最適化とか、工夫の余地はまだ大分ありそうです。

362: ◆QZschizo.ptH
13/10/12 12:27:39.22 zonN9MYx0
5970x2ですがやっぱりデバイス判定に時々失敗します.
再現性をみるのにどこから手をつけたらいいですか?

363: ◆Meriken//XXX
13/10/12 12:34:44.55 Oyi47z8vP
CPUのクロック周波数を3.5GHzまで落としたらようやく熱ダレを起こさなくなりました。
速度はこんなかんじです。

64bit版: 186.84M TPS
32bit版: 209.06M TPS

同じ条件でのDayトリッパーの速度は次になります。

DayTripper2101: 154M TPS

MTFはかなりの速度を出しているのですが、
64bit版のほうが32bit版より遅いことの説明がつきません。
やっぱりCで書いたルーチンを見なおした方がいいのかな…

364: ◆Meriken//XXX
13/10/12 12:41:52.14 Oyi47z8vP
>>362
それはおかしいですね。とりあえず開発版のMerikensTripcodeEngine.exeを
動かして、デバイス判定の失敗したときに"OPENCL DEVICE"の"Name"の部分に
何が表示されているか調べてみて下さい。ドライバのバグの可能性が高いので、
ドライバを変えてみるのもいいと思います。

365: ◆Meriken//XXX
13/10/12 13:50:51.64 Oyi47z8vP
64bit版が遅くなっていた理由がわかりました。
yasmのビルトインマクロであるsave_xmm128が
vmovdqaではなくmovdqaを使っていました。
まったく、油断も隙もあったものではありませんw
これで速度差は妥当なものになりました。やれやれです。

64bit版: 211.96M TPS
32bit版: 209.06M TPS

366: ◆Meriken//XXX
13/10/12 15:02:59.99 Oyi47z8vP
キャッシュに乗りやすいようにテーブルの一部を関数ローカルにコピーしてやったら、
それだけで2〜4M TPSほど速度が上がりました。結構まだ工夫の余地がありますねえ。

64bit版: 216.11M TPS
32bit版: 210.78M TPS

367:名無しさん@お腹いっぱい。
13/10/12 15:12:32.49 UKFSL8z80
>>353
VAX Barで通った道なのに今更感が強いですね、これ

368: ◆Meriken//XXX
13/10/12 15:42:11.41 Oyi47z8vP
>>352
一軒家に住んでたら間違いなく検索君1号はガレージ行きですねw
自室に置いているのは、我ながら正気の沙汰ではありません。
冬に暖房が全く必要ないのは助かりますが…

369: ◆JouJaku.IYSv
13/10/12 15:59:07.38 SgElHHWv0
>>366
お疲れ様です。
同じCPUで定格(3.7GHz)だと約120MTPSなので、ほぼ倍のスピードが出ていますね。
水冷だとサーマルスロットリングは起きないだろうから、楽しみです。

370:混沌 ◆Chaos/geeeIV
13/10/12 17:28:36.27 +NNdeoDL0
>>367
VAXを知らない畑にいたわけじゃないけど
直接端末に触れた事はほとんどない・・・
ただ、あいつがあるコンピュータルームってのは肌寒くてねぇ・・・w

触れたこともほとんどないから、VAX Barなるものもはじめて聞いたんだけどググってみたよw
感想は、メリケン野郎の考えることはクレイジーだぜw って感じw

メリケンさんに引っ掛けたけど、別に罵倒でも卑称でもないのであしからずですw
っていうか、メリケンさんの名前 ハンドルはその意味から取ってて、今住んでるのもソッチのほうなんだろうけど日本人ですよね?

371:名無しさん@お腹いっぱい。
13/10/12 19:44:19.02 XeWEbd3E0
VAX って、VAX/VMS の事??
それなら懐かしいな・・・

372:混沌 ◆Chaos/geeeIV
13/10/12 20:41:37.86 +NNdeoDL0
>>371
ですですw

373:名無しさん@お腹いっぱい。
13/10/13 01:11:31.43 KYI8bH6i0
今更なことですが、検索文字列がヒットしたら、該当する依頼を無効にする
(ゆぐちゃんではなくローカルでの話)機能って付けられますかね?

374:名無しさん@お腹いっぱい。
13/10/13 01:34:02.23 xoBD38890
グラボごとの速度をまとめたWikiとかってどっかにありますか?

375:混沌 ◆Chaos/geeeIV
13/10/13 04:58:52.86 fqcxyF9L0
ローマ字っぽい4文字を適当に作ってみる正規表現の超適当版
^[KSTNHMRGZDBP][aiueo]([kstnhmrgbp][aiueo]){3}/
こんな感じで検索回してみたものの・・・


確かにローマ字なんだけど、まともな単語が出来る確率の低さにがっかりw

376:磯の良い石 ◆ISONOIIISI
13/10/13 05:20:16.81 KYI8bH6i0
>>375
昔、ローマ字のみで意味が通るトリップを生成するための正規表現を自作したことがある
1文字の類(母音)、2文字の類(母音以外の1文字カナ)、3文字の類(拗音を含む類)を
長さが12桁(or10桁)になるように並べたデータをプログラム組んで用意して、
patterns.txtに書き込んで回したもんだ……展開が物凄いことになったがな!

で、上に出ている酉がその成果の一つだったり……

377:名無しさん@お腹いっぱい。
13/10/13 05:35:30.40 KYI8bH6i0
>>374
データの蓄積自体は相当量ありますが、なにせアップグレードでガンガン速度向上しますもので……
このスレだけ見ると、
「HD6990+HD7970+HD7990≒11.1GTPS」(>>3、Ver.0.10)
「HD6850≒805MTPS」(>>19,Ver.1.1FEα2)
「HD 5570/5670≒340MTPS」(>>94,Ver.1.1FEα5)
「GTX660≒536MTPS」(>>98,Ver1.1FEα4)
「GTX650≒207MTPS」(>>101,Ver1.1FEα5)
「GeForce610M≒64.3MTPS」(>>114,Ver1.1FEα5)←参考記録
「GTX650≒9.24MTPS」(>>154,Ver1.1FEα7)←!?
といった感じですかね。他は前スレを当たることをお勧めします

378:名無しさん@お腹いっぱい。
13/10/13 05:44:41.91 JeVY24vu0
>>377
> 「GTX650≒9.24MTPS」(>>154,Ver1.1FEα7)←!?
これは10桁ですよ

379:名無しさん@お腹いっぱい。
13/10/13 05:46:37.71 KYI8bH6i0
>>378
あ、本当だテヘッ

380:名無しさん@お腹いっぱい。
13/10/13 05:54:58.91 +cbnuJwL0
>>377
グラボ、ドライバ、バージョン、設定値・・・手集計はミスが怖いし、
ゆぐちゃんでグラボと速度の情報とって公開してくれたら面白そう

381: ◆Meriken//XXX
13/10/13 09:04:25.37 EU+GIsqgP
>>370
日本人ですよ〜

382: ◆Meriken//XXX
13/10/13 11:34:03.90 EU+GIsqgP
10桁トリップ検索のAVX2への対応がなかなかうまく行きません。
ぐぬぬぬぬ…

383: ◆Meriken//XXX
13/10/13 13:53:21.35 EU+GIsqgP
一応AVX2対応の10桁トリップ検索のルーチンは動くようになったのですが、
なかなか思ったような速度が出てくれません。

AVX(8スレッド): 23.95M TPS
AVX2(8スレッド): 37.98M TPS
AVX2(4スレッド): 35.09M TPS

まあそれなりに速くはなっているのですが、L1Dキャッシュが潰れているみたいで、
倍の速度にはなりませんでした。ちなみに8スレッドから4スレッドにても
あまり速度は落ちていません。やはりキャッシュの使い方を工夫するしかないですねえ。

384:混沌 ◆Chaos/geeeIV
13/10/13 14:31:17.44 fqcxyF9L0
>>376
10桁の方はまだマシなんですが、12桁だと特に
ちょっと無茶なパターンを作ると、すぐに展開サイズがシャレにならない事になって
MTFで検索開始しても、パターンを展開中・・・ まではまだ何とか動いても
そのあとのパターンを処理中で帰ってこなくなってw
帰ってきても、なぜかその後のユグと通信に失敗して何分後に再通信しますとなって、その時間になると展開から再開になって繰り返すのよねw
なんかエラーのアラート窓が出た時もあったな・・w 10秒くらいでその窓消えちゃったから内容確認できなかったけど・・w

まぁそんな感じで、パターンは展開後のサイズがあんまりでかくなり過ぎないように気をつけているのと
パターン定義の入力欄、一応長い定義も書き込めるみたいだけど入力窓あんまり大きくないし、どうせ表示も表示窓の横幅までだから
あんまり複雑な定義もなーって思ってたけど
patterns.txtに直接かーw
patterns.txt って、相当長くなってしまってもしっかり読み込んでくれるのかな(使用可能なメモリの上限チェックとかもろもろ、そういう処理コミコミで)
というか、上記のエラーとか不安定だったのはグラボのメモリの制限なのかなって、自分のグラボを今更ながらみてみたら2Gもメモリあるのね・・・w
7990が6Gも積んでて信じられんとおもったけど、2Gでも十分に信じられないレベルだったw

閑話休題

古い人間なもので、「グラフィックシステム」でユーザープログラムを動かす なんていうと
FM-7のグラフィックサブシステムにYAMAUCHIコマンドで数バイトの共有メモリを使ってプログラムを転送して・・・w
なんてイメージが湧いてきちゃうのですよw(「YAMAUTIコマンド」はググると出てくるはずw)

とはいえ、今のグラボにユーザー処理させるってのも、やっぱり転送して走らせるとかするのでしょうね
動かすプログラムは・・・・・・・むむっ・・・w うーん、スレみてるとアセンブラに置き換える話がでてきてるのはわかるんだけど
GPUに対応したコード吐くコンパイラとかあるって事なのか・・


うーん、我ながら話が飛びまくったわけのわからんレスに・・・w

385:名無しさん@お腹いっぱい。
13/10/13 14:58:50.97 KYI8bH6i0
>>384
昔書いた展開用コードを引っ張りだしてみました。
まず、ローマ字でカナを表現すると、
・アルファベット1文字 ([aiueo]|n)
・アルファベット2文字 ([kstnhmyrwgzjdbp][aiueo]|sh[aiuo]|ts[aiuo]|ch[aiuo]|fu|oh)
・アルファベット3文字 ([kstnhmrwgzjdbp]y[aiueo]|kwa|gwa)
となります。流石にこのままだとハズレ率が半端なくなるので、実際には
[aiueon]と([kstnhmr][aiueo]|y[auo])と[kstnhmr]y[auo]に限定していましたが。
後は「3322」「13231」など長さ「のみ」記述したデータをループ回しで全生成し、
数字部分を上記正規表現文字列に置換すれは完成です。
ちなみに今適当に回したら10桁用で1760行ありました……。

まあこれですらハズレまくるのは目に見えている(感覚としては砂金採りに近い)ので、
あらかじめ豚辞書(フリーの単語リスト)データから「文字の組み合わせ」情報を抽出し、
それに当てはまらないような文字列(日本語っぽくならなさそうなもの)を弾くコードを別に書いて篩に掛けました。
最終的には、ヒットした結果の文字列ファイルを用意すると、
ワンクリックでかな変換→篩に掛けて出力までしてくれるようなものまで作った思い出があります。

結論:HSP様々。なんならお手軽検索キットでも送りましょうか?w

386: ◆Meriken//XXX
13/10/13 15:24:46.07 EU+GIsqgP
皆さん私が考えてもみなかったような使い方をされてますね。
かなり新鮮ですw

387: ◆Meriken//XXX
13/10/13 15:27:45.22 EU+GIsqgP
キャッシュを潰さないためにお蔵入りになったルーチンを引っ張り出してきました。
AVXだけだと微妙に遅くなるのですが、このさい文句はいってられません。
これをAVX2で書き直せばそれなりの性能が出るはずです。

388:混沌 ◆Chaos/geeeIV
13/10/13 15:51:14.32 fqcxyF9L0
>>385
ローマ字じゃなく
英文生成もどきみたいなのも、ちょっと考えてみようとしたんですけどねw

(名詞A|名詞B|名詞C)(動詞A|動詞B|動詞C)(名詞D|名詞E|名詞F) とか
適当な構文と品詞の組み合わせで・・・w

そんな風に考えたんだけど、既に検索中の正規表現だけでも
たとえば
^i[il][il][iIl][iIl][iIl][iIl][iIl][iIl][il][il]i$ とか
^[.]*[vwW]+[.]*$  とか
これでもあんまりサイズがでかくなり過ぎないようにセーブしながら作ってはいるんだけど
それでも地味に容量食うパターンが大量にあって気軽にパターンを増やせない状況になってて英作文正規表現はおあずけ中ですw

389: ◆znjnB.IJwZLU
13/10/13 17:43:41.60 J8269aFW0
>>387
Haswell導入おめでとうございます。

DESですが私のほうではあのcryptをそのまま256bit化して素直に倍の50MTPS出てます。
まあもともと256bit化したときにキャッシュに乗り切るようにあんな構造にしたので。

それよりもSHA-1で躓いてます。
アセンブラで書いてみたのはいいんですがハイパースレッディングがある状況ではあまり恩恵がありません。
イントリで書いてコンパイラに投げても同じ速度が出ます。
まあ、HT切るとスレッドあたり3MTPS差が付くんですが、HTがあると実行ポートを埋めきってしまえるみたで
107MTPSあたりで頭打ちになります。

アセンブラのほうは一週間かけてバイトコードと睨めっこしながら手動パイプライン化までしたのに・・・泣。

390:名無しさん@お腹いっぱい。
13/10/13 20:07:00.46 2IRlbwYd0
>>372
> ですですw
あれって、何かバッチファイル的な言語があったよね。
あれで擬似ログアウト画面を作って、色んな人のユーザ名とパスワードを集めまくった思い出が・・・
VAX/VMS 上でのクロス開発はかなりやったので、本当に懐かしいわ。

391:名無しさん@お腹いっぱい。
13/10/13 20:25:28.75 KYI8bH6i0
:::::::::::.: .:. . ∧_∧ . . . .: ::::::::     引っ張りだしたコードを元に、自動生成した
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : ::   patterns.txtを食わせてみたらメモリ不足で落ちた……
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::.  URLリンク(up3.viploader.net)
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄.     左のタイマは検索実行と同時な。4GBほどメモリ食ってから
                         落ちたことからして、よほど工夫しないと検索不可能かもorz

参考までにpatterns.txtをば:URLリンク(www1.axfc.net)

392:混沌 ◆Chaos/geeeIV
13/10/13 20:49:06.63 fqcxyF9L0
>>390
フィッシング詐欺の手法のハシリみたいなかんじですなw
今となっては、セキュリティとかパスワードとか、色々そういう考え方が社会的に認知されてきたりしているけど
そもそも一般の人は銀行の暗証番号以外、パスワードで何かを守るなんてこと自体がなかったような時代だし
根本的に考え方が違ってた気がしますねぇw

393:名無しさん@お腹いっぱい。
13/10/13 22:44:36.72 r9Dbzyno0
>>391
いろいろと酷い

394:混沌 ◆Chaos/geeeIV
13/10/13 23:00:40.77 fqcxyF9L0
>>391
展開後のパターンじゃなく、途中まで展開した正規表現群みたいな感じですねw
12桁でこれを全パターンやったら、そりゃキますわw
[AIUEO]{12} これだけでも 約2^28 ですよw
これに加えて、1文字目から12文字目まで母音が入るパターンまで加えたらそりゃ大変なことにw

395:名無しさん@お腹いっぱい。
13/10/13 23:26:46.46 2IRlbwYd0
>>391
壁紙が気になる・・・

396:名無しさん@お腹いっぱい。
13/10/13 23:29:37.53 KYI8bH6i0
>>394
>[AIUEO]{12} これだけでも 約2^28 ですよw
一応、元々のコードでは「母音か拗音組が三連続したら弾く」というルーチンが
含まれていたので、そいつを組み込んだら行数が半分以下に。ただ、それでも
メモリ食い過ぎで検索できないのは変わらず。念のため、

[aiueo][aiueon][kstnhmr][aiueo][aiueon][aiueon][kstnhmr][aiueo][kstnhmr][aiueo]

だけ書き込んで回してみると、展開に4分ほど掛かった末にメモリを720MBほど消費しましたw
そりゃ無理ゲーだわ、と言うか確か最初に作った時(今年の1月始め)は待て屋で回してたような……

397:名無しさん@お腹いっぱい。
13/10/13 23:29:47.39 oUFnliXQ0
「ロリ・義母
ンデレ・孕ま

398:名無しさん@お腹いっぱい。
13/10/13 23:34:55.01 KYI8bH6i0
>>395
URLリンク(www.pixiv.net)
ですね。
>>397
勘違いしないでよね! 全体のフォルダ名は
「ロリ・義母・ツンデレ・孕ませ・寝取られ・・・すべての萌えは源氏物語が産んだ!」
URLリンク(blog.livedoor.jp)
なんだから!!

399:名無しさん@お腹いっぱい。
13/10/13 23:46:02.97 KYI8bH6i0
:::::::::::.: .:. . ∧_∧ . . . .: ::::::::     ちなみに、>>396で書いたパターンを待て屋で回したら
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : ::   メモリ消費量僅か5MB……現実は非情である
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::.
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄

400:名無しさん@お腹いっぱい。
13/10/13 23:47:17.62 B/E+227R0
待て屋ってソース公開されてたっけ?
それなら、メモリ消費の少ないその方法を採用してみるとか。

401:混沌 ◆Chaos/geeeIV
13/10/14 00:06:18.79 HNICMWPj0
>>400
自分は ずっと前のトリッパーをちょこちょこ使っていた程度で、待てやとかも使ったことはないんですが
ただ、展開するから高速にマッチ出来るんじゃないかと思うw
このスレの過去ログとかほとんど見てないけど、初期はパターン数制限あったのがある時期に制限がなくなったってのが

たぶんその時に、パターンを展開して(おそらくはマッチする法のトリップも相当数メモリに展開してからまとめて)
アルゴリズム検索(2分検索みたいな?)を取り入れたんじゃないかと予想

メモリ展開して最適化するからこその、大量検索パターンを高速にマッチできてるんだと思いますよw

402:名無しさん@お腹いっぱい。
13/10/14 02:51:29.17 Ehj1Nv8O0
一応、パターン作成+結果からトリップ抽出+ローマ字変換+篩い掛けできるセットを配布しておきます。
ソースコードも添付しますので、参考までにどうぞ。

URLリンク(www1.axfc.net)

403: ◆ISONOIIISI
13/10/14 02:52:29.66 Ehj1Nv8O0
あ、私はID:KYI8bH6i0です。

404:名無しさん@お腹いっぱい。
13/10/14 03:17:32.75 a2gerbx00
>>391
>>> 正規表現の場合、展開数で制限を設ける方式ですか?
>> おおまかに言えばそうですね。
>> 厳密に言えばハッシュ値の数で決まります。
> スレリンク(esite板:100-101番)
なんかもう全部展開しちゃってる感じ?

>>401
先にメモリに展開する場合、展開したテーブルがキャッシュやメモリから溢れると思いっきりロスしそう。
展開数が一定範囲を超えたら正規表現とのマッチ処理をJITするのが最速なのかな・・・

405: ◆Meriken//XXX
13/10/14 04:18:18.49 cHLdpSNUP
MTFではパターンの一部(5文字)からハッシュ値を作成していて、
ハッシュ値の生成に必要な分は最初に全て展開しています。
この方法だと非常に強力な正規表現が使える代わりに
メモリの消費量は大きいです。

正規表現の部分は2年前に作ってからほとんどいじっていないので
改善の余地がかなりあります。待て屋のマッチングのアルゴリズムは
かなり特殊なのですが、これについては鳥屋氏にいろいろ教えて
いただいたので、ぜひMTFに取り込みたいところです。

406: ◆Meriken//XXX
13/10/14 04:22:38.64 cHLdpSNUP
>>369
どもども。10桁トリップ検索のAVX2対応の作業がおわったら新しい開発版を
うpするのでお楽しみに。

407: ◆Meriken//XXX
13/10/14 04:34:56.58 cHLdpSNUP
>>389
> まあもともと256bit化したときにキャッシュに乗り切るようにあんな構造にしたので。

なるほど、そういうことだったんですね。流石です。

> 107MTPSあたりで頭打ちになります。

これはおかしいですねえ。ちょっとMTFがどうなってるか調べてみます。

408: ◆Meriken//XXX
13/10/14 05:17:58.05 cHLdpSNUP
10桁トリップのAVX2対応のルーチンがようやく動きました。

AVX(8スレッド): 23.65M TPS
AVX2(8スレッド): 43.44M TPS
AVX2(4スレッド): 39.04M TPS

>>383よりだいぶましになりました。
CPUを定格に戻せば48.40M TPS出る計算です。
HTの効きは今ひとつなので、まだキャッシュの使い方に
改善の余地がありそうです。
あとは最終転置やキー生成の処理の見直しですね。

409: ◆Meriken//XXX
13/10/14 05:39:05.79 cHLdpSNUP
>>389
12桁トリップ検索はこんな感じです。速度が出ないのはなかなか謎ですねえ。

AVX(8スレッド): 117.31M TPS
AVX2(8スレッド): 215.71M TPS
AVX2(4スレッド): 184.12M TPS

410: ◆Meriken//XXX
13/10/14 08:45:16.44 cHLdpSNUP
キー生成のルーチンを見なおして、10桁トリップ検索の速度が
少し上がりました。

AVX2(8スレッド): 43.44M TPS -> 46.02M TPS

定格で51.28M TPS相当なので、まずまずといったところでしょう。
もうちょっと搾り取れそうな気もしますが、かなり疲れたので
取りあえず休憩することにします。


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

4051日前に更新/149 KB
担当:undef