先日のDeepJuniorの記事には、ぶっちゃけこっちが挫折しそうである。Juniorの作者である Amir Ban と Shay Bushinsky のソフト屋としての威信と存亡を賭けた、それとも単なる意地なのか、Chrillyに対する挑戦状のような数字を見せつけられると、コンピュータチェスの世界も実に面白いものだと思う。


兎に角、Chrillyの探索コアの実効500万局面/秒程度という数字では、既にあまりに旧仕様で魅力に欠けるパフォーマンスになってしまっているということだ。その一桁上の(1FPGAあたり)実効5000万局面/秒くらいが実現できないと、ハード探索に本気で手を出す気になれない。それはコンピュータチェスでの話だが、計算機将棋の世界であってもその数字は変わらないような気がする。


さて以前Chrillyは、1FPGAあたり2つの探索コアを載せようとして巧くいかなかった。しかしそれは「物理的にも論理的にも出来ない」話ではない。単にデバドラを書かなかっただけの事のように思うし、それ以前に「最新最強のデバイスを使ってない」という突っ込み所もあって困る。そのあたりの技術的に解決可能な問題やコストに絡む部分に対していちいちミソをつけてもしょうがないのでそれは置いといて、謎電の作者的今後の方針と計画を少し書こうと思う。


以前書いたことでもあるが、やはりFPGA側でもマルチコア化は必須だと考えている。これはコスト(コア単価)を下げるということが主目的だ。とりあえず試作では4つのコアを1つのFPGAに入れたいと思う。具体的には詰探索コア×2+指将棋探索コア×2という構成である。詰探索コアはPN系探索、指将棋探索コアは残2手+静止探索の予定。これは、少し理由があってそうした。


初期の机上検討では、詰探索と指将棋探索を1つのコアでどちらでも探索モードを指定して使えるようにしたかったのだが、そういうゴージャスな仕様のコアでは規模が大きくなりすぎて4つ載せるにはコストが掛かり過ぎると判断した為だ。寧ろ機能を限定(専用化)した方がコアを小規模化、且つ動作周波数を上げることが出来、よりハード資源の利用効率を上げられる可能性があると踏んだからである。


このあたりは実際に作って動かしてみないと何とも言えないし、だからこそ試作なのだが、2007年に開催されるであろう第17回選手権までにはなんとか間に合わせたいと思っている。(最終目標ではなく)試作レベルでの目標は、とりあえず実効1000万局面/秒/core、稼働率90%で合計3600万局面/秒を最低ラインとするつもりである。もっと具体的に言えば「ライエル問題集」なら1問1分制限で80問以上の正答を目指す。


しかし、それでもSPEARに勝てない


てなことなったら面白ろ悲し過ぎるが、そこまで謎電の作者の人生は呪われていないと私は信じている(笑)

-- 完 --

AD

