スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 結局は評価データ | トップページ | 配布パッケージの作成を開始 »

AVX2版は共通化

今は、MasterReversi Ver1.5.1のリリースに向けた最終作業を行っているのだが、現行版では別バイナリにしてあったAVX2版は64Bit版と共通化する事にした。性能的なデメリットは無い事もないのだが、AVX2版を別ファイル化しない事で、利便性は向上する筈だ。

現行のAVX2版の開発時に書いた筈なのだが、AVX2版のビルドはVisual Studio Community 2017で行っているのだが、そのビルドオプションでコンパイラにはAVX2命令を使う事を許可している。

なので、現行のAVX2版では、AVX2命令が実行バイナリの随所で使われる格好になっている分、64Bit版との共通化は行えなかった訳だ。

にも関わらず、Ver1.5.1では、共通化しようとしているのだが、これはつまり、Ver1.5.1ではコンパイラにAVX2命令を使わせなくする、という事になるのだが、性能的には、その分、少しは低下する感じも無い事はない。

しかし、手元にあるバイナリで実測してみた所、例えば、FFO40-59では、コンパイラにAVX2命令を使わせた場合には173秒程度だった処理時間が使わせない場合にも175秒程度にしか低下しなかった訳だ。

上記の違いというのは、MasterReversi的には、測定誤差に含まれる程度でしかないので、利便性を考慮して、次バージョンでは、AVX2版を別バイナリ化しない事にした訳だ。

もっとも、コンパイラにAVX2命令を使わせなくする、という事は、AVX2版は消滅するのか、というと、そういう事ではない。

AVX2命令はFlip処理等の主要ルーチンで、作者製のコードとしてダイレクトに使っているので、次バージョンでも、AVX2命令が使える環境では処理性能が向上するのだが、AVX2命令を使っている処理コードは限られる格好になるので、AVX2命令が使えない環境では、AVX2命令を使わないコードに切り替えて動作させる事が可能になった、という事になる訳だ。

と、いう事なので、Ver1.5.1では、AVX2版というモノは無くなるのだが、これは、64Bit版の通常の実行ファイルでも、AVX2命令が使える環境では、自動的にAVX2命令が使われる様になる、という事で、Ver1.5.0では提供されていたAVX2に対応した高速コードが使えなくなる、という訳ではないので注意して貰いたい所ではある。

ちなみに、AVX2命令が使える環境では、現行のAVX2版よりもVer1.5.1の方が、少なくともFFOテストでは、より高速に動作する様になる。

その理由は、評価データがFFOテストの局面データを追加学習させたモノに切り替わるのが大きいのだが、現行版の評価データを使ったとしても、状況によっては、少しは高速化される筈だ。

その理由は、今回、内部コードの微調整も、再度、行ったからなのだが、AVX2版と比べると、通常の64Bit版の処理性能の向上の方が大きい筈だ。

これは、現行のAVX2版が高速なのは、AVX2命令を使う様になっているから、という以外に、並列演算用のコードに微調整が入っているからでもあるからだ。

つまり、現行の64Bit版には、この並列演算用のコードに対する微調整が入っていない分、AVX2版よりも、随分と遅かったのだが、次バージョンでは、通常の64Bit版に対しても、AVX2版と同じ微調整が適用させるので、微調整2回分の性能向上が期待できる訳だ。

逆に言うと、AVX2版の通常版に対するメリットは減る格好になるので、今回、AVX2版と通常版は共通バイナリ化する事にしたのだが、それでも、AVX2命令が使える環境では、まあ、1割強は、AVX2命令を使ったコードの方が高速に動作する感じではある。

« 結局は評価データ | トップページ | 配布パッケージの作成を開始 »

トラックバック

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

この記事へのトラックバック一覧です: AVX2版は共通化:

« 結局は評価データ | トップページ | 配布パッケージの作成を開始 »

2018年8月
      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 31  

広告

プライバシーポリシー

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

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

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

    ポリシーと規約 - Google