ALH84001

私的コラム&雑記(&メモ)

今週の興味深かった記事(2018年 第47週)

2018-11-25 | 興味深かった話題

NRAM

サーバー/PC主記憶DRAMの置き換えを目指すナノチューブメモリ - PC Watch

 ソフトウェアエンジニアリングを学んだ人であれば、こういう話を聞いたことはあるだろう。「メモリーはレジスタの1000倍遅く、HDDはメモリーの1000倍遅い」。もちろん、この1000倍というのは概算/アイデアであって正確な値ではない。10~100倍ならなんとかなるかもしれないが、絶対的な性能の差の壁がそこにはある。
 この20年間ほどメモリーは頭の痛い問題であり続けている。なにせCPUと比べても速度がまったく上がらない。2000年頃から考えてもSDR→…→DDR4と帯域は8倍以上にも向上してきたが、セルの動作速度(=読み書きの遅延)は過去20年で2倍程度にしか向上していないPC100(100 MHz)→PC4-25600(200 MHz)。

 なぜ上記のようなことを述べているかといえば、IntelのOptane Persistent MemoryHP EnterpriseのThe Machineなどを見ても分かる通り、メモリー階層の変革が必然的になりつつあるように見える。CPUの性能向上は物理法則の壁にぶちあたりつつあるが、もし高帯域・高遅延・大容量のメモリーが発明されるか(※これは大変に望みが薄い)、あるいはメモリー階層を変更してメインメモリーを特大容量・不揮発性にできればコンピューターの性能はまだまだ伸ばせる(希望的観測)。本記事のNRAMやOptaneやThe Machineからは業界がそういう模索をしている姿が垣間見える。

QNAP製PC拡張カード

QNAP、Core i7/DRAM/SSDの“PC一式×2”を搭載したPCIe拡張カード - PC Watch

 これはまったく用途が想像できないが実に興味深い。
 ブロック図を見ると拡張カード上にPC構成部品が2台分載っており、4個搭載されている10GbE NICでホストPCと拡張カード上の2台のPCがやり取りすることになる。つまりホストPCから見ると拡張カード上の2台のPCには直接的な連携機能はない。ところで10GbEの最大の弱点はPHYの発熱なので、NIC 4個であればPHYを省略してLayer 2でやり取りが可能なはずだが、PHY部分が載っているのか図ではよく判らない。とはいえ、Layer 2でやり取りするならばL2 Switchチップを使ってもよかった気がする。

 最近のQNAPはQBoat Sunny開発ボードなど非NASデバイスにも積極的だが、目的が解り難い製品が多く出てきている。
 今回の拡張カードの場合ではモノとしては興味深いものの、なぜPC 2台なのかという意図が分からない。上述の通り2台の間に連携機能はないからである。それならば、もしかしたら超低電圧版Core i7 7567U(2core/4threads 3.5-4.0 GHz 28w)2個よりも高性能モバイル用Core i7 8850H(6core/12threads 2.6-4.3 GHz 45w)1個を使ったり、あるいは省電力なNVIDIA GeForceを載せた方が良かったのではないだろうか?(※いずれにせよ、用途によって最適な構成は変わる)

なぜデスクトップLinuxは普及しなかったのか?

なぜ“デスクトップLinux”は普及しなかったのか? - ITMedia

 記事中ではデスクトップのインターフェースよりもデバイスドライバーについて述べられている。個人的にはデスクトップアプリケーション類の使い勝手の悪さの方が問題だと思うが、デバイスドライバーも確かに問題ではある。
 なぜデバイスドライバーが問題かと言えば、これも様々な理由が考えられるが、GPLのLinux KernelにロードするカーネルモジュールはGPLでなければならないからで、デバイスベンダーはOpen Sourceでソフトウェアを書きたがらない。そこで有志がドライバーを書くものの、今度は類似のドライバーを汎用化しようとするため速度が出ない状態が続いている。もしLinux KernelがMITライセンスかApacheライセンスなら少しはマシだったかもしれないが…ちなみにAndroidで状態がマシなのは、多くのベンダーがGPL違反しているからである(最近はQualcommもCode Auroraでオープンソースに積極的だそうだが…しかしAdorenoや各種モデムのファームウェア/ドライバーのソースコードが公開されたという話は聞かない)。
 また、記事中で指摘されている通り、ディストリビューションを絞るというのは確かに優れた解で、現状ではディストリビューションの数が多過ぎ「車輪の再発明」的なマンパワーの無駄がある。

 もっとも、いちLinuxユーザーとして言わせてもらえれば、例えばAndroid端末や家庭に普及しているWi-Fiルーターなどが成功していることから分かる通り、デスクトップは諦めて専用設計に特化したり、サーバーに特化したりした方が良い。