別冊MultiCore ('05/11号)

テーマ:

皆さんこんにちは。無理矢理MultiCoreの時間です。というより、本業スパート前の最後の休日になりかねないので書いておきます。

--
                                       ('05/09時点)  ('05/07時点)
4800+(2.4GHz/L2:1M  x2) :  \95k前後    (\110k前後)
4600+(2.4GHz/L2:512Kx2) :  \78k前後    ( \85k前後)   (\100kを割る)
4400+(2.2GHz/L2:1M  x2) :  \61k前後    ( \66k前後)   ( \80kを割る)
4200+(2.2GHz/L2:512Kx2) :  \50kを割る  ( \58k前後)   ( \66k前後)
3800+(2.0GHz/L2:512Kx2) :  \40kを割る  ( \43k前後)
Opteron280(2.4GHz)      : \165k前後
       275(2.2GHz)      : \130k前後    (\135k前後)   (\160k前後)
       270(2.0GHz)      : \110k前後    (\120kを割る) (\130k前後)
--

やっと4800+が、大概どこでも10万円を割って売っているようでした。 私の方は引越し直後に4800+を買いに行こうと思ってます。

余談ですが、AMDもIntelも2007年に65nmプロセスでQuadCoreを出す計画のようです。当面それしかやることがなくなったわけですが、AMDが出すと言い出した以上Intel的にも対抗するということでしょう。問題はTDPが増えるので、結局は内部動作周波数を落とさざるを得ず、MultiCoreとしての魅力を維持できるか否かがカギになるでしょう。また、サーバ/WS用途・一部のマニアおよび計算機将棋/囲碁開発者くらいしか需要がない(笑)プロセッサなので、実勢価格がどれくらいになるのかの方も気になります。

AD

Junior考 (1)

テーマ:

コンピュータ将棋や囲碁の掲示板で非常に興味深い記事が紹介されていたので、少しメモ書き程度の感想を書くことにする。


CHESSBASE NEWS (2005/11/21)


この記事の中で驚異的だと思うのは、HydraではなくJuniorの方で、少し引用すると、


>The Deep Junior screen showing the program running at a blistering 6,300,000 positions per second on a dual core AMD machine located in California


この文から察するに、「AMD製のDualCoreプロセッサ1つを用いて、毎秒630万局面を探索」という解釈になる。これははっきり異常な数字だ。並列探索効率を100%と仮定すればコアあたり毎秒315万局面を探索していることになる。現在のAMDのDualCoreは最高2.4GHz動作で、これをオーバクロックせずに定格で用いているものと仮定すると、1局面あたり約760[clocks]のコストとなる。因みに謎電の場合は(指将棋の序盤時、且つシングルで)1700[clocks]前後なのだが、これと比べれば倍以上速いことになり、正直ぶっタマゲた。勿論チェスと将棋では色々な点で異なるのだが、今の謎電をどう改良してもこんな数字を達成することは不可能に思う。


既に掲示板でも書いたことの繰り返しになってしまうが、「FPGAを用いたハード探索で500万局面/秒/coreのHydraより、ソフト探索でOver600万局面/秒/processor(但しDualCore)のJuniorの方が、単位時間あたりの探索量としては上回る」というデータを示めされてしまうと、ソフト探索の限界がいったいどこにあるのかますます判らなくなる。どういうアルゴリズムとデータ構造(あるいはコーディング)なのか見当がつかない[*1]が、工夫次第でそういう数字が叩き出せるということだし、まだまだ謎電は激甘いということである。いや、それよりFPGAを使うことの意味が全くないというような話になりかねないということだ。


[*1] まさか、置換表をコア毎に独立させて登録/引用している、などというような探索の重複を考慮せずに(つまりは探索効率を落としてまで)探索レートを上げているわけではないと思う。もしそうなら語るに値しない話になる。余談だが、例えば謎電の場合、置換表を外して詰探索を行うとBarton/3000+ですらOver200万局面/秒で探索する。FX57なら300万を超えるだろう。しかし意味が全くなく、探索効率は一気に悪化する。

AD

誰か止めてくれ~

テーマ:

既に古い話であるが、王者戦2005を含めて最強戦2005、GPW杯2005とすべて全勝優勝、とどまるところを知らないYSSの快進撃が続いている。これはもはや、計算機将棋界の朝青龍 [*1]。(山下さんには全く恨みはないが)この連戦連勝を誰か止めてくれ~、という感じである。


公開されているYSSの棋譜について一通り目を通し分析してみた。王者戦と比べると、棋譜のクオリティは香一本~大駒一枚は高いのではないかと感じる。これは恐らく、王者戦ではパニックタイムのような持時間の使い方が出来ない(やりにくい)が、特に最強戦では時間の使い方の自由度が相当高いので、疑問手・緩手が少なくなったのではないかと。勿論マシンの性能差の要因もあるとは思うが、R換算の相対差で100にも満たない筈なので、やはり持時間の使い方のほうがファクタとしては大きいのではないかと考えている。


YSSの将棋の終盤分析結果をいろいろ書きたいのだが、必至の読みが鋭いのだか甘いのだか判らない局面が多々あって困っている。謎電の分析結果と異なり、概ね冗長な必至(つまりは余必至)手順を読み切っていることが多い。しかしながら寄せがある時は巧く寄せ切っていることに変わりはない。これはPNを用いた必至探索を行っているのではないかと勝手に想像しているのだが、事実は確かめていないので今回は解説を遠慮することにした。機会があれば、作者の山下さんにこのあたりいろいろ訊ねてみたいと思っているところである。


[*1] 最初、ついうっかり「朝昇竜」と書いてしまった。「朝青龍」と書いて「あさしょうりゅう」と読む。今場所の成績については新聞をご覧ください。

本業モード突入 2005

テーマ:

一週間のごぶさたでした、謎電の作者です。ついに本業モードに遷移してしまい、そこから抜け出せずblogの方が疎かになっております。来年の3月末までスパート状態に入りますので、あまり更新できなくなると思いますが、よろしければ見捨ててください(笑) 因みに来年1月には神奈川の方へ短期間ですが引っ越すと思います。神奈川県民の皆様、宜しくお願いします。


さて。あまりの忙しさに(暇つぶしではなく)、昨日我が宿敵であるライエルに私流の挑戦状を送りつけた。で、その返答があまりに紳士的で驚いた。無論、私は英文で書いた。どっちかというとKing Englishではなく相当なfucKing Englishだと思うのだが、言いたかったことは通じたようで、来年の選手権でも謎電に勝つつもりのようである。嬉しいことを言ってくれるじゃないか、ライエル。世間の注目を殆ど浴びない2次予選の中の一局であっても熾烈な闘いになることを、お互いに判っているということだ。再度、一言。


ふ、来年の謎電は一味違うぜ、Be aware:-)


