PEZY-SCは地味なのか、実用性は無いのか

地味と言われるPEZYのスパコン

http://originalnews.nico/68251

小飼:
 そうなんですけれども、そこで使われている技術というのは地味にも見えるんですよね。言い方が正しいかどうかわからないけれども、あんまり天才っぽくない。

 「シンギュラリティ【※】を実現するんだ」というふうに、ご本人も著書とかで言っており、中の人たちの呟きもそういう感じではあるんですが、ちょっと見ておや? と思ったのが、4億円くらいでできるわけがないという感じがするものなんですよね。

シンギュラリティを実現するんだ、と言っている割には地味な技術を使って構成しているというコメントです。その後、液浸冷却を採用していた昔懐かしのCray-2の話がなされ以下のコメントに続きます。

小飼:
 要は、あんまりベンチャーっぽくない。地味で重要だし、実現すれば、みんな注目せざるを得ない技術ではあるんだけれども、シンギュラリティとはちょっと違う。そこのちぐはぐ感はありますね。

PEZYの仕事は地味で重要で、実現すればみんな注目せざるを得ない技術ではあるが、なぜこれをシンギュラリティの実現を標榜するベンチャーが作っているのか分からず違和感があるというのが大筋のようです。

ハードウエアはその上でアプリケーションが動くことが前提ですからそもそも地味なものなのかも知れません。もし派手なハードウエア技術があるとすれば、そういったアプリケーションを想定した斬新な技術のことだと考えられます。

例えばGraphcoreのIPUはそれに当たるでしょう。IPUはInteligent Processing Unitのことです。このプロセッサはGPUが処理していたデータよりもずっと高次のデータを処理するため、シリコン上のオンチップ・メモリの割合を大幅に増やすというアプローチを取っています。

あるいは、GoogleのTPU2も様々な意味で新しいものです。TPUはGoogleが実際に行っている人工知能を用いたアプリケーションのワークロードを、より省電力に行うために開発されたアクセラレータです。TPU2では推論と、推論のためのモデルを作るトレーニングの両方をこなせるように強化されています。最近話題となっているディープ・ラーニングに関するプロセッサであり、その行列演算を処理するためにシストリック・アレイを採用しておます。実際にそのワークロードをこなしている企業が作ったという点でも話題性があります。

これらの高性能なアクセラレーターは、手法が新しいものかは置いておくとして、少なくとも目新しいものです。ディープ・ラーニングという近年一挙に注目が集まるアプリケーションに特化しているからでしょうか、華々しさもあります。これらのアクセラレータなら派手だと言えるかも知れません。

PEZYの利点

ではPEZYのスパコンはどうでしょうか。前世代のPEZY-SCの利点について、興味深い指摘があります。

http://jun-makino.sakura.ne.jp/articles/future_sc/note123.html

これは要するに多くのコアがほぼ同じ動作をするということですから、SIMDでもいいんでは?という気が個人的にはしなくもありません。

が、アプリケーションを書く側から見ると、MIMDで階層キャッシュでスレッドで動く、という馴染み深い構成のほうが安心できるし、性能がでるかどうかはともかく数千スレッド発生させれば並列化はできるわけで、アプリケーションが書けそうな気がする、というのはやはり極めて大きな「売り」であると思います。

キャッシュベースのMIMDシステムは、実際に理論ピークに近い性能をだそうと思うと大変そうではありますが、多様なアプリケーションがとりあえずは動く、というのは大きいと思います。

性能が出るかどうかはともかく、多様なアプリケーションがとりあえず動くようです。この点を大きな「売り」と評価していますが、これは民間にも言えるような気がします。例えばHPC系のSaaS型のクラウド・アプリケーションを作る時には、このアプリケーションがとりあえず書くことができ、徐々に速度を改良出来るという点は大きな利点になるのではないでしょうか。

PEZY-SCの性能評価と実用性

PEZYのアクセラレータでアプリケーションがとりあえず動くことを裏付ける証拠があります。

http://www.gfd-dennou.org/arch/davis/workshop/2016-02-11/0211_02_nakasato/pub/20160211_nakasato.pdf

PEZY-SC/PZCLの現状
PZCLへのOpenCLコード移植は容易
* OpenCLとはほぼ互換
* ソースコードは共通化可能
* 違い:オフラインコンパイルのみ
* カーネル組み込み関数のサポート不足(rsqrt()/sqrt()のみ)
* 共有メモリを利用したコードの取り扱い??
課題
* メモリ帯域が最新のGPUより遅い
* SFUが比較的に少ないため、除算などが相対的に低速
* PZCL コンパイラの最適化

まとめ
Suirenで計算科学アプリの性能を評価した
* Hermite積分法:GPUと比べると若干遅い
* Octree法:GPUとあまり遜色のない性能
* MOST法:メモリ帯域に律速されている
* 多倍長精度演算:GPUと遜色のない性能
今後の課題
* アーキテクチャに特化した最適化の調査
* GPU用のコードでも比較的性能はよい
* 他の計算科学アプリケーションの実装
* 大規模計算の実現

この性能評価は現行世代のPEZY-SC2についてのものではなくPEZY-SCを採用した睡蓮のものです。スペックは以下の通りです。

Suiren(睡蓮)
PEZY-SC利用の初めてのクラスタシステム
* 高エネルギー加速器研究機構 計算科学センター
* ZettaScaler-1.0 2014年10月稼働
* Rmax 202.6 TFLOPS (2015年6月 TOP500)
* 6.22 GFLOPS/W (Green 500 v1.2 rule 2015年11月)