Comment

今週の興味深かった記事(2018年 第46週)

2018-11-18 | 興味深かった話題

Intel/Movidius Myriad X

Intel、AI開発者向けの小型デバイス「Intel Neural Compute Stick 2」を発表 - @IT

 Intelが買収したMovidiusのMyriad X VPU(MA2485)が販売され始めた。
 VPU(Vison Processing Unit)とはいうがエッジ側のNeural Processing Unitで、CaffeやTensorflowを4TOPSで処理できる。記事にある通りIntel自身がUSB 3.0接続のNeural Compute Stickをリリースするほか、ASUS系のAAEONがMini PCIeおよびM.2接続のボードを展開する。
 もっとも、Mini PCIe/M.2といっても実際の接続はUSB 3.0で、Mini PCIeの場合はFresco Logic FL1100 USB 3.0コントローラー経由、M.2はB+M Keyタイプのインターフェースに含まれるUSB 3.0を使用してホストとUSB 3.0で接続されるので、SSDなどとは違いUSB 3.0接続のIntel NCUだろうがMini PCIe/M.2接続のAAON AI Core Xだろうが性能的な違いはない(FL1100やIntel xHCIといったUSBホストコントローラー性能による違いはあるかもしれない)。

 最近出揃ってきているエッジ側NPUだと、Apple A12が5 TOPS、中国Rockchip RK3399Proの2.4 TOPSといった具合であるが、Myriad Xの性能がいまいち判然としない。ニュースリリースを読むと4 TOPSという記載もあれば「専用のNeural Processing演算で1 TOPS」という記載もあり、どうやら1 TOPSの「Neural Compute Engine」と合計で4 TOPSの16コア「SHAVE」ベクトルプロセッサーが混載されているようだ。ダイ写真を見ると5%ほどを占める制御用RISC CPU・20%ほどを占めるImaging Accelerators・10%ほどを占めるNeural Compute Engine Engine・30%ほどを占めるSHAVEが混載されていることが分かる。

サイバーセキュリティー担当大臣とは何をする職種なのか

Japan's cyber-security minister has 'never used a computer' - BBC

 筆者はアイルランド在住だが、同僚から質問攻めにあった「ちょっと、どういうことなの?」と。それは筆者自身と同僚が米国系企業のサイバーセキュリティのチームに在籍しているせいかもしれない。

 そういう人々には半分冗談でこう回答しておいた「彼の仕事は、良い椅子に座って廻ってきた案件を承認することですよ」と。
 続いて、もう少し真面目にこう補足した
「日本は官僚が強いので、主要なポスト以外は大臣は誰でも良い」
「主要なポストとは財務・外務・防衛で、他は与党内での功績を基に選ばれる」
「彼は7期当選していることが与党にとって功績と認められた」
…もちろん、半分ぐらいは冗談だが…あながち間違ってなさそうなのが恐ろしいが、あくまで政治の問題なのだと思う。

 もっとも、本音を言えば、サイバーセキュリティのトップは先端テクノロジーを理解できて政治力も強い極めて優秀な人物か、さもなくば技術は理解しなくとも口出しせず予算だけ引っ張ってきてくれる人物が良いのではと思う。Googleのような企業であれば当然ながら前者の必要があるが、たとえば日本の銀行のような超文系社会であれば後者で充分かもしれない。
 10年前のサイバーセキュリティのコンセプトを軍事に喩えるなら中世のように城を築いて堀を掘って境界線を防衛するという感じだが、現代のサイバーセキュリティのコンセプトはそれとは大きく異なっている。防衛線が突破されて侵入されることを前提としていたり、それに対応するため選抜チームに適役をやらせて演習を行ったりといった具合で、一般人に理解できるか疑わしい。だから「コンピューターを使ったことが無い」は論外にしても「ぼくは〇〇に詳しいんだ」とか言って知りもしないのに現場に口を出されるのも邪魔で困る。

クラウドでホストされた悪意あるシステムについて、ホスト会社に責任はあるのか