というわけで、週刊最先端計数将棋学は廃刊。月刊最先端計数将棋学くらいになると思いますが、ときどき何か書きます。

謎電の"with FPGA"計画。現時点では、机上検討とcomponent単位の試作までしかやってないし、性能目標も満足が行くというところまで達してはいない。しかしながら、少なくとも現Hydraよりは1桁コストパフォーマンスを改善出来る物が実現できそうな目処だけは立ちつつある。Hydraが占める主コストは、第一にXeon+FPGAを32(64)組使っている点、第二に光LAN環境にある。現Hydraの性能と等価相当のシステムを、


・フルタワー型PC1台の規模で実現し
・そのマシンの総重量は30[kg]未満とし
・その消費電力を1[kW]未満に抑える


と、低コスト・高パフォーマンスであることだけでなく、小型・軽量・省電力と運用レベルまでを考慮している。一見ズレた目標や制限に見えても、その設定がなければ目的から逸脱した物を作ってしまいかねないからである[*1]


さて、アーキテクチャとしては、マルチプロセサ/マルチ探索コア構成を考えている。現HydraやDeepBlueと同じであるように見えて異なる点は、CPUと探索コアが固定的な1対1対応、あるいは1対多対応というものではなく、多対多対応型で一言で言えば、CPUと探索コア間に(電話の)交換機が入っているようなイメージだ。これが意味するのは、実稼働率重視型システムを目指している、ということである。


DeepBlueでは、30CPUで1CPUあたり16コアという構成。30×16=480個のコアを用いて並列探索させても、その稼働率はHsuの言に拠れば1/5程度と悪い。またHydraではChrillyの言を信じれば約80%だ。しかしこの80%というのは、探索コア(FPGA側)の稼動率を意味しており、そのコアを制御するCPU側は、逆に約20%程度の実稼動率しかないと考えられる(一対のCPU-FPGAが排他的にしか働いていないことを前提とするなら)。つまりは32(64)個のXeonのうち、その約80%は遊んでいるのと同じということだ。システムとしては単純で結構だが、本当にそうならコスト掛け過ぎの感が否めない。


