PEGY が OpenCL 対応

先ほどHPを閲覧させて頂きましたらPEZYのOpenCL対応 が実現している様で、嬉しくなりました。
 ->デュアルソケット・ザ・ワールドの目次は こちら へ。

2年前に要望的に書いたので、つまり当時のモヤモヤの半分が概ね実現されたのだと思いますが、しかしマーケティング不足な面が否めないと思うのです。社長が時々メディアに搭乗して頑張っている様子が伝わって来ますが、政府の後押しが不十分なのは非常に残念です。もう国産スパコンは全部PEZYで塗り替えろという法律作った方が良いんじゃね?とさえ言えますし、スパコン以外の分野でも利用出来る様に、例えばAmazonでローエンド品の入門キットを5万円くらいで売るとか、自作PCやクリエーター系のメディアで特集を組んでもらうとか、アニメの3D映像制作に協賛するとか、ディープラーニング機材を政府機関や大学に助成金使って納入するとか、そういったプロジェクトを文字通り並列実行できると良いのですが、それには組織体力が必要で、ベンチャー企業の悩みどころです。ですから政府の後押しが必要なんです。
 
市場原理という言葉をインテリは盲信したがりますが、市場原理と現実は乖離していて、実際には、メディアを制御出来る巨大資本が常に勝利してきた事を隠蔽する為の隠蓑が市場原理という仮想空間上の空想です。 ここで言う巨大資本とは、1部上場した企業といった意味ではなく、より巨大でグローバルな資本という意味で、例えばInte1やM$の株主一族の様なものを指しています。三井三菱住友などの財閥が解体された理由は、彼らに対抗出来る存在だったからに外なりません・・・
 


Ryzen で Memtest86

掲載順が逆に成ってしましましたが、とりあえず組み上げて最初に実行しました。
 ->デュアルソケット・ザ・ワールドの目次は こちら へ。

ECC無しメモリをいくらチェックしてもアレなんですが、でもとりあえず基本ですよね!?
IMG_20170309_154744.jpg

その後、3月7日に公開されたばかりのBIOS/UEFIに更新しました。

スマホ撮影が下手糞でスミマセン・・・
  
 

Ryzen7 Coreinfo

AMD Ryzen7 の Coreinfoをとってみました。
 ->デュアルソケット・ザ・ワールドの目次は こちら へ。

BIOS/UEFI で メモリのインターリーブ設定を色々試してみましたが、先日の予想は外れていた様な結果になりました。ですがL3キャッシュは4コア(1モジュール)毎に共有している為、メモリアクセスコストは均一ではありませんからNUMA的な現象・挙動が起きる事は有ると思います。この辺りはACPIテーブルの記述次第な面も有る為、実際の物理構造は判然としませんしBIOS/UEFIの更新で状況も変化するかもしれません。

3DNow!! と FMA4 は搭載されていない様で、代わりに FMA3 は実装されていると思われ、 y-cruncher の XOP Miyu は警告が表示され停止しました(但し、Enterキーで続行出来たので何らかのカラクリがあるのかもしれません、もしかしたら裏命令としてFMA4が残っている可能性も)。 Ryzen7 で実行した場合 y-cruncher 0.7.1.9466b での最速は AVX2 Airi で、次点が ADX Kurumi でした。現時点で Ryzen は y-cruncher の全てのバイナリを実行出来る現時点で唯一のCPUかもしれませんのでソフト的な互換性は高そうです。

以下 Coreinfo の結果 -------------------

AMD Ryzen 7 1700 Eight-Core Processor
AMD64 Family 23 Model 1 Stepping 1, AuthenticAMD
Microcode signature: 0800110E

Maximum implemented CPUID leaves: 0000000D (Basic), 8000001F (Extended).

Logical to Physical Processor Map:
**-------------- Physical Processor 0 (Hyperthreaded)
--**------------ Physical Processor 1 (Hyperthreaded)
----**---------- Physical Processor 2 (Hyperthreaded)
------**-------- Physical Processor 3 (Hyperthreaded)
--------**------ Physical Processor 4 (Hyperthreaded)
----------**---- Physical Processor 5 (Hyperthreaded)
------------**-- Physical Processor 6 (Hyperthreaded)
--------------** Physical Processor 7 (Hyperthreaded)

Logical Processor to Socket Map:
**************** Socket 0

Logical Processor to NUMA Node Map:
**************** NUMA Node 0

No NUMA nodes.

