ARM、Hot ChipsでHPC用のスケーラブル・ベクトル拡張を公表
John Russell

ARMと富士通は、HPCワークロードにおけるARMの機能を強化することを目的としたARMv8アーキテクチャに向けたスケーラブル・ベクトル拡張(SVE)を発表した。富士通は(今のところ)この取り組みにおけるリード・シリコンパートナーであり、2020年のタイムフレームで計画されている日本の次期主力スーパーコンピュータにSVE技術を使ったARMを使用する。これはARMにとって重要な段階的ステップであり、より積極的にメインストリームおよびHPCサーバ市場にプッシュしようとするものだ。
富士通のポスト京マシン(京コンピュータで使用していたSPARCプロセッサからの転換)にARMを採用する最初の発表はISC2016であり、その際にARMにおける開発の取り組みの詳細についてはHot Chipsで公表すると述べていた。Bull AtosもまたARMベースのスーパーコンピュータを開発している。
このSVEは「次世代ハイパフォーマンス・コンピューティングの課題に対処することにフォーカスしており、それによって、非常に並列化されている科学計算環境において典型的に見られる平均的ワークロードを意味しているのです。」と、ARM計算製品グループのマーケティング・プログラムのディレクターであるIan Smytheが事前説明において述べている。SVEは128ビットから2048ビットまで128ビット毎にスケーラブルであり、とりわけ細粒度並列処理を取り入れるためにARMの能力を高めるものである。
![]() |
|
リードISAアーキテクトでARMのフェローであるNigel Stephensは、彼のブログ(テクノロジーアップデート: The Scalable Vector Extension (SVE) for the ARMv8-A Architecture, 下記のリンク)の中でより詳細な技術について説明しており、Hot Chipsでの説明と一致している。これは読む価値があるが、概要は次のとおりである。
「特定のベクトル長を指定するよりは、SVEはCPU設計者が自分達のアプリケーションや市場にベクトルレジスタ当たりの最も適したベクトル長を128ビットから最大2048ビットまでの範囲で選択できるようにしています。」とStephensは書いている。「SVEはまた、有効なベクトル長に適応可能なvector-length agnostic (VLA)プログラミングモデルをサポートしています。VLAパラダイムの採用によって、一旦SVE用にプログラムをコンパイルまたは手書きすれば、将来より長いベクトルが現れた際に再コンパイルや書き換える必要無く、異なる実装性能の上でも実行させることができるようになるのです。これはアーキテクチャ寿命の間における展開コストを削減するものです。プログラムがきちんと動き、より広く、より高速に実行するのです。」
「前述した科学的ワークロードは伝統的にOpenMPプラグマや他のソースコード・アノテーションを注意深く使用して、データレベルの並列度をできるだけ上げるように慎重に記述されています。そのため、コンパイラにとってこのようなコードをベクトル化し、より広いベクトル・ユニットを十分に活用することは比較的簡単なのです。スーパーコンピュータはまた、より長いベクトル・ユニットに供給するのに必要な幅広く、高帯域幅を持ったメモリ・システムを使って構築されています。」とStephensは書いている。
HPCはSVEのより長いベクトルに自然に適合する一方で、またベクトル化コンパイラを向上させるよい機会を提供し、他のシステムが増加するデータレベルの並列度をサポートするように長期的に一般的な利益になるであろうとStephensは述べている。
この点を詳しく述べると、「アムダールの法則がタスクのスピードアップの理論的制限が並列化されていないコードの量に支配されていることを教えてくれていることを今の時点で指摘することに価値があるのです。実行の際の10パーセントの並列化して4倍高速(例えば256ビット・ベクトルが4x64bの並列操作を許した場合)にすることに成功した場合、1000サイクルを925サイクルに下げて余分なゲートの電力と面積コストのための制限された高速化を提供することになるのです。もし大きく(無理だろうが!)実行の50%をベクトル化できたとしたとして、全体性能は倍にしかならないのです。より長いベクトルで潜在的な増加を実現するためには、プログラムの多くの部分をベクトル化できるようにする必要があるのです。」
(ARMのNEON別名である)ARMv7のアドバンスドSIMDは約12年経過しており、当初はメインプロセッサ上でのメディア処理を高速化する目的であった。AArch64への移行に伴い、NEONはフルIEEE倍精度浮動小数点、64ビット整数演算を獲得し、レジスタファイルを32個の128ビットベクトル・レジスタに増加させている。これらの変更がNEONを汎用計算のためのより良いコンパイラのターゲットにしている、とStephensは述べている。SVEは補完的な拡張機能でありNEONのリプレースではなく、HPC科学ワークロードのベクトル化のために特別に開発されたものである、と彼は述べている。
NEONと比較した新SVEの機能は次の通り:
- スケーラブルなベクトル長(VL)
- ベクトル長に囚われない(VLA)プログラミング
- ギャザー・ロードとスキャッター・ストア
- レーン単位の条件付き実行制御
- 条件付き実行制御主導のループ制御と管理
- ベクトル・パーティショニングとSW管理の投機
- 拡張整数および浮動小数点演算の水平方向の縮小
- スカラー化内部ベクトル・サブループ
「SVE用にコンパイルすれば、幅が128でも1024でも2048でも、どのSVEの実装においても、ハードウェア実装においても動作し、コードはARMアーキテクチャ上でバイナリで動くのです。このことは重要で、コンパイラやHPCな人々が書くコードの未来においてスケーラビリティと互換性を我々にもたらすのです。」とSmytheは強調している。
![]() |
|
ARMはより広いx86市場の一部を獲得するという希望と共に、そのエコシステム(ここに示されている)の拡張を着実に進めてきた。市場の牽引は測るにはなかなか厳しいものではあるが、そこには多くの市場セグメントにおける顕著な勝利があり、サーバ用のチップが販売されてからまだ数年しか経っていないのだ。多くの設計での勝利はニッチ指向のものである;一例として今月初めに発表されたHPEのARMベースのストレージ・サーバ(StoreVirtual 3200)がある。ARMはもちろんモバイル・コンピューティングにおける絶対的な力であるのだ。
Hot Chipsカンファレンスの前にその明らかな技術的フォーカスにおいて、ARMは、SVEに関するHPCコミュニティのいくつかを事前説明し、その成長戦略、エコシステム構築の成功を強化し、ポスト京コンピュータの勝利の栄光の一部に戻るための機会を使っている。近頃のソフトバンクによるARM社の買収を考えると、すべての場合において、マーケティングおよび技術的な活動の変化の度合いを見ることが面白そうだ。
ARMサーバ・プログラムのシニア・マーケティング・ディレクターであるLakshmi Mandyamは次にように語っている。「私達は橋頭堡を確立し、我々のパートナーがこれらの主要な分野において採用できるようにするために、いくつかのベース・マーケットセグメントを有効化することにフォーカスしています。また、ソフトウェアの有効化の面で明らかに我々がx86に追いついてきているので、私達はエコシステムの有効化の面において、我々のアプローチを推進するために主要なエンドユーザを利用してきました。」
「オープンソースへの動きと[as a サービスモデル]を介したアプリケーションとワークロードの消費は、本当に産業界に多くの崩壊を引き起こしています。また、これら多くのプラットフォームがオープンソースやLinuxや中間ミドルウェアをベースとしていますので、伝統的な(x86)ソフトウェアやアーキテクチャでの依存性は無くなっており、それはあるチャンスを提供しているのです。それがARMにチャンスをもたらしています。」
もうひとつ重要なのは、多くの近代的ワークロードはHPCにおいてでさえ、真のスケールアップに対して、スケールアウト・モデルに向かって動いていることを認識することだ、と彼女は述べている。多くのこれらのアプリケーションはI/Oとメモリの性能にドライブされている。「私達はヘテロな計算を非常に簡単に提供することができ、また最適化されたアルゴリズム処理を非常に簡単に提供できるので、ここがARMのパートナーシップが輝けるところです。多くのアプリケーションを見た場合、それは仕様やベンチマーク性能ではなく、自分のアプリケーションで何を提供できるのか。なのです。」
「富士通について考えると、彼らがポスト京コンピュータについて話したように、多くの人達はこの本当にチューンされた性能を見ており、全体の問題を見ながらコデザインのアプローチをとり、与えられた問題に対するアプリケーションとサービスを提供することなのです。そこが、プラットフォームをシリコンレベルにまで下げてチューンする能力が大きな成果を出すこところなのです。」と彼女は述べている。
ここにARM SVEの発表に関するNigel Stephensのブログのリンクがある。(Technology Update: The Scalable Vector Extension (SVE) for the ARMv8-A Architecture): https://community.arm.com/groups/processors/blog/2016/08/22/technology-update-the-scalable-vector-extension-sve-for-the-armv8-a-architecture