現HydraでFPGA側が探索している最中、その処理が終了するまでCPUは単に割り込みを待っているか、あるいはポーリングしているだけの単純な機構で動いているのなら、先に書いた通りCPU側稼動効率はかなり酷い。このあたりの制御メカニズムについて具体的に明かされていないので、実際超エエカゲンなのではないかと穿っている。また、それとは別件だが、ChrillyはしきりにPCIバスのボトルネックを問題として挙げている。それは間違ってはいないが正しくもない[*2]


PCI/PCI-X を正しく良く知る為に次の2冊は必読。これらをChrillyがちゃんと読んでるのか甚だ疑問で、PCIバスを批難する前にまず読まれることをお奨めしたいところである。無論、PCI-XをCPU-FPGA間通信用のバスとして使うつもりがある全ての開発者に対して、でもある。


・Edward Solari, Ed Solari, George Willse

 Pci and Pci-X Hardware and Software: Architecture and Design


・Tom Shanley

 Pci-X System Architecture (PC System Architecture)

-- 続く --


[*1] Hydraのような物理的に巨大なシステムを一人で全部対局場に運んだらギックリ腰を起こしそうだし、電源事情が悪ければ参加を遠慮しなければならなくなりそうだからだ。このあたりは個人的な職業上の拘りなのでどうでもいいことに思えそうだが、優先順位は高く設定して検討した方が後々(運用時に)問題が起き難い。
[*2] 以前書いたことの繰り返し。現Hydraで使われている光LANは、1000BASE-T(IEEE 802.3ab)より速いし応答性も良いことは間違いないが、PCI-Xバスより遥かにボトルネックの筈だ。なぜならば、そのLANのI/Fカード自体がPCI-Xバスを使っているのだから。これを問題としないのは、恐らくスポンサに遠慮しているのだろう。

南禅寺の決戦に見る必至

テーマ:

昭和12年2月5日[*1]から一週間かけて指された、「370年に及ぶ将棋の歴史の中で最大の一番[*2]」を謎電で分析してみた。この一局は、持時間各30時間という他に例を見ない規定で行われたもので、人知の限界に近い将棋だと思う。但し当時、阪田[*3]は68歳(満66歳)、対する木村は33歳(満31歳)であったことを考えると、阪田にとって不利な規定であったような気はする。

さて、左図は、阪田が▽54銀と詰めろを受けた局面。実戦は、ここから▲72金▽83玉▲55角まで95手で後手阪田投了。この図を謎電で解図パラメタ{5,11}で解いてみると、▲72金▽83玉▲55角▽73金▲同金▽同桂▲72銀▽93玉▲73角成までの9手必至となった。但し、これはたまたままともに解けているだけで、本来この図を正しく解く為には{5,19}が必要なようである。

例えば、4手目に持駒を使わず▽73桂と受けた場合、▲85桂!までの1手早必至があり、これは{5,11}では解けない。▲85桂に▽同歩だと▲82金以下19手詰があるが、これが読み切れず、4手目▽73桂から解くと▲75桂▽同歩▲74銀▽93玉▲82金までの余必至解を答えてしまう。従って、{5,19}が最低必要な解図パラメタとなるわけだ。

蛇足だが、▲82金以下の19手詰の手順を正確に書くと、以下、▽同玉▲85飛!▽83歩▲71銀▽93玉▲82銀打▽92玉▲81銀不成▽93玉▲82銀不成▽同玉▲72と▽93玉▲83飛成▽同玉▲73角成▽93玉▲85桂まで。

また、全く余談だが、この図の94の歩が93にあったと仮定するならば、▲72金以下17手の即詰が存在する。勿論、後手の初手が▽94歩でなければ全く別の将棋になっているのだが、▽94歩自体は損にはなっていないことだけは確かだ。この阪田の初手の善悪について計数将棋学的には、これ以上のコメントが不可能である。


[*1] 1937年といえば、日華事変(別名:日中戦争)が起きた年。

[*2] 内藤國雄著「阪田三吉名局集」から引用。

[*3] 1916年の戸籍では阪田、旧戸籍上は坂田。なお吉は、「士に口」ではなく、正しくは「土に口」と書く。