Logical Processor to Cache Map:
**-------------- Data Cache 0, Level 1, 32 KB, Assoc 8, LineSize 64
**-------------- Instruction Cache 0, Level 1, 64 KB, Assoc 4, LineSize 64
**-------------- Unified Cache 0, Level 2, 512 KB, Assoc 8, LineSize 64
********-------- Unified Cache 1, Level 3, 8 MB, Assoc 16, LineSize 64
--**------------ Data Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64
--**------------ Instruction Cache 1, Level 1, 64 KB, Assoc 4, LineSize 64
--**------------ Unified Cache 2, Level 2, 512 KB, Assoc 8, LineSize 64
----**---------- Data Cache 2, Level 1, 32 KB, Assoc 8, LineSize 64
----**---------- Instruction Cache 2, Level 1, 64 KB, Assoc 4, LineSize 64
----**---------- Unified Cache 3, Level 2, 512 KB, Assoc 8, LineSize 64
------**-------- Data Cache 3, Level 1, 32 KB, Assoc 8, LineSize 64
------**-------- Instruction Cache 3, Level 1, 64 KB, Assoc 4, LineSize 64
------**-------- Unified Cache 4, Level 2, 512 KB, Assoc 8, LineSize 64
--------**------ Data Cache 4, Level 1, 32 KB, Assoc 8, LineSize 64
--------**------ Instruction Cache 4, Level 1, 64 KB, Assoc 4, LineSize 64
--------**------ Unified Cache 5, Level 2, 512 KB, Assoc 8, LineSize 64
--------******** Unified Cache 6, Level 3, 8 MB, Assoc 16, LineSize 64
----------**---- Data Cache 5, Level 1, 32 KB, Assoc 8, LineSize 64
----------**---- Instruction Cache 5, Level 1, 64 KB, Assoc 4, LineSize 64
----------**---- Unified Cache 7, Level 2, 512 KB, Assoc 8, LineSize 64
------------**-- Data Cache 6, Level 1, 32 KB, Assoc 8, LineSize 64
------------**-- Instruction Cache 6, Level 1, 64 KB, Assoc 4, LineSize 64
------------**-- Unified Cache 8, Level 2, 512 KB, Assoc 8, LineSize 64
--------------** Data Cache 7, Level 1, 32 KB, Assoc 8, LineSize 64
--------------** Instruction Cache 7, Level 1, 64 KB, Assoc 4, LineSize 64
--------------** Unified Cache 9, Level 2, 512 KB, Assoc 8, LineSize 64

Logical Processor to Group Map:
**************** Group 0

世代ごとの拡張命令比較↓

CoreinfoResult2.png
 
 
 

AMD Ryzen 衝動買い

掲題の通りです。
 ->デュアルソケット・ザ・ワールドの目次は こちら へ。

秋葉原にふらっと寄って衝動買いしたのが下の物です。
Ryzen.jpg

衝動買いしたとは言え、電源は将来21号機になる予定の 2x Naples + Vega10 CFX を想定して1000W Platinum 電源を購入してきました。この電源は400Wまではファンが回転しませんので、恐らくRyzen7+GPU1枚では(コイル哭きが無ければ)無音です。それとSSDには筆者初のM.2を買ってきました。

シングルソケットは、AMD K6+ @600MHz で Win7 を起動して以来の6年ぶりで、デュアルソケット専門自作erの筆者としては異例のシングル板新規購入による自作であり、常用はしませんが Naples の板が登場するまでの数ヶ月間の遊び道具です。と言うか、昨日の記事に書いた様な事を自分で検証してみたくなったというのが購入した主目的です。人は新鮮な体験を求めて行動するというマーケティング法則に自ら従って行動している現実を実体験しました。子供の頃のプラモデルやラジコンやゲームの延長で当時から成長していないとも言えるかもしれません。

ところで Ryzen7 は3種類発売されていますが、ローエンド品でも 定格 3GHz(TC 3.7GHz)/8Core/16Thread/65W というのが凄いですね。Excavator比でIPCが1.56倍ですから 3GHz@Ryzen7 = 4.7GHz(TC 5.7GHz)@Excavator 8Module/16Core/65W 相当と言う事で、凄いものです。Piledriver 2.8GHz(TC-ALL 3.2GHz)/16Module/32Core の20号機と同程度の並列演算性能を出せるのでは?と期待感も有ります。

これから組んで色々試してブログに載せてゆく予定です。
ただし、今回入手したマザーボードはASRockのゲーム用マザーですから、筆者が普段使っている鯖板とは趣向が異なり、メモリのインターリーブ設定等がどうなっているのか未知の領域です。

余談ですが、秋葉原の棒店員曰く、先週の土日で Ryozen7 1800X は完売しましたとの事で、他の型番も多くの店舗で完売御礼の札がそこかしこに見受けられました。今のIntelのCPUには無い現象です。
 
 

