廃刊のご挨拶

テーマ:

1997年より選手権に参戦以来、今日までの足掛け9年間、謎的電棋並びにその作者の為に、絶大なご声援[*1]を頂きまして、誠にありがとうございました。皆様方からの度重なるご支援、熱烈なる応援を頂戴いたしまして、今日まで私なりの計算機将棋人生を歩み続けて参りましたが、今ここに、自らの体力の限界を知るに至り、引退を決意致しました[*2]

振り返りますれば、9年間の現役生活、いろいろな事がございました。その対局の一つ一つを思い起こします時に、好調時には皆様方の激しい大きな拍手を頂き、作者の闘志を更に駆り立てて頂き、また不調の時、皆様方の温かいご支援の数々に、今日まで支えられて参りました。

我が謎的電棋は、SPEARに勝つことを目指し、作者以下一丸となり[*3]、死力を尽くし、最後の最後までベストを尽くして戦いましたが、力ここに及ばず夢は破れ去りました。


私は、今日、ここに、引退を致しますが、[*4]


『日刊 最先端計数将棋学』は、永久に破滅です [*5]


今後微力ではありますが、計算機将棋界の新しい歴史と発展の為に、計算機将棋の明日の勝利の為に、今日まで皆様方から頂いたご支援、ご声援を糧と致しまして、更に前進していく所存であります。長い間[*6]のご愛読、皆様、本当にありがとうございました[*7]


日刊 最先端計数将棋学

次週より、『週刊 最先端計数将棋学』が始まります(笑)

[*1] ご声援はこちらarrow人気blogRanking(自然科学)

[*2] 冗談である。ライエルとの直接対決で勝つまでは、絶対引退するわけにはいかない。

[*3] 作者以下一丸、は間違い。作者のみ。

[*4] 話の流れ、筆の勢いで再度そう書いているが、引退はしませんよ、ええ。

[*5] 台本では「永遠に不滅です」となっているのだが、ついウッカリ本音が出た。

[*6] 実際は、かなり短いと思うのだが、台本がそうなってるので。

[*7] ミスターG栄光の背番号3の名言を参考にさせて頂いた。長嶋監督、ごめんなさい。

AD

ランキングチェック (第12週)

テーマ:



本blogをご覧頂きありがとうございます。先週の結果は上表の通りとなりました。

最先端計数将棋学は、ポップにしてアカデミック、ハイソにしてマニアック、ヘヴィにしてハードなオヤジギャグ、そしてスリル・サスペンス・カーアクション・サイエンスノンフェクション、他に例を見ない斬新なブログの形態を模索し追求しながらも、当初の予定と異なり自分にすら役に立ってるのか否か、マジで判らない内容となって参りました。にも関わらず、割と定期的にご覧くださる方々が今もいらっしゃる上に、BlogRanking応援 も少なからずあるというのが実に不思議なことで、且つ誠にありがたいことです。

私事ですが、一応本業の方へ6月から戻ることになりました。というわけで、最先端計数将棋学の今後について、今月末日(明日)、発表を行おうと思っています。

AD

Xilinx v.s. Altera

テーマ:

FPGAメーカといえば、XilinxかAlteraである。その昔Alteraは、FPGAという言葉ではなくCPLDと呼んでいた時期もあったのだが、内容としては同じ物を指している。このXilinxとAlteraの関係は、x86系CPUでいえばIntelとAMDの関係に近い。一応Xilinxの方が大手なのだが、最近はこの関係が入れ替わろうとしている。実際90nmプロセスの製品ではAlteraの方が上になったと去年の時点発表されている。90nmプロセスでXilinxが遅れをとったということもあるが、追う方のモチベーションというのは、追われる方より遥かに強力で[*1]、そのような理由でもXilinxよりAlteraの方に、私は以前から興味を持っている。


さて、実際に市場に出ているFPGA製品(90nm)は、次のようになっている。

・Xilinx : Virtex4 , Spartan3

・Altera : StratixII , CycloneII

Virtex4,StratixIIは性能重視のPentiumExtremeEditionやOpteron、Spartan3,CycloneIIはコスト重視のCeleronやSempronに相当する。性能的には2倍違わなくても、コスト的に何倍も違うという点で、この世界もCPU業界と似ている。