「政商」化するアマゾン、米政府の重要インフラでシェア圧倒 - ASCII / MIT Technology Review

 記事自体は面白いと思ったが、ここでAmazon AWSの責任を強調するのは「坊主憎けりゃ袈裟まで憎い」的な責任転嫁だと思った。その意味ではMIT Technology Reviewらしくない。

 米政府と関連省庁は、例えばNSA Prism・NSA Echelon・FBI Caniverなど様々な監視システムを運用してきたことで知られている。もし政府と関連省庁が運用コスト削減と運用効率化のため多数のサーバーをクラウドを利用するとすれば、その一部や全部がAmazon AWS・Microsoft Azure・Google Cloud Platform等に移されるのは驚くに値しない。

 余談だが、個人的には日本の住基ネットなんかもクラウドに移行すべきだと思う。地方自治体がセキュリティの万全なインフラを設計・運用できるはずがないし、システムが地方自治体で分散していても物理的に分散している必要性が無い(というか、e-Japanだとか言って2000年から高速インターネットインフラを整備したのに、システムが物理的に分散している必要があっては自己矛盾である)。

 そして政府がサーバーをクラウドに移すのであれば、その中に監視システムが含まれるのも当然に思える。

 記事では特別に悪印象を与える表現は用いられていないものの、全体からは不法移民検挙が悪い事のように書かれ(それ自体は別の議論だと思うのだが)、政府が使用しているPalantir社製ICMをホストしているAmazonが片棒を担いでいるかのような印象を受けるが、さすがにAmazonとしては寝耳に水だろう。なにせAmazonはPalantirのシステムやデータに直接アクセスできないはずだし、Palantirだってシステム(≒道具)を開発・提供しているだけで、どう使うかはクライアントである米国政府次第であると思うのだが。

Comment

AMD ZEN2 考察 (2) - ZENの弱点を克服するZEN2

2018-11-11 | テクノロジー

7nmで最大64コアの「ZEN2」とNVIDIA Voltaを上回る「Radeon Instinct M60」 - PC Watch
AMDの次世代モンスターCPU「Rome」はどんな構造になっているのか - 4gamer.net

 AMD「Next Horizon」イベントが開催された数時間前、私はとある掲示板でZENの弱点について説明していた。というのも、ZEN2についてはAVX-512がサポートされない旨が報道されていたが、その理由はあまり報道されなかったからである。

 それは、実はZENは128-bit SIMD演算に最適化されて設計されており、仮にZENの設計のまま512-bit SIMD演算に対応してもほとんど意味が無いということである。というのも命令セットがサポートされただけでは演算に128-bit SIMD演算の4倍(128-bit x 4 = 512-bit)の時間を要してしまうからである。
 ZEN2では、このZENの弱点が改善され256-bit SIMD演算に最適化される設計に変更された。これはIntel Coreファミリーでいうところの、第1世代=Nehalem/Westmereから第2世代=Sandy Bridgeへの改良に似ている。Intelの場合はAVXサポートと256-bit SIMDへの最適化をSandy Bridgeで同時に行ったが、AMDはAVXサポートが先行し256-bit SIMDへの最適化が第2世代=ZEN2へとずれ込んだ。
 ここでいう「最適化」とはLoad/Store帯域とレジスタの幅のことであるが、主にLoad/Store帯域である。もし、128-bit SIMD演算(和算か乗算)を行うとすれば128-bit分のデータ x2セットをロードして各々の組で演算し、128-bitの演算結果をストアする(例:32-bit単精度浮動小数点 x 4-way)。そのため16 Bytes/128-bit幅 x2個のLoad帯域と16 Bytes/128-bit幅 x1個のStore帯域が必要になる。同様に256-bit SIMDでは32 Bytes x2個のLoad帯域と32 Bytes x1個のStore帯域が必要となるが、これがZENでは128-bitに最適化されていた。

 実はこのSIMD演算への最適化については過去に大手メディアで扱われている(後藤氏@PCWatch大原氏@ASCII)。大原氏が「ボトルネック」と表現したものを後藤氏が「大人しい」と表現しているのが興味深いところである。

 なお、IntelはCoreファミリーでのAVX-512サポートにあたりXeon用のSkylake-SPと事実上キャンセルとなったCannonlakeの2種類の実装を行っているが、Skylake-SPはSandy Bridgeと同様の方式で、AVX用のレジスタも512-bitに拡張されていたほかLoad/Store帯域が512-bitに最適化される形に変更されている(※デスクトップ用Skylakeとは完全に別設計)。未確認だが恐らくCannonlakeはZENと同様の方式でLoad/Store帯域は256-bit用となっていると思われる。

 今回、ZEN2でLoad/Store帯域が256-bitに最適化されたため、ZEN3かZEN4でAVX-512の実装がされる可能性は高い(256-bit SIMD 2個で実行)。ただし、以前からAMDは512-bit以上のSIMDはGPUで実行すべきだと主張しているし、また、AVX2/AVX-512を開発したIntelですらも実装に手間取ったり、実行時にクロックを落としたりと苦戦しているところを見ると、AMDの主張も一理あると思える。

