2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

tweet

  • tweets

« フリーハードウェア | トップページ | floodgate参加 »

速度追求

アルゴリズム的な改良はだいぶ進んだので、ここらでひとつクロックアップに手を染めてみました。

長らく「できたなり」の合成で動くクロック、ということで12.5MHzで動かしてましたが、これの速度アップにトライ。まずはQuartusIIのTimeQuestタイミングアナライザを使い、クリティカルパスを見てみます。なお、今のAリーグでは毎クロック必ず局面を進める(fwd)か戻す(rwd)かするので、実質2サイクルで1局面探索します。なので2MHzは1Mnpsに相当。12.5MHzは6.25Mnpsです。

Aリーグの開発を始めた当初は、とにかく前例がなく、何をどう作っていいのか全くわからなかったので、最初はまず「スピードはまあいいから、とにかく動くものを作ろう」という方針で設計してました。こういう状態だったので、今回出てきたクリティカルパスを見るとはじめは「ゆるゆる」で、ぱっと見高速化できそうなところがいくつも目につきました。でこれらをひとつずつ修正していく、という作業を最近やっていました。

ボード上では50MHzの水晶がFPGAへ入っています。最初はこれを4分周して12.5MHzにしてましたが、論理修正後今は5逓倍16分周の15.625MHzになってます。なお先週公開したパッケージの.sofは修正途中で、2逓倍7分周の14.28MHzです。

今までのところは論理(verilog RTL)の変更のみでやっています。ほんとはこの他、フロアプランや配置配線でディレイを縮める作業もあるのですが、何とQuartusIIのWeb Editionではfloorplanの機能がない!ためできてません。orz

これもちょっとつらいのでSubscription版のことも代理店に問い合わせてみました。1年間サポート付きで33.7万円。個人でもOK。納期1-2か月、とのこと。1年たった後も、同じバージョンでノーサポートで使い続けることはできます。ただしその後出る新しいデバイスには対応できません。サポート受け続けるなら毎年33.7万だそうです。納期がかかるのは、認証用のUSB「ガードキー」を送るため、とのこと。これでは今年の大会には間に合わないので、当面見合わせることにしました。大会はたぶん今くらいの速度で出るでしょう。アルゴリズムの方でまだやるべきことも残ってるし。

現在のクリティカルパスは、おおざっぱに言うと次のとおり:

 ・盤の端から端まで飛び利きを伝播
 ・端のマスで利き、(マスごとの)評価値を計算
 ・81マスぶんの評価値を集めて駒割と加算
 ・最終評価値を考慮して探索decision(fwd/rwd, 手の選択)
 ・decision結果で、局面や駒割のupdate

という感じです。これで1サイクル 64ns 弱。論理段数でいうと60数段で、ざっくり1段1nsくらい。配線ディレイが1nsとか2nsとか平気でかかってることが多く、やっぱfloorplan/配置無しではあかんな、と思います。まあ逆に言うと、floorplanやればもっと速くなりそう、とは言えますが。

簡単に削れるところはかなりやったので、さて次はどう変えればもっと速くできるか、と思案中。

« フリーハードウェア | トップページ | floodgate参加 »

将棋プロセサ」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/507007/20216624

この記事へのトラックバック一覧です: 速度追求:

« フリーハードウェア | トップページ | floodgate参加 »