最近 CycloneIIをベースにし、PCI-Xに対応した開発キット がAlteraからアナウンスされた。日本の販売代理店を介して、開発環境[*2]を含めて\150k未満で手に入る筈だが、例えば、Altera Solutions Seminar 2005 といったメーカ主催のセミナに行くと、開発キットが定価の半分程度で買えたりするので、機会があれば参加されることをお奨めする。因みに、私はその方法を使って旧Cyclone版の開発キットを調達したことがある。

なお、前述の開発キットは、EP2C35というCycloneIIデバイスを使っている。これは100万ゲート規模程度の回路は軽く実現できる[*3]。Chrillyが以前使っていたVirtex V1000Eよりも高速、且つ規模的にも全く劣らない。試作・評価レベルでチャレンジすることが目的なら、その売価から見て学習用キットとして非常に適切な物である。


[*1] 例えば、松下に対するソニーがそうであるように。

[*2] 但し、QuartusII(AlteraのFPGA用のIDE)のライセンスは1年間限定。それ以降は別途有償。

[*3] 保証はしないが、巧く使えば200万ゲート近い規模の回路を作れることがある。FPGAの場合、ロジックだけでなく配線リソースに制限があったり、回路(論理合成)の最適化の方法によってリソースの消費が異なるので、「最大ユーザゲート数」は一概には言えない。


(追補) 開発キット付属のマニュアルやヘルプは、日本向けにローカライズされておらず全て英語なので注意。
AD

次のトレンド (4)

テーマ:

前稿でのChrillyの言うBrutusとは、Hydraの前身のことである。Chrillyは、'01年からFPGAを用いてチェスの探索を行うハードウエアのプログラミンを始め、'02/03/20時点では、当初 Xilinx Virtex V405Eを用いて、既にチェスをプレイ出来きるシステムを作っていた。その後、V405EからV1000Eへとデバイスを変更し、'03/11/24時点ではFPGA8個構成のシステムとなっていたようである。なお、Brutusの棋力は、Aug'03時点でR2765となっている。


Hydraと呼ばれているチェス探索専用システムがこの世に登場したのは、'04に入ってからで、現時点で2種類があり、次のような構成の違いがある。

--
a) 16processors,16FPGAs(1core /FPGA=16cores)
b) 32processors,32FPGAs(2cores/FPGA=64cores)
--

a)のシステムでは、AlphaData社のADM-XRC が使われたようだが、b)については不明。但し、a)とb)では5倍の性能比があると公表されており、性能的にも規模的にも明らかに上位のFPGAを使っているものと思われる[*1]


さて、Chrillyは、b)ならピークで毎秒3億局面を読めると述べているのだが、実効は毎秒1億局面すら達さないと思われる。ここで言う実効とは、FPGAの稼動率もそうだが非重複で探索した局面をカウントした時の「正味」の事だ。イロレイティングで3000の壁を越えることを目指すとしているが、これはDeepBlueIIを凌ぐことを意味する数字である。単なる探索レートだけでなく、何かしら大きな改善が行われてない限り、そのようなレイティングにはなり得ない。DeepBlueIIですらピークを低めに見積っても、200万[局面/chip]×480[chips]で毎秒9億6千万局面となるのだが、「実効は毎秒1~2億局面」と公表されているくらいである。但しHydraの場合、劇的な終盤力の改善のメドが立っているのなら、R3000を越えることは難しくないのかもしれない。


それ以外でも、Chrillyの言には少々突っ込みどころがある。たとえばPCIのボトルネックは指摘していたが、CPU-CPU間のネットワークのボトルネックを語っている発言を見たことがない。その他にも疑問に思うところがいくつかあるのだが、逆に言えば日本流のやり方で1桁はコストパフォーマンスの違う「将棋探索専用システム」の構築が可能のように思われる。今後、最先端計数将棋学では、このあたりを主題として取り上げて行きたいと思っている。


余談だが、現在ではFPGAの応用形としてDRP[*2]というデバイスがある。これは簡単に言えば、回路の構成自体を瞬時に切り替えれるような仕掛けを作っておき、その機構によってあたかも巨大な回路を作れるかのようなFPGAだ。更にC言語で記述したプログラムのロジックを、そのままその見かけ上巨大なハードウエアに載せてしまおう、という発想を実現するデバイスである。つまりはHDL(ハードウエア記述言語)ではなく、通常使っているソフトウエア開発用の言語で「ハードウエアをプログラミング可能にしよう」というわけだ。性能的には、現時点で「FPGAとほぼ等価(あるいは等価以上)」となっており、そのデバイスにも私は注目している。