Comment

AMD ZEN2 考察 (1) - MoChi化するZEN2

2018-11-11 | テクノロジー

7nmで最大64コアの「ZEN2」とNVIDIA Voltaを上回る「Radeon Instinct M60」 - PC Watch
AMDの次世代モンスターCPU「Rome」はどんな構造になっているのか - 4gamer.net

 先日、AMD「Next Horizon」イベントが開催され次世代Epyc = "Rome"の概要が説明されたが、不思議なことに思わず私が連想してしまったのはMoChiだった。といっても、AMDがMarvellの技術を使ったという事ではなく、技術的な背景やパラダイムの変化などが要因で、結果的に同様の実装になってしまったという意味だが。
 MoChiとは2016年にMarvellが発表したSIP(System in Package)の実装技術の一種である。従来はアプリケーションプロセッサーのSoCとDRAMのように、元々ばらばらだったものをパッケージ内で統合していたのだが、MoChiはもう一歩踏み込んで、構成部品を機能ブロックに分解して用途に応じて機能ブロックを組み替えてMoChiインターフェースで接続してパッケージ内に統合する。

 MoChiのようなモデルは、従来、コンシューマー製品には合わなかった。それはチップが相対的に安価でMCM(Multi-Chip Module)の製造コストが相対的に高価だったからである。実際、例えばAndroidスマートフォン用アプリケーションプロセッサーではPoP(Package-on-Package)はあってもMCMは見当たらない。MarvellのMoChiのように積極的に多数チップでMCM化するなど論外だったはずである。しかし、これはAndroidスマートフォン用アプリケーションプロセッサーが僅か$10~50しかしないコモディティー商品で、Marvellが販売するのは高価で少量多品種の組込プロセッサーなので話は別である。

 だから、私は"Rome"が8コアを搭載したチップ8個をスイッチチップで相互接続した8+1チップ構成になる噂を目にした際、個人的にはかなり懐疑的だった。スーパーコンピューターのようなワンオフ製品ならばともかく、高コストでトポロジーが従来と変わってしまう構成は害ばかりで一理も無いように思われた。
 従来と比較すると"Rome"の構成はCPU間のコミュニケーションやメモリーに問題がある。AMDはK8以来、メモリーコントローラーをCPUチップに統合してきた。そのため、従来の1チップ構成のCPUでは1〜2ホップ、現行のEpycのようなMCMでは1ソケット構成で5ホップ前後・2ソケット構成時には5〜10ホップになる(ここでいう1ホップのサイクル数は固定とは限らないためホップ数の増加分だけ整数倍に遅延が増加するわけではない)。それが8+1チップ構成とすると最短で5ホップ以上になり遅延が増加する。また、1CPUコアあたりのメモリー帯域の減少も問題となる。絶対的な帯域に加え、競合が発生しやすくなり、その分だけ遅延も増加する。

 もっとも、ZEN2を従来のEpycのようにメモリーコントローラーを分散する場合(仮に可能だった場合。実際は記事中にある通り不可能)では、1CPUチップに2チャンネルの構成となるだろうから、8CPUチップで合計メモリーチャンネル数が16チャンネル(=最大の帯域を得るにはメモリーモジュールが16モジュール必要)となってしまう。メモリーコントローラーの分散で競合と遅延の問題は解決するとしても、それはそれでコストや実装面積などの問題が発生する。

 実際には、記事中にある通り7nm製造プロセスで1.2Vや3Vを扱えない必然性があり、また、Marvell MoChiと同様のメリットが享受できるとすれば見方は違ってくる。確かにMCMになるコストは跳ね上がり、チップ間通信の遅延は増えるが、一方で歩留まりの向上や製品の作り分けは非常に容易になる。
 おそらくZEN2世代のRyzen 7/5/3ではCPUチップレットx2個とIOチップレットx1個を組み合わせた3チップのMCMになる。では、Ryzen GシリーズAPUはどうなるかというと、CPUチップレット x1個・GPUチップレットx1個・IOチップレットx1個を組み合わせ・AthlonはCPUチップレットx1個・(GPUが付く場合はGPUチップレットx1個)・IOチップレットx1個の組み合わせたMCMとなる。つまり、GPUチップレット以外のチップレットは$2000のサーバー用単体CPUだろうが$100以下のエントリークラス用CPUだろうがAPUだろうが共通になる。このようにすることでCPUチップレットを共通化し量産化しやすくなる。またチップレットを小型化することで歩留まりを向上しやすくなる。