DDR3を採用しているPEZY-SCのメモリの遅さが指摘されていて、その分遅くなるアプリケーションもあるようですが、GPU用のコードでも比較的性能は良いとのことです。ソースコードの共通化が可能、OpenCLとほぼ互換と、この性能評価は少なくとも一定の実用性があることを裏付ける証拠と言って良いでしょう。繰り返しますが、この性能評価はPEZY-SC時点のものです。

LLVMを使っているからRustも動く

また、PEZY-SC上でRustも動くようです。

http://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html

この記事の中で説明されているように、PEZY-SCでRustが動いてしまうのは、コード生成をLLVMのバックエンドとして実装しているからのようです。LLVMとは任意のプログラミング言語に対応可能なコンパイラ基盤で、言語やプラットフォームとは独立した最適化を行うことが可能なオープンソース・ソフトウエアです。

まず、PEZY-SCのSDKでは、コード生成をLLVMのバックエンドとして実装しています。フロントエンドとしてClangを使っているので、それでC++のコードからPEZY-SC向けにコンパイルできるという形です。

ということは、RustからLLVMのIRなりBitcodeなりを出力できれば、それをバックエンドに食わせて、PEZY-SCのネイティブコードが出力できるはずです。そして都合が良いことに、RustはバックエンドとしてLLVMを用いています。コンパイラにLLVMのIRやBitcodeを出力するオプションもあります。つまりそれらを使うだけで、Rust to PEZY-SCのネイティブコンパイラが完成します。世の中便利になったものです。

PEZY-SCの実用性はこのようなソフトウエアが存在する便利な世の中だと言うことに支えられているのかも知れません。同記事では、元々のC++版のコードと殆ど変わらない性能を達成しています。

2048×2048の行列の乗算にかかった時間がおよそ16.65ミリ秒ほどで、実効性能は1031.67GFlopsと出ました。定格でのPEZY-SCの倍精度演算のピーク値が1.5TFlopsですので、これはなかなか悪くない値です。実際ベースにしたC++版のコードでも1.1TFlopsに達しない程度ですので、Rust化による性能低下はごくわずか、あるいはRust版のコードもきちんと生成されるアセンブリコードを見てチューニングすれば、ほとんどないものとして扱えるようになるのではないかと思います。

新たなアクセラレータでも複数の言語で高い性能を出せる時代だということなのでしょうか。

堅実なスパコンの先にある派手な結論

先に挙げた今話題の「派手な」プロセッサと違い、従来の用途を考えている点で堅実で地味と言えるかも知れません。このようなスーパー・コンピューターの実現には非常に高い技術力が必要ですが、ただ新しいことをしたいのであればその技術力をもっと新しい用途に振った方が良いように感じます。地味とのコメントの真意はこのようなことで、高名な大学ではなく、シンギュラリティの実現を標榜するベンチャー企業が作ったということに違和感があるということなのでしょう。

現在語られるシンギュラリティは、概ねレイ・カーツワイル氏がThe Singukarity Is Near: When Humans Transcend Biologyという著書で語った概念です。汎用人工知能が2029年頃に人間よりも賢くなり、2045年頃に特異点を迎えるという筋書きです。

まずこの著書では、人類の歴史の中で科学技術の発展は加速度的に進んできているということが説明されます。その法則は収穫加速の法則と呼ばれ、技術は指数関数的に進歩するという法則として紹介されます。

技術の進歩により、現代は非常に早く移り変わっています。例えばスマートフォンはこの10年の間に人々の生活の一部となりましたし、高性能化と多くのアプリケーションの開発によってその使われ方も変わってきて居ると言えます。SNSによってコミュニケーションの形が変わりつつあるなど、ここ数年間で起きた変化のスピード感は誰もが感じることだと思います。

このままのスピードで世界が変わったら、その先には一体何が待っているのでしょうか。その到達点を説明するのがシンギュラリティです。

シンギュラリティは近年のAIブームに乗じてその名が知られた概念ですが、シンギュラリティを説明するこの著書では、例えば人の脳にナノボットを仕込み、脳のアップロードを可能になるといった様々な技術革新の実現についても触れられています。シンギュラリティは単に汎用人工知能が開発されるというイベントではなく、複合的に、加速度的に科学技術が発達し、人類がポスト・ヒューマンに進化するという概念です。

また、この著書においては、2045年頃には、1000ドルのコンピューターの演算能力がおよそ10PFLOPSになると予想されています。10PFLOPSと言えば、日本の誇るスーパー・コンピューター「京」と同等の性能です。現在のスーパー・コンピュータークラスの高性能なコンピューターがばら撒かれることについても想定されているということです。ポスト・ヒューマンは、方向音痴な人がGoogle Mapの力を借りて最短ルートで目的地に到達するように人間を超えた行動を取るのかも知れません。

資金に乏しいベンチャー企業であるPEZY Computingが世界最高クラスの高性能なスーパー・コンピューターを開発したことは、シンギュラリティの前提のクリアに貢献するように思えます。科学技術の加速度的な発達にはコンピューターの進歩が必要ですし、素晴らしいコンピューターが普及するには、民間からのアプローチも必要でしょう。一見堅実で地味とすら感じるPEZYのスーパー・コンピューターは、シンギュラリティへの最短ルートなのかもしれません。

One comment

Add a Comment

メールアドレスの入力は任意です。(公開されることはありません)