[*1] そうでなければ5倍という数字は実現出来ない。恐らくVirtexII(pro)クラス以上のデバイス、且つPCI-Xをサポートするカードを使っているものと思われる。

[*2] Dynamically Reconfigurable Processor の略で、「動的再構成プロセッサ」という意味になる。その原型は'99年の段階で発表 され、現在ではやや実用レベルの製品 があるにはある。

Chrilly said (2003/12/05)

テーマ:

Fri Dec 5 09:31:47 PST 2003 [computer-go] FPGA


FPGAで実行可能な速度は、設計の論理的な複雑さに依存します。Brutusでは、私は多少時代遅れだったXilinx Virtex-IのV1000Eを使用しました。Brutusは30MHzで走ります。それほど速くありませんが、局面を8-9サイクルで評価できます。私が考えている碁の設計なら(より速いチップを使えば)、約100MHzで走る筈です。従って、局面を評価するのに100サイクルを必要としても、100万局面/秒になります(私の目標は10-15サイクルです)。


ゲート数は言い難いですね。一応、Virtex-Iの1000Eは100万ゲート品です。しかしこれは市場で手に入るゲート数で、はるかに大きく(かつより速い)利用可能なFPGAは他にもあります。思うに、ゲート数はもはや重大な制限ではないでしょう。特に、Brutusの評価はかなり複雑で、Virtex-1000の70%を使用しています。Virtexの回路構成設定には、Alpha-Data社のADM-XRCボードの場合で約1秒かかります。理屈の上では、ゲーム中にプログラムを切り替えることができたことになります(例えば、特殊な終盤モジュールを使うことで切り替えて)。


他の現実問題として:

a) FPGAの価格は実に高い。FPGAは、それだけがあれば十分というのではなくボード/カードも必要とします。Xilinxは今非常に面白いチップ、Spartan-3を作ろうとしてます。それは90nmプロセス技術を用い、また非常に安くなる(100万ゲートあたり12ドル)と発表されています。しかしそれは現在、発表だけの話です(FPGAビジネスは、発表を第一とする商売です)。

b) 複雑な設計であれば論理合成(コンパイルに相当する)が終わるまで、実に時間が掛かります。私のやや速いPCでも全合成に2時間かかります。

c) CPU-FPGA間通信は、PCIバスを介します。これは厳しいボトルネックです。 直接メモリへマップさせるいくつかの設計法がありまが、それはやや脆弱な考えです。そうなると特定のマザーボードでしか動かないことになってしまいます。


このボトルネックの影響によって、極めて高度なFPGAプログラム(探索を含んで)を書かなければならなくなります。局面評価あるいは指手生成を単独で実行することができません。バスを介してこれらの機能を呼び出すことは、PC上で行う[*1]より遅くなります(少なくともチェスでは)。(但し将来)新しいPCI Expressによって、この状況は改善するでしょう。


最後になりましたが:

ハードウエアとソフトウエアとでは設計が全く異なります。それは非常に険しい学習曲線をとります。私は、その(ハードウエア設計の)概念を習得するまで約1年を必要としました。ソフトウエアではタイミング[*2]についての概念はありませんが、ハードウエアではタイミング[*2]は極端に重要です。全ての演算は正確なサイクルで行わなければなりません[*3]。その命令の順序は重要ではありません[*4]

ソフトウエアプログラマなら、最初に命令Aそして次にBと書けば、AはBの前に実行されると思うでしょう。その想像は、ハードウエアプログラミングでは全く誤っています[*5]


[*1] 勿論、通信に時間を喰われるので、CPUで実行するのと比べて、という意味。

[*2] 原文では "time" となっているが、「回路内で同期を取る時期・時刻」という意味。

[*3] 厳密に言うなら、「均等な時間間隔の中で行わなければならない」となる。つまりは、回路内での各演算の入力から出力までの最大遅延時間を、そのサイクル時間内に収めなければならないということ。

[*4] ハードウエアというのは、結局回路全体が一斉同時に動くものなので。

[*5] 直訳すると、奇怪な翻訳になるので、全体的に意訳した。

出た (号外)

テーマ:

デュアルコアPentium D、アキバで発売開始


AMDファン、AMDマニア、AMDマッドには無用なのだが、一応。Pentium Extreme Edition 840を既にメーカ向けに量産出荷している中で、Pentium D 820 (2.8GHz)というのは誠に紛らわしい。Pentium D のロゴを見つけ出すのが今日になってしまった。なお、820の本日の実勢価格は、\30k前後[*1]である。