Comment

先週の興味深かった記事(2018年 第44週)

2018-11-06 | 興味深かった話題

RISC-V Tokyo

RISC-Vでサーバを狙うEsperantoEsperantoのハイエンドRISC-Vコア「Maxion」 - マイナビ

 私は、RISC-Vに関する記事を読む度に「やや登場時期が遅かった」とか「いや登場時期はちょうど良かった」とかいった矛盾したような感想を抱かずにはいられない。そもそも、1990年代にWindows+IntelによるクライアントPC市場の寡占化が進んで、状況を覆すことはほぼ不可能になった。パラダイムの変化に乗る形で覆すことは可能だが、そういう変化自体がなかなか起きることはない。最近の20年間では以下の4種類の分野においてだと思う。

 まずはスマートフォンである。携帯電話とPCのソフトウェアやアーキテクチャはまったくの別物だったが、スマートフォンの登場によって境界が無くなりつつある。もしスマートフォンとPCを同一カテゴリーに分類するならばArmはIntelの優位性を覆したことになる。ArmはPDA等の携帯端末では1990年代~2000年頃でも既に採用が進んでいたが、普及が決定的になったのはAndroid/iPhoneの躍進と連動してArmがタイムリーに高性能コアを投入した相乗効果によるものだろう。RISC-Vのプロジェクトが発表されたのが2010年・GCCでサポートされたのが2018年(7.1)だったから、少なくとも10年ほど登場が遅かったとも言える。

 次にクラウドである。クラウドコンピューティングはWebベースで(比較的)アーキテクチャを問わないし、オンプレミスからクラウドへ移行する理由がコスト(開発コスト・維持コストなど)である以上はコストの優位性さえあれば顧客はアーキテクチャーを移行する可能性がある。特にGoogleやAmazonのような自力でインフラを整備できるベンダーであれば特に敷居は低いはずで、例えばGoogleは一部のデータセンターでIntelからIBM POWERに移行している。

 クラウドとも関連するが、人工知能/ディープラーニングはEsperantのような企業には入り込む余地がある分野といえる。GoogleがIBM POWERを採用したのもPOWER-アクセラレーター間をOpenCAPI/NVLINKで接続することを意図していて、ホストCPU-アクセラレーター間の高速でシームレスな接続は必須となってきている。ならば、Esperantのような企業はホストCPU=ET-Maxionとディープラーニングアクセラレーター=ET-Minionの両方を高速ファブリックで接続したプロセッサーにもチャンスはある。

 クラウド自体は既に立ち上がっているが、ディープラーニングアクセラレーターを使った物は新しいため、RISC-Vの登場はギリギリ間に合った感じがある。

 最後にIoTである。組込市場はソースコードの使い回しは多くともバイナリーの使い回しは想定しないので、Linux KernelサポートやGCC等のインフラストラクチャーさえ用意されているならアーキテクチャは問わない。実際、IoTで勢いがあるのはCadence(旧Tensilica)のXtensaである。IoTは立ち上がりつつある分野なのでRISC-Vにもチャンスがある。RISC-Vが小規模で効率的なアーキテクチャだと言うなら、Western DigitalがRISC-Vに投資するのもそういう理由であろうし、SiFiveがハイパフォーマンスコア(ArmでいうCortex-A7xクラス)ではなくローエンド〜(ArmでいうCortex-M0からCortex-A5xクラス)にフォーカスしているのも同様の理由であろう。

Comment