ボード検討
まず業務連絡から。RTLソースのパーマネントな置き場所ですが、ブログ画面の左上に「資料館」というコーナーを設けてそこに置きました。ソースの他、各種発表資料も置いてあります。なおソースですが、細かい修正が数回入りまして今v1.13になってます。といってもRTL自体は変更なくてドキュメントの細かい修正ですんで、「RTL読むだけ」ならDLしなおすこともないと思いますが。
* * *
さて最近の開発状況ですが、まずプライオリティNo.1はクラスタ並列。正確にはメッセージパッシングと言うべきかな。でも慣習でクラスタと言ってます。仕様を鋭意検討中ですが、動きだすまでにはまだ2、3か月はかかりそう。これは長期戦を覚悟。
それと並行して進めてるのがボードの検討。究極の絵としてはASICによる超並列化になるわけですが、まずは(コスト的にもリソース的にも)手の届く範囲内で簡易版でいいからアイデアを具体化していきたい。feasibility studyの目的でも、実績作りという意味でも。で、最初に作るプロジェクトの具体的詳細を詰めているところ。
ASICがもちろんいちばんコストかかるわけですが、つい最近Alteraからの宣伝メールで Cyclone III LS発表、というのが来ました。今まで普及品であるCycloneシリーズの最大規模のは120K LUTだったんですが、150K、200Kのが出ました。今のAリーグは120Kには入らず150Kぎりぎりなので、Cyc3では無理、Stratixが要るなと思ってたんですが、テクノロジの進歩を考えてなかったのは我ながら超迂闊でした。高級品のStratixは150Kクラスのは1個数十万するので手が出ないですが、Cycloneが使えるなら5個10個程度なら個人でもまあ何とかなるレベル。LS150はまだ価格出てませんでしたが、従来のCyc3の120KはAltera Online Storeで$387/個。ちなみにXilinxの方も最近普及品の方の最新シリーズであるSpartan 6を発表しまして、これも150K LUTのがあります。こちらは$~200/個。こっちの方が安いのは、45nmだからでしょうか。Cycloneの方もたぶんもうすぐ40nmのシリーズが出て、もう少し安くなると思います。
まあとにかく、1個数万くらいのFPGAが使えるならば、まずはASICよりもこちらでやるべきでしょう。FPGA 3~4個のボードをまず作りたい。これだと将棋的な強さの方はあまり期待できません。Cycloneにしたら速度半分になるので、4個並列にしてもStratixの単体とあまり変わらない。なので目的は専らfeasibility検証用になります。
次、基板の設計と実装について。こんな↓絵をVDECフォーラムで出してましたが、
これをどう作るのか、もっと具体的に詰めてみます。
まずコストから。私はボードは直接自分で開発したことがなく、この辺の詳細が実はさっぱりわかっておりません。コストも見当つかなかったので、VDECフォーラム及びその前後にいろいろ聞きまわりました。3人の方から話聞いたのですが、
Aさん:うちで作ってるのは2000万円くらい。1000万はするんじゃないかな。
Bさん:200-300万くらいするよ
Cさん:1万くらいでできました
…??どうなってるんじゃ一体?どうも前提が大幅に違うような気がします。で更にいろいろ調べてみたところ、基板とひとくちに言ってもピンキリで、動作周波数、層数、部品点数、ピン数、実装形態、等によって全然異なるようです。GHzで動かしたり1000ピンオーダの部品が複数載せたりするような板だとめちゃくちゃかかりますが、そうでなければ最近はネット通販の基板製作屋というのがあって、数万からで試作できるらしいです。
上述のCさんから聞いたのはP板.com。ここは回路図CADとアートワークCADをフリーでDLできて、それらを使って作った設計データを送ると製造してくれます。将棋では周波数もピン数もそう高い要求がないので、基板だけなら数万でたしかにできそう。部品の実装(基板への取り付け)は、サービスとしてはP板.comでもあるようですが、価格はまだ不明。部品実装はひきつづき調査です。なお、いろいろぐぐって調べたところ、回路図を渡せばアートワークをこれも数万で請け負う、という会社もあるようです。というわけで、部品実装がまだあれですけど、なんか雰囲気的には基板も何とかなりそう。
マイコンの候補選定。これも調べてるとPICとかAVRとかpSoCとかいろいろあります。どれがどういう特徴あるのか、を調べるのでひと苦労。マイコンは価格はたいしたことはないので、選ぶ要因としては、ホストとASIC/FPGAとの通信がメインであることから、以下のような感じ。
・I/F。イーサやUSBのついてるものの方がボード設計が楽。
・メモリ容量(フラッシュ+RAM)。そう大きくなくてもよいが、ある程度はほしい
・性能。8bitよりは32bitの方が転送に必要なサイクル数は少ないだろう
・GPIOの数。複数チップとできるだけ広いバス幅で通信したいので。
・ソフト環境。とにかく楽したいので^^;
今まで探したところだと、Coldfireがけっこうよさそうかな、という感触。100Mイーサで32bit。GPIO 50+本。TOWERキット$99というのがあるので、買って使ってみようかなー、などと思っております。まあまた調べてくともっといいの出てくるかもしれませんが。
なお上に出した絵では、マイコンとASICを1枚のボードに載せてますが、マイコンにはほぼ必ず評価ボードというのがあるので、最初はそれをそのまま使う方が楽かもなどと更に日和りつつあります。それならマイコン制御のソフトやドライバ等が付属のをそのまま使えばよいので気にしなくていいし。自作のボードに載せるのはほとんどASIC(/FPGA)だけなのでボード設計が多少楽になるし。つまり、自分の苦手な分野のウェイトを少しでも減らしたいわけです^^;
マイコン以外の部品。おそらく慣れた人にとってはほとんど気にもしないところなのかもしれませんが、素人にとっては何をどうすればいいのかわからないところです。
FPGAのボードやマイコンのボードの回路図を勉強のためにいろいろ眺めてます。たとえばこんなの。これは、CQ出版から出してるColdFireブレッドボードの回路図だったかな。少なくとも以下のようなものは(本命のFPGAやCPUの他に)必ずついてます:
・電源コネクタ
・電源スイッチ
・水晶
・コンデンサ
・抵抗
・I/O用コネクタ
最初見たときは、コネクタやスイッチはともかく、水晶、コンデンサ、抵抗は、容量や抵抗値をどうやって決めればよいのかさっぱりわからない。でまたいろいろ調べたわけですが、まず水晶およびそのまわりのコンデンサ・抵抗については、マイコンなりのマニュアルに推奨(いやだじゃれじゃなくて)の接続が書いてあるようで、どうもそれに従えばよい模様。その他は、コンデンサは主にいわゆるパスコン、抵抗はプルアップ抵抗の模様。といっても パスコンやプルアップの容量・抵抗はどうやって決めるのかいまいちわからないのですが、もう最初は他のボードのを真似して、あとは実際にボード作ってカット&トライしようかな、などと開き直ってます。容量値・抵抗値以外にも、サイズがいろいろあったりとか、コンデンサはいろんなタイプがあるみたいでどれ選べばいいのよとか、ほんとわからないことだらけ。まあこの辺も探せば情報あるようなのでおいおい調べていきます。
あそうそう、あとAlteraやXilinxのFPGAを使うとなると、コンフィギュレーションファイルのロード方法を用意する必要があります。まだちらっとしかマニュアル見てないですが、FPGAがマスターになって専用のフラッシュメモリにアクセスするよう。てことはフラッシュもボードに載るのか。接続はたぶんマニュアルに書いてあるんだろうな。I2Cでいいのかな。あれでもパワーオンリセットの回路とかいるのかな。フラッシュメモリへの書き込みは…この辺もこれから調査。
大規模FPGAだとパッケージも限定されます。Cyc3 120Kだと484FBGAに。手ではんだづけ、というオプションはありえなくなります。これで実装コストはね上がったりするのかな。あと、プローブ当てることもできません。観測用コネクタまで線引くしかないですかね。ちなみに万一に備えて、オシロスコープは20MHzくらいなら10万ちょいくらいで買えるようです。あまりオシロ使いたくはないんですが。
CPUとFPGAつなげたボードだとバウンダリスキャンとかした方がいいのか、とも思いましたが、マイコン評価ボードを使うなら部品はほとんどFPGAのみなので、そこまでしなくてもいいような気がします。バウンダリスキャンのツールもちょっと調べてみましたが、目についた範囲だと数百万のオーダ。こりゃあ無理ですが、今のところ後まわしです。ちなみにBSDLのファイルはマイコンもFPGAもだいたいネットでDLできるようです。
しかしこんな調子で、ほんとに物できるんでしょうかね。我ながら甚だ不安ではありますが、まあ実行あるのみです。どうしてもできなさそうだったら、お金の許すかぎりはプロを頼るつもり。
…てなことを考えてたところへ、当ブログがSim's blogで紹介されていました。電子工作のブログで、この中の記事やリンクからたどるとボード関連でかなりいろんな情報があり、非常に参考になります。今まで電子工作系のネット情報はあまりまじめに探したことなかったんですが、しばらくここをベースにしていろいろ知識を仕入れさせてもらおうと思っております。
うーんしかし、とてもコンピュータ将棋のブログとは思えない記事ですね^^; 完全に、選挙でいうところの「独自の戦い」というやつになってます。
« 初リア将 | トップページ | Deep Thoughtの学習 »
「将棋プロセサ」カテゴリの記事
- ボンクラーズの開発過程について書いた記事が掲載されました(2019.03.07)
- 「浅い評価値を深い評価値に近づける学習法」誕生の背景(2016.10.06)
- 塚田九段の対ボンクラーズ練習棋譜を公開します(2013.09.07)
- Puella α ソース公開(2013.08.28)
- クラスタ並列の解説記事を公開します(2013.08.22)
コンピュータ将棋の枠を超えて、ハードウェアを使って高度な、かつ誰もやったことのない処理を作り上げるにはどうすればよいか、というテーマに挑む内容で、とにかくさまざまな分野の人に読んでほしい記事です。
多分野の叡智を集め、すぐれて学際的で、これが何かビジネスに繋がらないのは惜しい、と思うくらい。
http://524.teacup.com/yss/bbs/1582
↑で紹介されている研究は、もしかしてA級リーグ指し手1号に刺激された?
投稿: 山田 剛@CSA | 2009年7月 5日 (日) 21時32分
いや、そんな大した話ではないです…要は「いかに予算内に収めるか」という話で^^;
SWoPPのは、GPW08でもMC囲碁の発表をした三好さんのところの続報ではないでしょうか。
投稿: 伊藤@A級 | 2009年7月 6日 (月) 17時50分
いえ,三好さんは東工大に移られましたし,続報と言うのとはちょっと違うかと.ハードも複数の FPGA の完全結合 (!) ですし.- gg
投稿: gg | 2009年7月 7日 (火) 01時07分
おぉ、そうなんですか、期待してます。
>ハードも複数の FPGA の完全結合 (!) ですし
これ、高そう…(そっちに興味が行く今日この頃)
このハードは、平木研の持ち物なんでしょうかね?
#将棋にも使わせてくれないかなぁ(涎
投稿: 伊藤@A級 | 2009年7月 7日 (火) 19時46分
詳細はまだ予稿もないので分かりませんが,平木先生は並列屋ですから,特に囲碁用ということではなく,並列の実験用のボードではないかと思います.しかし完全結合というのが...
投稿: gg | 2009年7月 9日 (木) 16時48分
MC囲碁で特に完全結合が必要な気もしないし(まやり方にもよるけど)、そもそも今の段階で囲碁専用にボードは起こさないでしょうから、たまたま持ってた別のボード(別の目的で作った、または汎用の)を流用した、というとこなんでしょうね。たぶん。
SWoPPでそのボードがどんなものかもわかるでしょうから(FPGAは何が何個載ってるのか、等々)、それが将棋にも使えそうなものだったら、また落下傘で平木先生にコンタクトして使わせてもらえないか相談してみようか、などとけっこうマジで思ったり…
投稿: 伊藤@A級 | 2009年7月10日 (金) 19時57分