つっても、非公開のを別につけているわけではない。
Copyright 1999- Jun Makino
2023/10 2023/09 2023/08 2023/07 2023/06 2023/05 2023/04 2023/03 2023/02 2023/01 もっと昔条件はネックバンドかイヤホン型でオーバーヘッドでないこと(長時間着用でうっとうしくないこと)、ノイズキャンセラがあること。有線であること。
定価2万超えだが公式ショップで1万2千円だ。
ただ、データ並列の考えかたって、 Cuda も OpenCL も一応建前としては 引き継いでるんだけど、「カーネルは1要素だけ処理するのを書く」で、 Cuda ではこれに沢山ハードウェアスレッドを用意して対応する。
CM では実はこれはもちろんメモリ領域は分割されるんだけど レジスタは分割されないで(これはまあそんなものはないからではある)、 ベクトル命令的に処理される。
ハードウェアの実装としてはマルチスレッドとベクトル命令って似てるん だけど全然違って、ベクトル命令のほうが1億倍くらい簡単なので、始めから そっちにしておけばもうちょっと幸せになれたのではないかという気が、、、
Tom's hardware のほうの SK Hynix HBM4 をGPUダイに載せるのでは記事。 元情報は同じっぽい。
これに対して、MN-Core では OoO ではないという以前に 少なくともチップレベルではPCとか命令フェッチユニットとかなくて 命令はチップ外から供給されて、来た命令が必ずその順番で実行される。
なので、この 50年間の計算機アーキテクチャの進歩をちゃんと勉強した人には、 何故 MN-Core みたいなアーキテクチャがアプリケーションに対応できるのか、 というのは簡単に理解できない話になっているように思われる。
これは、現代的な高性能プロセッサには必ずあるはずの、 OoO実行、レジスタリネーミング、キャッシュ、分岐予測、投機的実行、あと なんだっけ?が全部なくてどうしてアプリケーション動くの?みたいな話。
一方アプリケーションチューニングとか GPU へのポートとかやってると、 この辺は結構高い性能をだすことへの障害になってて助けには あんまりならない。あるいは特に必要なかったりする。
例えばの話、ベクトル化とか並列化できるループを考えると、これは ベクトル命令をサポートするハードウェアなら OoO実行、レジスタリネーミング、分岐予測、投機的実行は不要である。
キャッシュは微妙だが Cray-2 での S. Cray の選択はローカルメモリでキャッ シュじゃなかった。
これはどういうことかというと、並列化できる部分を実行するのに適した プロセッサと、そうでないところを実行するのに適したプロセッサは 全然違うかもしれない、ということである。
で、深層学習の計算量の全部、多くの HPC アプリケーションでもほとん ど全部、の計算は「並列化できる部分」である。
まあもちろんこんなのは「やってみせ …… ねば、人は動かじ」なんだけ ど、そういう意味では成功するのは理屈の段階でわかる人だということでもあ る。
「台湾のパワーチップ・セミコンダクター・マニュファクチャリング・コーポレーション(PSMC)はSBIホールディングス(HD)と共同で宮城県に工場を新設」
Top500の数字では、 4,742,808 コア。GPU が128コアで SPR が52*2コアだとすると1ノード872コア、 5439ノード。SPR 無視して 32634 GPU で、Rpeakが 1059.33PF で GPU 1つ あたり 32.5 TF。倍精度 52.43 TF のはずだったのが ピーク性能が 60% しか ないことになる。
さらに実行効率が 55.3% と。1.6GHz クロックで、 それぞれ 256演算する Xe コアが128個とすれば 52.43 TF, 900MHz とすると 29.49TF なので、おそらく 900MHz のクロックで動かしている。
で、24.7MW。1ノード 4.54KWで、 SPR2個 が1KW もっていったとして GPU 1 つ 600W。まあ 1.5KW くらいの可能性もあるがそれでも 500W。
これ一体どうするのという気が、、、 価格性能比でも電力性能でも A100 に全く届いてない。
リストみていると 12FFC で作った MN-Core 2 がまだ13位にいるわけでこれは結構すごい。H100 と倍は違わないということだから。
なんというか大変厳しい。色々悪い噂は流れてきていたもののここまで大惨事とは。
アーキテクチャがいつまでたっても CPU 的で、それだとこうなるのかな、、、という。
なんか大きな配列とか集合に対して、その要素毎に仮想プロセッサやスレッ ドが割り当てられるので、プログラムとしては1要素に対するものだけ書けば よくて、配列を実際にどうPEに割り当てるかとかは書かなくてもランタイムが 面倒みるみたいなの。
CM では、実際に主記憶(PE毎にある)が分割されて、多数の仮想プロセッサ に割り当てられた。
ただ、CM の時でも FPU の性能だそうと思うとこのマシンモデルでは無理 になる。これは、 Weitek FPU のもっているレジスタを上手く使わないと 高い性能がでないのに、仮想プロセッサモデルでは memore-to-memory の演算 になっちゃうから。
同じようなことが Cuda でも OpenCL でもあって、ちゃんと性能だすには ハードウェア毎にスレッド数とか変えないといけない。どうせそうなら、、、 という気はする。
あと Cuda だとスレッドはレジスタファイルを分割するので、すぐに数が たりなくなる。
PZCL ではそういう仮想プロセッサ的な話は完全に捨てていて、ハードウェ ア依存の固定スレッド数で動く。これは大変すっきりしていて素晴らしい。
BSPD 割とすぐにくる?