勿論、Opteron265(1.8GHz)も店頭に並んでいるらしく、こちらの実勢は\110~114k程度だ。


[*1] この価格設定のギャップには、久々にIntelの気合を感じた。気合Inside。やることが正に極端だが、いかにテマヒマを掛けてないかが判る、という穿った見方も出来る。

次のトレンド (2)

テーマ:

今日までの過去5年を振り返れば、x86系プロセッサ単体のINT性能は高々3倍程度の向上しか見られない。IPC値×動作周波数で約2.5倍、プラスαとして64ビット化、キャッシュサイズ増加、FSBの高速化とバス幅拡大など、細かな改良を含めての性能は少なからず上ったが、更にそれ以前の5年間と比べれば小さ過ぎる。

これからの5年は、マルチコア(マルチプロセッサ)による台数効果に頼った性能向上となり、それを除いた部分ではプロセッサ単体で2倍にすら達さないだろう。例えば5年後のK8が、5GHz以上の内部周波数で動いているとは考え難い。更にその先、どのようなプロセッサ技術によって限界を打破していくか予測し難いが、前項で書いたように専用プロセッサを創ることをも辞さないのであれば、そのアプローチは違ってくる。市販車のエンジンをベースに改造するのではなく、フォーミュラカーのエンジンを創る、ということになれば前提条件が全く異なるからだ。


既に前世紀の話になるが、DeepBlueは30ノードのプロセッサ(これはP2SCという名のプロセッサ)に480個のチェスチップと呼ばれるチェス探索専用のハードウエアで構成されていた[*1]。1つのP2SCに16個のチェスチップが接続されていた[*2]わけだが、このような構成は非常に合理的で本気で性能を求める分野ならばシステムモデルとして現在でも参考にすることが出来る。

例えばIBM/SCE/東芝のCellプロセッサ は、主1(PPE:PowerPC)+従8(SPU)=9CPU構成としている。このプロセッサは主に3Dグラフィックス処理に特化させたプロセッサで、FP性能は猛烈に高いが探索向きのものではないとしても、プロセッサモデルを見れば先のDeepBlueの一部分に通じるものがある。1つのダイに同種のプロセッサがただ多数あるのではなく、スーパバイザとして異種のプロセッサを1つ加えて「リーダとその部下」といった構成にし、組織的に処理を行わせることで計算機資源全体の効率を稼ぐ狙いを持っている、という意味で考え方は同じなわけだ。 Cellが美しいのは、それを1チップで実現した点にある。惜しむらくは、将棋の探索向きでない上に開発環境を個人レベルで簡単に手に入るようなものでもない、ということだ。


さて、個人でDeepBlueのような大規模なシステムを創るのは無理があるが、性能的に等価のシステムを持つことは、それほど難しいことではなくなろうとしている。PCをベースにしたこの手のシステムの典型例がHydra だろう。HydraはP2SCの代わりにx86系CPUを用いて並列化し、チェスチップを全てFPGAに置き換えた[*3]システムということが出来る。

--続く:次号最終回、詰むや詰まざるや!?[*4]--


[*1] これは正確にいえばDeepBlueIIの構成で、その前のDeepBlueIでは36ノードに216個のチェスチップ、つまりは1つのノードに6個のチェスチップが繋がっていた。1つのチェスチップは、毎秒約200~250万局面を探索できたらしいが、これはチップ単体のピーク性能という意味だろう。

[*2] これまた正確には、2枚のマイクロチャネルカードに分けられ、1つのカードに8個のチェスチップが載っていた。

[*3] 因みに、DeepBlueではFPGAを使えるようにしていたらしい。論文を読む限り「外部に」とあるが、"Due to time constraints, this capability was never used in Deep Blue."というオチになっている。だったら論文に書くなよ(怒)

[*4] その昔、ビッグコミックスピリッツに連載されていた月下の棋士を参考にさせて頂いた。

次のトレンド (1)

テーマ:

これからの探索のトレンドは「台数効果」、つまりは並列処理がキーワードになると思われる。但しこれは一時的なもので、4~16並列程度が限度かもしれない。それ以上は元々の意味での収穫逓減が起き、掛けたコストの割に得るものが殆どなくなって行くと思われる。