Zen は NUMA か?

AMD Zen は NUMA ではないか?といった情報がネットで出始めていますが、ダイレイアウト的に言ってそうなんだろうと筆者は思っています。
 ->デュアルソケット・ザ・ワールドの目次は こちら へ。

K8(2003年)以降、NUMAが当然の環境で育った筆者は、RyzenやNaplesが単体でNUMAだったとしても特に驚きは無いのですが、XeonやOpteronと同様にZenでのチューニングは必然的に Node InterleavingAffinity Policy が肝になってくると思うのです。

オーバークロックやレイテンシ設定の様な判り易いチューニング(というより規定外動作)よりも、こういったチューニングの方が楽しいですよね?(筆者だけかもしれませんが)

キャッシュ構造に視点を置いてCoreinfoを参照すれば概ね物理構造が把握出来ると思いますが、BIOS/UEFIで先述のNode Interleaving相当の機能が設定されている場合はSMP(Symmetric Multiprocessing)的な振る舞いをする為、実態がつかみ辛いかもしれません。と言う事でNaples登場まで待とうか悩んでいましたがRyzenも購入して検証してみたくなってきました。

たぶん、第一世代のZenは4コア1モジュールにDRAM I/F 1本がセットになった“モジュール”をダイ上の高速インターコネクトで接続したNUMAなのだと思います。この手法はAMDがSocket G34のOpteron6xxxシリーズで採用したソケット内NUMAと同様の考え方なので、それ自体は既存の手法と言えます(コンシューマ機では初かもしれません)。

Ryzen は 8コア(2モジュール)ですから、DRAM I/F は2本
Naples は 32コア(8モジュール)ですから、DRAM I/F は 8本

という事も必然の帰結と言えます。

あてずっぽうで書いていますが、購入してBIOS/UEFIの設定を弄りながらCoreinfoやy-cruncherで効果を測定してみれば良く判るのではないかと思います。

CPUがメモリに対して太い帯域を必要とするのは主にAVXやFMAの連続実行時だと思うのですが、Zenは演算機がコア辺り128Bit×4機の様なのでDDR4世代では4コアまでは1チャネルで賄えると判断したのではないかと思うのです(後ほど暇があれば計算してみます)。これを4コア以上ではスケールアウト的にNUMAで並列化してゆく事で多コア化と歩留まり対策を効率よく実現できる(実際にはインターコネクトが複雑になりますが)と考えたのではないかと思うのです。

となるとNaplesのインターコネクトが、どういう方式なのか興味が出てきますね。クロスバーやメッシュやリング或いはこれらの複合など色々な方法が有ると思いますが、ダイ上の密結合とMCMやソケット間では方式が異なるかもしれず・・・
 
プロフィール

DualSocketTheWorld

Author:DualSocketTheWorld
自作を始めて20台目くらいになりますが、最初からデュアルソケット限定(始めた当時はデュアルスロット)で自作しており、近年になってAMD K6を試したくなりSocket7でK6-2+のシングル構成で組んだのがシングル初です。

シングルマザー(含:シングルソケットマルチコア)や4ソケット以上の自作は基本的にしませんし、メーカー製PCの改造も基本的にはしません(ノートPCのSSD化くらいはしますが・・・)

基本路線はワークステーションと呼ばれる分野での自作で、OSもWindows系であればProfesionalが主な対象に成ります。

ゲーマーの様なOverClockは行わず、WS路線としてハイエンドCPUとハイエンドGPUの組み合わせで定格或いはDownClockで発熱を抑えつつ、その時のアーキテクチャに置いて爆速かつ静音を目指し、30年以上の長期に渡り稼動状態をキープする事を目指します。

※基本的にリンクフリーです。どこでも自由にどうぞ。

※画像は時々変ります。

※お決まりの文章ですが、改造は個人の責任で行ってください。ここに記載された情報は間違いを含んでいる可能性が有り、それを元に製作や改造などをして失敗しても筆者は一切責任持てませんので悪しからず。

筆者略歴:
小学生時代にゴミ捨て場で拾ったジャンクテレビ数台を分解して部品を取り出し真空管アンプを自作、中学生時代にPC8801mkⅡsrでZ80アセンブラを始める。社会人になって初のプログラムは弾道計算、後に医療系・金融系プログラマ~SEを経て100~200人規模プロジェクトのジェネラルマネジャを数年経験、独立して起業。現在は不動産所得で半引退生活。
(人物特定を避ける目的で一部経歴を変更しています)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
アクセスカウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR