T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 中盤は少し遅いが結構強い | トップページ | 本体のVer1.5.8化も開始 »

シングルスレッド性能は・・・

今は、macOS版MRWorkerの開発フェーズで、評価精度の向上用作業を完了した。結果的に、FFO40-59性能はかなり向上し、中盤も、少し強く出来た感じなのだが、これは、普通に並列演算を行わせた場合だ。

MasterReversiのリバーシエンジンは、並列演算を行う事が特長になる。

その結果として、マルチコアCPUが当たり前になった今となっては、2000年代に人気だったWZebraは、特に、終盤に行われる勝敗読みが遅すぎて、使う気にならない! みたいな感じになった筈だ。

もっとも、2000年代の主流となっていた高速CPUというのは、Pentium4で、CPUのクロック周波数は、今の普通のCPUと変わらない3GHzくらいはあった。

なので、性能的には、当時のPentium4でも、今時の1コア2スレッドくらいのCPUだと思って使えば、使えない事もない。

実際、作者は、去年まで、Pentium4マシンにUbuntu22.04LTSを入れて自前ソフトの評価環境として使っていたのだが、その環境にMirror-DTCサーバーをインストールして、メインマシンからリモート操作して使う事も出来ていた。

と、言う事で、2000年代のPCは馬鹿に出来ない今日この頃なのだが、今時のCPUは、CPUコア数が馬鹿みたいに増えているので、それらを有効活用するソフトの場合、1コア2スレッドのPentium4と比べると、段違いの性能が出せる様になっている。

昨日の記事にFFOテスト性能 (Ver1.0.0) へのリンクを貼ったので、何となく懐かしくなり、今日も、関連記事を書いているのだが、初版の頃のMRSolverは、作者の手持ち環境で最も高速だった、CoreDuo 2GHzのMacBookで、シングルスレッドで、FFO40-59が3826.8秒かかっていた。

もう一つの手持ち環境であったPentium4 3.2GHzのデスクトップPCでは、シングルスレッドで、4861.4secもかかっている。

つまり、より動作クロックが高いPentium4の方が、処理性能が低かった訳なのだが、これは、Pentium4は発熱が問題となり、動作クロックを想定通りに上げられなかった結果と言える筈だ。

ネットを検索すれば出てくる筈なのだが、当初、Pentium4の動作クロックは5GHzくらいにする予定だったので、4861.4/(5/3.2)=3111.3になるので、もし、クロック周波数をそこまで上げられていれば、CoreDuo 2GHzなんかには負けない性能を発揮できていた筈だ。

と、言う事で、インテル的にも、もうクロック周波数を上げるのは無理! という事で、Pentium4以降は、クロック周波数は据え置き、その分、余裕が出来た処理時間を利用して、より複雑な内部回路を実装する事で、1クロックあたりの命令処理数を増やしたり、そんな処理を実現するコア数を増やす格好で、処理性能を向上させる事にした訳だ。

その結果として、作者の現在の手持ち環境(Core i7-12700のiiyamaPC)では、MRSolverを使ったFFO40-59性能は45秒くらいになっているので、Pentium4のデスクトップPCと比べると、4861.4/45 = 108倍の性能を実現できている。

まあ、2000年当時でも、巷にある高性能なスーパーコンピュータなら、似た様な性能は出せていたかもしれないのだが、重要なのは、上記のPentium4のデスクトップPCは、13万円くらいで購入していたし、前述のiiyamaPCも、13万円くらいで購入している事だ。

つまり、普通に手に入る高性能PC同士の比較になるので、100倍という数字には、それなりに意味が出てくる訳だ。

もっとも、上記の比較は、Pentium4ではシングルスレッド動作、iiyamaPCではマルチスレッド動作になっている。

なので、FFOテスト (Ver1.5.5)にあるiiyamaPCのシングルスレッド性能を見てみた所、375.8秒だったので、この20年くらいで、CPUのシングルスレッド性能は4816.4/375.8 = 12.8倍、向上したのか・・・、と、思ったのだが、これは正しくもあり、間違いでもある。

何故なら、この20年で、MRSolverのソフトウェア的な性能も向上したからだ。

なので、今日、昨日書いていたscrzebraをiiyamaPCで動作させてみたのだが、その結果としては、FFO40-59には1249.4Secかかった。

つまり、この20年くらいで、CPUの基本的なシングルスレッド性能は、4816.4/1249.4 = 約4倍しか向上していない、という事になる。

基本的な、と、書いているのは、scrzebraは32Bitアプリで、mmxは使っていてもAVXは使っていないのに対して、MRSolverは64Bit化しているし、AVX2命令も使っているからだ。

なので、12.8/4 = 約3倍になる事を鑑みつつ、64Bit化で2倍高速化されたとすると、残りの5割程度の性能向上が、AVX2化だとか、アルゴリズムの向上だとか、評価データの最適化によるモノ、という事になる。

と、言う事で、FFO性能については、20年もかけて、本質的な部分については、5割程度しか性能向上できていない! という事になる。

しかしまあ、scrzebraしか存在していなければ、現在でも1249.4秒かかる処理が、MRSolverを真面目に更新してきたお陰で、45秒で終われるようになった! というのも事実なので、どちらが現実なのかを見誤るのもどうかと思った今日この頃だ。

ちなみに、今回開発した評価データと処理ルーチンを使うと、iiyamaPCで、2スレッド動作時でも、Ver1.5.5の測定値よりも5%くらいは性能が向上している。

しかし、シングルスレッド動作させると、3割も遅くなっている。

これは、シングルスレッド用には、マルチスレッド用とは異なる処理ルーチンを使っているからの筈なので、シングルスレッド用の処理ルーチンについても、新しい評価データ用に、少し手を入れておかないと、と、思っている今日この頃だ。

« 中盤は少し遅いが結構強い | トップページ | 本体のVer1.5.8化も開始 »

2025年2月
            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  

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google