例えばコンピュータ将棋の進歩2 p.29 の結果からは(やり方に因ると思うが)、16→64CPUの台数効果が殆ど見受けられない。そもそも現謎電では、「計算実験で用いた最も難しい問題」とされる25手詰の詰物を、古典的探索でも3分以内[*1]に解いてしまうし、PN系探索ならもっと速いだろう。つまりは探索アルゴリズムを工夫する方が遥かに重要だということになる。とは言え台数効果は、先のアルゴリズム的工夫によって得られた棋力を更に底上げする一手法として、少なからず意味はある筈だ。


さて、DualCoreの出荷がアナウンスされたばかりだが、プロセスルールが更に一世代進んでもニーズがない限りQuadCoreが出るかどうか微妙なところだ。恐らくサーバ・WS用途で出てくるだろうが、マーケットがかなり限定されるだろうから直には個人で買える価格設定にはなり難いだろう。需要がなければ(量産しなければ)原価は下がらない。また(例え話としては適切ではないが)、400psのクルマは公道では必要ない、のと同じだ。世界中捜してもドイツのアウトバーンくらいしか、その性能をマトモに活かせる公道はない。むしろ時代は燃費の方に興味が移っている。


ところで、CPUの性能が頭打ちになっているのは、CMOSプロセスであることが問題なのではなく配線遅延に主原因がある。他にも色々理由はあるのだが、簡単に言えば回路間を結ぶ信号線上の、その信号が伝わる速度を速くすることができないからである。プロセスが微細になれば、トランジスタのトグル周波数(スイッチング速度)は上がるのだが、逆に配線の電気抵抗が増えて信号の伝搬速度は遅くなる。アルミ配線から銅配線になって久しいが、これに替わる新たな素材を見つけ出すか[*2]、あるいはこれまでの常識を覆す根本的にアーキテクチャの異なるプロセッサを創るくらいしか、この問題の解決が難しい時代にさしかかっている。

--続く--


[*1] 毎度のBarton/3000+で置換表1GB。勿論Single。付け加えて王手全幅応手全幅。

[*2] 例えばカーボンナノチューブは有力視されているが、まだ実用化には程遠い。

AMD入ってる

テーマ:

かつてモトローラは、体重800ポンドのゴリラ[*1]を凌ぐ全米第一位の半導体メーカだった。その立場が入れ替ったのが今から約十年ほど前のことである。今度は、そのゴリラとAMDの立場がひっくり返りそうな勢いになって来た。


一般のユーザにとっては、CPUの性能競争というのはそれほど意味がない。ブラウザとメイラが動けばOKというのであれば現存最低クラスのx86系CPUで充分快適だし、ゲーマならむしろビデオカード(GPU)にお金を掛ける。

AMDはブランド力(信頼性含む)という意味においてIntelに勝ったとは未だ言えないと思うが、価格対性能比という意味では、既に5年程前から勝っていた気がする。俗に「1GHz戦争」と呼ばれていた時代からだが、特に初代Athlonが出た頃には頭角を現していた。


AMD64プロセッサ、世界コンピュータ将棋選手権で連続優勝


今年、選手権で使われたマシンにおいて、AMDはシェア6割を獲ってしまっている。これはAMDが協賛していたからという理由ではなく、自然にそうなってしまったのだ。

Itanium2はFP性能は高いが探索処理向きのCPUではないし、Pentium4は「IPC[*2]値が低くても、動作周波数をそれ以上に上げることが出来れば、それが一番速いCPUになる」という設計思想で作られたのだが実らず、PentiumMはIPC値は高いものの動作周波数を上げることが出来ず、結局のところ選手権参加者の心を鷲掴みにするほどの訴求力のあるプロセッサをIntelは作れなかった、ということになる。

但し、この状態が長く続くことが好ましいことだとも思えない。寡占であることはしょうがないとしても完全な一社独占状態に入れば競争原理が働かなくなるからだ。ただですらCPUの性能が頭打ちになっている中で競争が止めば「暖簾に胡座」になってしまいかねない。


と書きつつも、個人的には本田(技研工業or技術研究所)に似た技術屋魂をAMDに感じている。DualCoreの発表はタイミング的にはIntelの方が先だが、その造りの良さを比べればAMDの方が遥かに上だ。恐らく来年の選手権はDualCoreマシンを中心とした争いになると思われるが、AMDのシェアをIntelが奪い返すことは相当難しくなってきていると思う。


[*1] 体重800ポンドのゴリラとは、Intelを指すために米AMDのW.Jerry Sanders元会長がよく使った言葉。

[*2] "Instructions Per Clock" の略で、1クロック当たり実行できる命令数を意味する。