ベクトルの火を消さないで

本日出張中なのですが、外出先の某ホットスポットでネットにつないで、これ見て思わず声を上げそうになりました・・・・
次世代スパコン:NECと日立、政府の開発計画から離脱(毎日)
次世代スパコン開発中断へ NECが業績悪化で撤退(朝日)
NEC、スパコン撤退を正式発表(読売)
ギャー!!このタイミングで!
新聞報道は京速計算機がどうとかいう話ばっかりですが私が叫びたいのは「次の商売のための強力な武器になりそうな独自技術を潰したらアカン!」ってことですよ・・・
ベクトルは今、キてます。本当に。IntelAMDnVidiaも次世代は汎用ベクトルプロセッサ指向なのは明々白々。参考:Sandy BridgeとBulldozer世代のCPUアーキテクチャ(PC Watch)
なのに世界で唯一ベクトルプロセッサの商売をずっと続けてきたNECが単に「やめます」ではあかんでしょう!
そりゃ確かに、下記では「スパコンはやめない」と言ってますが。(その意味で上記の読売の見出しは酷いですね)
NEC、国策の次世代スパコン開発から撤退、「事業は継続」と強調(ITPro)
でも、今までそもそもスパコンのビジネスは、国関係の調達をきっかけに多大な開発費をかけて開発し、その時点では大損覚悟で大規模システムを国に納め、あとで民間に小規模システムを展開して損を取り返していっていた(と思われる)わけです。民間にスパコンがさほど売れなくなった今となってはこのモデルではビジネスとして成り立っていかないと判断されているんでしょう。ということは、そもそも国に納める話をやめたら民間向けに開発するきっかけすら失っているわけで、現在のSX-9の後継は出ないかも知れない*1・・・ああ・・・
でもそれは、技術で売っている会社としては本当に正しい判断なのかと思うのです。そもそも京速の開発でNECと日立が組むと聞いたとき、これは(両者のメモリ部門の合弁である)エルピーダメモリが絡むのかなと思っていたんです(本当はどうか知りません、私は何の情報も持っていないので)。だって日立と言えばかつてベクトルスパコンを作っていたのですが、その最大の特徴はメモリシステムだったと思っています。絶対性能の高さもさることながら、連続アクセス『以外』の時の実効性能が素晴らしかった。それは「ちゃんとデザインされていたから」これに尽きます(東大の後藤英一先生がこだわっておられたからだと思うのですが)。
それに対して今のDDRメモリはベクトルプロセッサ向きに作られていません。DDRメモリで取り入れられているプリフェッチは連続するアドレスへのメモリアクセスにしか効きません。変なアクセスがあれば一気に性能は落ちます。それを解決するにはメモリが不連続なアドレスへのメモリ参照もプリフェッチできるように「ほんの少し」賢くなってもらえばいいのですが、そのためにはプロセッサが参照するべきメモリアドレスを大量に先出ししないとアクセスレイテンシが隠せません。ところがその「アドレス先出し」とベクトルプロセッサは大変相性が良い(通常のベクトルによるメモリアクセスは連続アドレス参照の先出しを意味しますし、gather/scatter命令(Larrabeeにもちゃんとある!)は不連続なアドレスの先出しを意味します)。実際日立のベクトルスパコンはいろんなタイプのアドレス先出しに対して優れた性能を示してました。それを測定した私の遙か昔の論文は残念ながらもうネットのどこにもありませんけど、それを引用して同様の測定をしたこの論文なら読めます(有料ですが)。
Evaluation of the Hitachi S-3800 Supercomputer Using Six Benchmarks
こういうベクトルプロセッサでのメモリシステムの知見をマイクロプロセッサに生かすべきだ、というのはもう10年も前に書きました。って前も書いた気がしますが。
いい机よりいい秘書を(情報処理学会インタラクティブエッセイ)
この時は中村宏先生に「秘書は飛べない=バンド幅が足りない」と言われてしまいましたが、今はバンド幅もさることながらレイテンシが深刻なわけで、それを隠すためにもとにかく秘書を雇わないと行けない=アドレス先出しをうまく処理しないといけないと思うのです。上記のPC Watchの後藤さんの記事でも言われているとおりベクトル処理の難点はセットアップ、端的にはベクトルに突っ込むデータをプロセッサの入り口に揃えるのにかかるレイテンシにありますが、メモリシステムが十分に賢ければ、アドレス先出しでかなり隠蔽できます。さらに、このデータが全部揃う前にパイプライン処理を始めることもできるでしょうし、プロセッサがベクタ処理のチェイニングをサポートしていれば処理がオーバラップしてこの種のレイテンシはどんどん隠れていきます(かつてCray-2は最高性能を優先してチェイニングをサポートしなかったら実効性能が上がらず苦しんでいました)。
この程度のことは、今や研究時間の0.1%くらいしかベクトルのことを考えていない私でも判るのですから、四六時中プロセッサのことを考えている専業の方々はもっと先に気付いているはずで、なぜその方向に行かないのかと外野の私は歯噛みをしています。それはもちろん市場原理というやつもあるのでしょう。メモリのインターフェースを独自にして様々なアドレスでのパイプライン的アクセスを許す(上原的にいうと「秘書を付ける」)のは大仕事です。でも一度作ってしまえば、きっとIntelAMDも話に乗ってくると思うんだけどなぁ・・・・その一番のチャンスが、京速の開発じゃないのかと思うんですがねぇ・・・
いやまぁ、しょせん外野のベクトルおたくの妄想かもしれませんが、それにしても「今からベクトルプロセッサの時代が来る!」と見えているこのタイミングでの撤退は残念でなりません。

*1:追記:もちろん民間でも買いやすい小規模機に絞って売り続ける選択はありそうなのでそういう意味での後継は出るかもしれませんが