Entries
具体的にはマイムーブさんとか小宮日記さんとかあちこちで。って、むっちゃローカル? で、混乱させたみたいで申し訳ないですが、単に出力用にハッシュコードをstringに変換させただけです。 C++の流儀では...
Javaでは簡単に出来ていた事をC++でする方法が分からない。予想していたけど、実際にそうなると凹む。 んで、マルチバイト文字を読み込んだり文字列処理する方法で挫折。結局、どういう手を指すかをメソッドでゴリゴリ書いてハッシュコードのテスト。 案の定バグ発見。相手の駒を取る時に、相手の駒を盤上から消した後に駒を移動させるべき所で、いきなり移動していた。 他にもたくさんバグがありそうだが、現状の方法ではテ...
ビンゴ中西さんにコメントで教えてもらったのですが、ブログランキングでコンピュータ将棋関連ブログが1〜3位独占です。 記念のスクリーンショット↓ 今まで応援ありがとうございます。 で、一区切りって事でブログランキングのリンクを右下に変更しました。気が向いたらクリックしてくれると嬉しいです。...
ハッシュ自体はすぐに実装出来たが、それを文字列に変換する方法が分からない。結局、整数をstringに変換する関数を書いていたらタイムアップ。そろそろ寝る準備をしないと明日にひびくし。 とりあえず明日はコマンドラインから手を読み込む部分を作って、それでテストをすればぼろぼろバグが出てくるだろうからそれを潰して。 そうすると利きの計算とかは今週末か。岐阜チャレンジを見に行きたいが、ある程度開発時間を取りた...
コンピュータ将棋の開発が忙しいので簡単に。【ITmedia】技術セッションで明らかにされた「Core2 Quad」の構造と性能 KentsfieldのブランドはCore 2 ExtremeとCore 2 Quad。QuadroでもQuartetでもなくQuadですか。ちょっとダサい。ClovertownはXeon 53xx。ブランド名以外は目新しい情報は無し。 むしろ気になるのはロードマップで、“Penryn & Nehalem Famiry”と書かれています。PenrynはMerom系の45nmシュリンク版だと思ってい...
本当はハッシュコードの実装&テスト用インタフェースの作成をするつもりだったが、ふと思い立って各種ユーティリティ関数をクラスにまとめる。ついでにBaseKyokumenクラスも細々と変更。 時間が余ったのでチョコチョコと速度計測。駒情報テーブルからあまり使わない情報を削除すると多少高速化。300万局面遷移/秒まで向上。 ついでにEfficeonマシンでも計測。こちらは200万局面遷移/秒。それなりに速度は出ているか? で、...
ソースを探してみました。多分 C:\Program Files (x86)\Microsoft Visual Studio 8\VC\crt\src\memcpy.c なのだが・・・ 熟読中 ・・・ ん? ・・・・・・ !!! 1バイトずつコピーしてる!? んー、8バイトずつコピーすれば速くなる気がする・・・ 早速実装。 無駄でした。もう寝ます。...
とりあえず局面クラスに手を反映させる部分+テキストでの表示が完成。手の生成とかはまだ。 現在の速度は局面遷移のみ(手は決め打ち)で130万局面遷移/秒。逆算すると約1500クロック/局面遷移。かなり遅い。 で、色々試してみるとmemcpyが遅い様子。これだけで3000クロックはかかっている。さすがに遅すぎなので調査が必要だろう。 局面クラスの残項目はハッシュコードの計算と利きの保存、それから合法手リストの生成。...
てな訳で、スチャラカな記事を書いてたりしたらしかってやってください m(_,_)m...
相変わらず土日はグダグダです。最近頭を働かす機会が無いせいか、集中力がちっとももちません。 で、今のところ駒情報関連の関数・定数と局面クラスのデータ部分が完成。手クラスは以前に作成してあります。 後は局面クラスに手の生成と利きの保存を実装すれば、モンテカルロ将棋に必要な部品は揃います。あ、ハッシュテーブルもあった方が良いかも。 オープン戦までの日数を考えると、来週末だけでは明らかに日数不足です。...
横を16にした方が高速だそうなので変更しました。縦は11のままです。 ちなみにハッシュテーブルですが、ハッシュコードのほかに盤面や手番もそのまま格納しています。ハッシュコードだけでもかなりの確率で正しく当たり判定可能でしょうが、万一の事故が怖いので。 もちろん速いにこした事は無いのですが、指し将棋のボトルネックは他にあるのでここは危険を冒してまで高速化するところじゃないな、と思っています。...
昨日は盤面を表すのに11×11の配列を使用していると書きましたが、マイムーブさんのNo.232に“16 にしたら数パーセント高速化した”と書かれていました。 ちょっと気になって試してみたのですが、コンパイラの出力するアセンブリコードを見ると少しだけ違っていました。 11×11の時に ban[x][y] のアドレスを求めるのは x * 11 + y という計算をしていましたが、16×16では x...
まず、私のコンピュータ将棋では駒情報をintとかshortに格納しています。第16回選手権バージョンでは大体下の様な感じ。 種類:空き、歩〜王を4ビット 成り・不成り:1ビット 先後:1ビット 壁:1ビット で、こいつを11×11(壁含む)の配列に保存して盤面を表します。 これでも大きな問題は無いのですが、空きマスにも成り・先後ビットがあるのがちょっと不自然というのと、先手(後手)が移動出来るマスを判定す...
ブログを書く理由というよりは、コンピュータ将棋の開発日記やアイデアメモを書いている理由ですね。 といっても、コンピュータ将棋の進歩に貢献したい、とか、後進の人の道標になりたい、なんて大層なもんじゃないです。 理由はもっと利己的で、Webに公開する以上は人に見られて恥ずかしい物は書けない、という事です。 開発日記に「今日は何もしませんでした」と書いたりとか(いや、時々書きますが)、アイデアメモに穴だ...
昨日の記事に引き続き王手生成の高速化案。 ここ数日はビット演算を駆使して高速化する方法を考えていたので、なんとなく上手いやり方が分かってきた。この調子でどんどんアイデアが出ればいいのだが。【既存方式の問題点】あるマスに利きがある全ての駒に関して、個別に駒情報テーブル(※)から情報を引き出して王手可否を判定する必要があり、処理時間が長くなる。【概要】先手・後手それぞれに対して、特定方向に移動可能な...
詰め将棋に時間をとられたくないので、何とか高速化出来ないかと検討中。そんな訳で小改良を一つ。 けど、こういう実装レベルでの効率化を図るってのは自分のスタイルじゃないなぁ。速くなるならいいけど。【既存方式の問題点】全ての合法手を生成してから王手がかかるか否かを判定しているので、無駄な局面遷移が必要になり処理時間が長くなる。【概要】移動可能位置コードを駒情報テーブル(※)に持つ。コードの特定ビットに...
久々のアイデアメモ。6月以来なので3ヶ月弱書いていなかった事になる。サボりすぎたかと反省。 以下の既存方式とは駒番号制(各駒に番号を振り、駒番号に対応したビットを立てる事による利き情報の管理)を指す。駒情報テーブルとは駒番号と駒の種類・所有者等を保存するテーブルを指す。 また、今回からはローカルに保存したアイデアメモを転載する形にした。 それでは順に。 【既存方式の問題点】あるマスに利いている駒の...
DigiTimesより。台湾のマザーボードメーカがソースらしいです。 まとめるとKentsfieldは11月半ば。2.66GHzでモデルナンバーはQX6700。来年第1四半期に65nmのクアドコア。2.4GHz@1066MHz FSB。名称はCore 2 Quadro Q6600。(メインストリーム向けでしょうか?)これらのクアドコアCPUは975XまたはP965チップセットと組み合わせる事が可能。といったところでしょうか。...
昨日の記事の続きです。 まず、現在のCPUは分岐予測という機能を持ち、過去に分岐したかどうかという情報から今回の分岐命令で分岐するか・しないかを予測しています。 そして、「分岐予測が当たりやすいコードほど高速に実行され、分岐が無いコードはさらに高速」と言われています。 昨日思いついたのは飛び利きの処理を行う際に分岐(if文)を少なくする方法で、これによってどの程度高速化するかの予備実験を行いました。...
Ando's Processor Information PageさんやTech-On!に載っています。公式発表はこちら。 概要は4.5mm×4,5mmのチップに12本の光信号を扱う機能を持たせ、これを使って現状のピンアレイやLGAを置き換えようという物です。NECの参考資料に分かりやすい図入りで解説されています。 現在のPC向けFSBは高々数十GB/秒ですが、この技術を利用すれば数TB/秒を実現出来ます。まずはスーパーコンピュータのチップ間接続に利用するらしい...
友人が主催する大会の手伝い兼参加者として行ってきました。 手伝いの方は置いといて対戦の感想ですが、やっぱとっさの判断力が落ちていたり、事前準備の時間が取れなくてろくな機体が出来ていなかったりと散々でした。あー、ぼちぼち引退の時期かなぁ。 んで、帰り道にふと思い付いたのですが、コンピュータ将棋の飛び利きの処理を(ちょっとだけ)高速化出来そうです。 いや、C++でのライブラリ自体未完成なので高速化も何...
C++とJavaの細かな違いに苦労しつつも、何とか将棋用の基本ライブラリ(のごく一部)を実装完了。 一番苦労したのがここらへんで話題になっていた「クラスにstaticなメンバを宣言しただけでは実体が出来ない」という事。このページを見つけれなかったらずっと分からないままだったかも。(ちなみにJavaだと宣言・実装をまとめてするので、てっきりC++も同じかと思っていました。) そしてもう一つ驚愕の事実。 ,ィィr-- ...
10月7日に開催だそうです。さすがにその時点では未完成なので見送りかなぁ、とか思っています。 ただ、CSA将棋を使わせてもらうので、思考部をモンテカルロでさくっと作って参加ってのも面白そうですね。これなら、将棋の基本ライブラリ+ハッシュテーブル位でOKでしょうから。...
上にあるのが17インチ&15インチのサブディスプレイで、下のほう(タスクバーのある部分)が30インチモニタ。 デカイ! とにかくデカイ!! そしてブラウザを最大化すると目を動かすのが疲れる罠。...
今日はちょっと特別な事があったので。 ダラダラ書くのもなんですし、一言だけ。 「物がたくさん壊せて嬉しい」 以上!...
Macin' Blogさん経由で元ネタはAnandTech。 どうやらWoodcrestデュアルのMac ProをClovertown ES デュアルに換装したそうで、元ネタにはクロック等が表示されたスクリーンショットがあります。 KentsfieldのESの話はちらほら聞きますが、Clovertownは初耳です。もっとも、私のアンテナが感度悪いだけかもしれませんが。 それにしても、Kentsfield同様クロックは低いですね。マルチスレッドを有効に活用すれば高クロックのデュ...
この間初期不良で送り返したモニタの交換品が、明後日には家に届くそうです。これで今週末はコーディング出来る、と。いや、別に今のモニタでもOKなんですが、何と言うか気分の問題。 それにしても、今日連絡が来るまでグラフィックカードとの相性なんじゃないかと心配で心配で。モニタ側の問題と確認出来て一安心です。 それにしても初期不良発覚からまだ4日しか経っていないので、通販で買ったにしては対応が早いですね。結...
日曜日の開発日記の続きです。あの時は気力ダウンしてて細かい所までは書かなかったのですが、マイムーブさんのブログのNo.203で拾われてたので、いい機会と思って書いてみます。(あ、私信ですが、ブログの各記事に個別のURLがあるとリンクする時便利だなぁ、なんて思ってます。)/* 追記:No.204で個別リンクの方法を教えてもらいました。ありがとうございます。 */ で、日曜日にやってたのは局面を表すクラスを実装する...
PC Watchの後藤氏のコラムより。 以前は命令セットはx86でホモジニアス(均質)、マイクロアーキテクチャは大型コアと小型コアのヘテロジニアス(異種混合)と言う構成だったのですが、どうやらマイクロアーキテクチャもホモジニアスに方向転換するかもしれないとか。 どういった背景があるのかは不明ですが、大型コアでマルチスレッド性能を向上させるめどがついたのか、小型コアを開発する手間を嫌ったのかといったところで...
だってほら、待ちわびてたディスプレイが初期不良だった訳ですし。 んで、今日はダラダラとコーディングしていました。時間だけは結構かけたけど、成果はあんまり。 とりあえず今日の結論。memcpyでコピーするのは予想よりも遅いが、実用には充分耐えそう。QueryPerformanceCounterは結構オーバーヘッドが大きい。 そんな感じ。今日はもう風呂入って寝ます。...
Sofmap.comで19万8千円。 が、どうやら初期不良っぽい。 手持ちのディスプレイやらケーブルやらも含めて、色々な組み合わせ試してみたが、QHD-M30Wはどこの出力にどのケーブルで接続してもNG。手持ちのディスプレイは新品のケーブルでも表示されたので、ケーブルはOKっぽい。 んな訳でソフマップのサポートセンターに問い合わせて、結局初期不良で対応してもらう事に。在庫が無いんで多少日数がかかるらしいです orz 悔し...
最近Vista関連の記事が多いですが、まぁ仕様って事で。 さて、そんな訳でカスタマ・プレビュー・プログラムの登録者向けにRC1が公開されています。Webサイトには“ 6月にこのプログラムに登録された場合、RC1 に関する情報が記載された、マイクロソフトからの最近の電子メール メッセージ (9 月初旬に送信) をご覧ください。”なんて書いてありますが、どのメールの事なんでしょう? メールボックスをあさってみると、pre-RC1の...
ITmediaより。以前書いたAmazonのリーク時と同じです。 そう言えばEnterpriseエディションは小売しないんでしたね。ソースを読んで思い出しました。て事は、自分が買うならUltimateのアップグレード版かなぁ。XPのライセンスが余ってるし。 ついでに今週中にはRC1を一般公開予定とか。こちらもITmedia。 つまり今週末には30インチ液晶が届いてVistaのRC1が使えるかもしれないと。うーん、やっぱり追い風だなぁ。...
http://d.hatena.ne.jp/mkomiya/20060905#p1けっきょく、それぞれの議員の意見の総和は、複数の評価の線形和である現在の評価関数と同じじゃん!って話に帰結したような記憶があります。シューティングの例では先読みしていないのでそうなりますよね。たとえば、飛車の移動可能数という評価と、駒得という評価があって、通常なら、線形和だから、駒損をなるべくしないように、かつ飛車も行き詰らないような手を探すことになると思...
たるさんのパソコンフィールドでも取り上げられていますね。 でもって、即行で大原氏のブログに返事が。仕事速いですね。 内容はと言うと、状況証拠を探してみたり、実アプリでのLOAD/STOREの比率を予想して考察してみたりと、私とのやり取りよりはるかに濃いです。興味のある方は必読かと。 つーかですね、こういう考察系の記事はうちよりもたるさん氏のサイトの方が何倍も読み応えがあります。やっぱり長年やってる人は違...
ITmediaの“なぜ起こる? 「炎上」の力学”を受けて“Slashdotに聞け!: ネット上の「炎上」の力学を考察する ”というトピックが出来た訳ですが、これのコメントが結構面白いです。 注目は#1011548辺り。名前を明かしてかかれたコメントに対して匿名の人が反論しています。 そう言えば炎上も似てますよね。“実名サイド vs 匿名サイド”って形式が。 まぁ、「実名を出しているからエライ」とか「匿名でこそこそするな」とか言うつ...
マイムーブさんのブログのNo.180より。移動手も、どこから移動したのかを表示させたほうが開発上は便利だと思いますが、そこまではやっていません。 うをっ、真面目だ。 私は移動前後の場所をそのまま出力しています。おまけに、駒台から打つ時は移動前が(0,0)になります(←内部のデータ形式を外に持ち出し)。昨年度対戦した杉将棋さんが、移動元も一目でわかるように、盤面の移動元の枠に色を付けて表示しておられましたが、...
2万円切ってましたよ。自分が買った時は2万6千円位だったのに。 まぁいいや、どうせ二枚目も買うし、その時に安く買えるならそれに越した事は無いし。 で、何でかと不思議に思っていたら80nmプロセスにシュリンクしたバージョンが出るそうですね。納得。...
MARMGUS11L到着〜。30インチ液晶を買う一週間前という、まさに絶妙のタイミング。 さっき書いた論文の件も(たまたまですが)上手く対処出来ましたし、なんか最近、やることなす事追い風になってる気がします。 え、囲連蛇亜? OKOK、あれだって勉強のネタを一つ提供してくれたじゃないですか。 そんな訳でW-ZERO3[es]購入はもうちょっと待ちます。待てばきっと嬉しいニュースがあるはず!!!...
KFEndさんのABC探索(Alpha-Beta-Conspiracy Search)や進歩本である程度は理解したのだが、細かい所がまだ分かってないので原典に。 まずダウンロード。作者のページが見つからないのでここからDL。 で、フォーマットがPostscriptなのでGhostscript&GSviewをダウンロード。バージョンは最新の8.54と4.8。 が、ここでトラブル発生。論文のP.13(グラフが書いてあるページ)でエラー。 色々設定をいじくっても駄目だったのでこ...
無理です、出来ません! いや、しょっぱなからアレですが、一応完成はしたんですよ。でも速度がモンテカルロの試行一回に1秒かかります。 てな訳で、動くけど実用的な速度(&強さ)は出ない、という事です。 さて、そうするとプロファイルを採ってチューニングしないといけないんですが、C++でプロファイルを採る方法が分かりません。 とりあえずC++の勉強に戻って、プロファイルは後回しですね。【TODOリスト】 優先度順C+...
そんな訳で、今日は日本酒とおでんでキュッとやってます。 ちなみに私の住んでいる地域ではおでんには味噌をつけます。ゲテモノっぽいけど美味ですよ。...