相次ぐCPUオープン化の動き
このところCPUのオープン化について、大きな発表が続いています。短い期間にMIPS、Arm、POWER、つまりx86以外の主要な32/64bitアーキテクチャが何らかの形でオープン化の方向に動いたのです。
たとえば2019年の3月にMIPSが最新のISA[1]と関連するIP(設計情報)などを無償公開しました。その4ヵ月後、7月半ばにはArmが一部のCPUなどのIPの利用を従来よりぐっと低額にした「Arm Flexible Access」を発表しました。その翌月、8/21にIBMはPOWERのISAを無償提供しました。
いずれも発表だけでなくトレーニングツールやサンプルの提供が含まれたもので、「まず取ってきて、すぐ試す」というオープンソースソフトウェア流のアプローチができるものです。
こうした動きはオープンなプロセッサとして急速に立ち上がりつつあるRISC-Vが誘導している部分が大きい、と筆者は考えています。
本稿ではこのプロセッサのオープン化の動きについて、2019年の4月に行ったWave Computing社とEsperanto Technologies社への取材を軸に解説します。
MIPS / Wave Computing
MIPSは1980年代のRISCアーキテクチャ草創期から現在まで続く、長い歴史を持つプロセッサの1つです。他企業による買収とそこからの独立を何度か繰り返し、2018年6月にWave Computingに買収されて現在に至ります。
Wave Computing はAI専用エンジンを開発しているシリコンバレーのスタートアップで、その心臓部となるデータフロー型プロセッサにMIPSコアを使っています。取材したのはArt Swift氏、当時の肩書きはPresident, MIPS AI Engine、つまりMIPS部門のトップでした。その後Wave社全体のCEOになりました。
まずMIPSの買収と、その後のオープン戦略について伺いました。
Art[2]:
Waveの技術とMIPSの技術をマージして、新しいMIPS AIとしての技術を作るためです。データセンタの中から、組み込みデバイスの端(エッジ)までをMIPSの技術で作ります。つまり共通の良く知られたハードウェアアーキテクチャとソフトウェアアーキテクチャで揃えるのです。
そのために我々はMIPSをオープンで、フリー(無料かつ自由)にアクセスできるようにしたいと考えました。
つまり、WaveがMIPSを買収したのは垂直統合のためだが、エッジまでMIPSで統合して作るためにはエッジ側でのユーザとの共創が重要になる、だからオープンにする、という戦略です。オープンにすることで「ユーザからより多くのエンスージアズム(関心・情熱)を得る機会を増やせること」が重要だ、と言います。
無償公開されたのは32/64bitの最新版MIPS命令セットアーキテクチャだけでなく、統合開発環境、Intel(Altera)およびXlinxのFPGAに対応したトレーニング、評価用パッケージが含まれます。取材時にArtはmicroAptiv coreも提供すると話し、実際、翌5月にリリースされました。これらはすべてエッジでのユーザの開発アクティビティを活性化するためだ、というわけです。
オープンソースにおけるコミュニティとエンスージアズム
Artは「オープンソースハードウェアに関して、我々は過去に学べる」と言います。
Art:つまり我々はオープンソースソフトウェアの草創期のことから教訓を得ています。コミュニティを作り、サポートを提供し、誰でもそれが使えるようにすることが重要です。RISC-Vコミュニティはこのモデルを推進するうえで偉大な仕事をしました。
そうすることでイノベーティブなこと、たとえば新しい方向のアーキテクチャを作ったりする人達が存在することを示し、そうやって新しいマーケットが作られる、その可能性が確認されたのです。
筆者:先日会ったとき、あなた自身のオープンソースソフトウェアの経験について少し話しましたよね。もう少し教えてください。
Art:昔、Linuxに関係がある企業に居たのですが[3]、そこでコミュニティをビルドするのがとても重要だということを学びました。Linuxをどうにしかして改善するぞ、というエンスージアズムなどはまあ驚くべきものでした。
そしてそれはオープンソースハードウェアをドライブするときでもまったく一緒なんだと思います。コミュニティをエンカレッジして(励まして)、自分も参加し、皆が簡単にアクセスできるようにして、すぐトレーニングできるようにして、と、いろんなやり方で人々に働きかけるんです。それが昔に私が学んだ重要なことです。
筆者:なるほど。
Art:そしてこのレッスンを僕らはTransmetaで繰り返したんだ[4]。覚えてますよね。(はい)はじめ、Linusと一緒に働いたしね。(ははは)
垂直統合でのユーザとの関係
WaveがMIPSを買収したのは垂直統合のためでしたが、エッジ側でのユーザとの共創のために、それをオープンにする。これを聞いて筆者はちょうど同じ日の午前に取材したNGINX社で語られた、F5によるNGINX買収のストーリとの相似性を感じました。
つまりF5 のような(ある種の)上流に位置するシステムを作っている企業は、もっと顧客のアプリケーションと緊密な立場でインテグレーションすることを望んでいる。一方、多くのユーザ企業のエンジニアが自社システムを構築する際にNGINXを試し、結果や問題、改善提案をコミュニティに出している。そしてNGINXの開発自身がその中で行われているのだから、そうしたユーザ企業の状況を最もよく知るポジションにいるのがNGINXだ、と。
つまりF5はネットワークの上流にいるが、NGINXはユーザ企業のR&D(研究開発)のただ中にいて、現場で何が望まれているかを最もよく知ることができる。それを知らずに、F5はその上流での競争力を維持できない。そういうことです。
筆者:これとWaveによるMIPS買収とオープン化の流れは共通する部分があると思えます。
つまりWaveの垂直統合の中でMIPSは一番下の層にあり、そこにユーザが居るわけですよね。
Art:はい。(安田が紹介したNGINXの事例とは)興味深い関係性がいくつもあります。Waveから見るとMIPS IPはAIアクセラレータとして使われています。しかしMIPSは顧客、ユーザとつながっています。(MIPSの買収によって)Waveはサプライヤーとカスタマー両方の立場に立てることになるため、このインテグレーションはとても価値があります。
我々のAIソフトウェアチームはとても強く、エンドユーザのAIアプリケーションにフォーカスしています。そこで垂直統合されたソリューションを作るためには、ユーザの内側にある実際のユースケースやオープンソースの蓄積が非常に重要です。
筆者:リアルな、また具体的(specific)なユースケースですね。
Art:そのとおり。人々が実際にどんなことをしているか、どんなAIをいまビジネスでデプロイしているか。これが最もエキサイティングなパートだからね。
今、オープンソースソフトウェアが強いパワーを発揮している大きな理由の1つが、この「サプライヤとユーザが同一である」ことだと思います。「現場で起きていることを最もよく理解している者が最も強い」のです。つまり昨今のプロセッサのオープン化の流れを理解するためのキーの1つはこの視点だと筆者は考えています。
ハードをソフトで作る
いまユーザ企業あるいはそこに近いところでのプロセッサを含めたハードウェア開発がかつてなく活発になっています。その要因として、現在のハード開発がとてもソフト寄りになっていることがあります。
Art:今、多くの作業がソフトウェア開発と同じ方法でできるようになっていますね。そのせいで1人の人間の能力が通常の10倍ほどに効いてきたりして、1人がどのくらいを作業をこなすか、予測しづらくなっています。
筆者:ソフトウェアの領域でまさに起きていることですね。
Art:もうあなたのところの学生も電子工学(electrical engineering)指向ではないですよね?
筆者:すごく少数派です。学ぶ時間が掛かるので。ソフトはイタレーションの速度が速い。自分の成長速度を気にしている学生にとってハードは時間が掛かり過ぎるのです。
Art:そこ、興味深いところです。なぜならオープンソースハードウェアはとても早く成長するからです。(そう思います。)Software、FPGAなどはとても早く進みます。
Artの指摘どおり、筆者の勤務先の学生でも、パワフルな学生は1年次からFPGAを触り、自分のハードウェアを作っています。年々ハードウェアの作業がソフト寄りになり、ソフトウェア開発の素早さを身につけ始めています。
ハードウェア開発作業がソフト寄りになるだけでなく、今、利用者に受け入れられるプロセッサとなるためには、ソフトウェア開発者が使い慣れたツールセットへの対応が不可欠です。つまりLLVMなど一般的なコンパイラ、QEMUなど一般的なCPUエミュレータなどに対応し、普通のLinuxがそのまま動くことなどが重要です。そのためにはオープンソースであることがとても重要で、そこに人を引き込むにはプロセッサ自体がオープンであることが必須です。
今はもうプロセッサはソフトのためにソフトで作る色合いが濃くなりました。そのための分厚いソフトウェア資産を積み上げるには、オープンソースであることがとてもうまく機能するのです。
RISC-VとEsperanto Technologies
ここ何年かのプロセッサのオープン化の動きはかつて見たことが無いほど活発ですが、それを強く牽引している要素の1つが RISC-V(ファイブ)であるのは間違いありません。RISC-Vはオープンなプロセッサを作ることを目的とした活動で、先に取り上げたMIPSプロジェクトと同様、1980年代に研究プロジェクトとして始まりました。その第5世代めの設計がRISC-Vというわけです。
そしてソフトウェアの重みが増したプロセッサ関連技術の蓄積と、現在の市場の状況がクロスして、RISC-Vはいま多くの企業とコミュニティの人たちを集めながら次々と新しい製品や応用がリリースされています。
このRISC-Vベースのプロセッサを開発している主要なスタートアップの1つに、Esperanto Technologiesがあります。起業したのはDave Ditzel氏です。 Crusoeプロセッサなどを作ったTransmeta社を起業した著名なプロセッサ技術者・経営者です。
筆者は2004年にTransmetaでDitzel氏を取材したことがあり[5]、それ以来何度か会っています。今回の訪米でも(Wave Computing 取材の前日に!)再びDitzel氏に取材する幸運を得ました。
まずEsperanto社の現状を伺いました。
Dave:EsperantoはRISC-Vで最大のスタートアップカンパニーになりました。100人以上の従業員がいます。ここ、マウンテンビューの他にオレゴンのポートランド、テキサスのオースティン、そして大きなエンジニアリング拠点がスペインのバルセロナにあります。またセルビアにも拠点を開きました。
筆者:なぜセルビアなのですか?
Dave:そこには多くの電子工学の技術者がいて、我々が必要としている特別なスキルを持っているのです。日本にも拡大しつつあります。今2人いますよ。(はい、知っています)日本の企業では、過去に(Transmeta時代の)顧客だったところから「RISC-Vどうなの?」と聞かれて、今、話をしています。内容は話せませんが、しかしあなたも知っているような大企業がRISC-VについてEsperantoと話をしていますよ。
オープンな場への貢献と、独自の選択
Esperanto社が開発しているAIプロセッサは高性能RISC-VコアであるET-Maxionを16個、並列演算のための小型RISC-VコアであるET-Minionを4,096個内包する大型のマルチコアCPUです。
筆者:MaxionとMinionはオープンになるのでしょうか?
Dave:おそらくはじめはオープンソースにはならないと思います。RISC-Vでは(必ずしも全部オープンになるわけではなく)一部はオープンソースになるし、一部はそうではないのです。
シンプルなプロセッサはオープンにするのが容易です。他の人がモディファイする事も容易です。だからローエンドプロセッサの領域でそうした努力を多く見る事ができるし、RISC-Vはその領域で極めてうまくいっている。
一方で、より高い性能を求めて開発すると、それにはコストが掛かるのですが、Esperantoはとても複雑な、最高性能のプロセッサとしてMaxionを開発しています。
筆者:なるほど。ところで(小規模コアである)Minionはベクタプロセッサで、このベクタ拡張命令ワーキンググループのco-チェアをEsperantoの人[6]がやっていますね。
Dave:ええ。しかしまだベクタ(SIMD)の命令仕様は固まっていません。
筆者:それはシリコンを作るのには難しい状況では……。
Dave:そう。だから我々はEsperanto自身の選択で作りつつあり、後で標準の仕様がどうなるかを見ることにしています。これはRISC-Vの1つ良いところでもあります。つまりイノベーションに関して、あなたがやりたいことがあれば何だってできる、ってことです。
だから我々は標準的なベクタの仕様について人々と協力しながら、Esperanto自身は強く AIに特化したことをやっているんです。違いは少しだけですが。
筆者:なるほど。拡張に対する自由度はRISC-Vに関する良いことの1つですからね。
Dave:我々の製品はそろそろ準備が整いつつある(ready)のですが、何しろEsperantoはシークレットな企業なので(笑)、それが製品化されることが確実になったときまでオフィシャルなアナウンスメントはしないんです。
それまでは我々が何かを変更しても誰も知ることがない(筆者註:困らない、知らないで済む、ということか)ですからね。
筆者:秘密って言われますけど、社名(タイトル)をストリートの前に出しましたよね!
Dave:ああ、今ハイヤリングしてるんですよ(笑)
筆者:(去年訪問した)前のオフィスはタイトルも何もありませんでしたからね。
Dave:ええ、ありませんでした。最初は100%シークレットで、少しずつ表に出てきています。
カンファレンスに出たりして、人々の前で「我々はRISC-Vをやっている、AIをやっている」と言うようになりました。
Esperanto社はコミュニティと協働して、RISC-Vそのものとともに成長しています。その姿を見ていると、このオープンなプロセッサ開発モデルがうまく機能していることが実感できます。
おわりに
筆者はオープンソースプロセッサの成功は、人々がそこに素早く集まってくるかどうかに掛かっていると考えています。1993年あたりのLinux草創期のことを思い出します。当時Linuxに対して多くの人々が懐疑的でした。たしかに動くよね、でもデータベースどうするの? その他の商用ソフト(CADとか)とかどうするの? この小さなLinuxシステムで実応用に足りる?と。しかし、結局多くの人がコミュニティに続々と集まり、努力して、最終的にはすべてのソフトウェアがLinux世界に飛び込んでこざるを得なくなりました。
どんどんとソフト開発に近づいているハード開発の様子を見ていると、かつてのオープンソースソフトウェアの草創期のように、オープンソースプロセッサにも続々と人が集まってきて、短い時間でどんどん強いパワーを放射するようになると思えます。逆にそうした人の流れを呼び込むためには、プロセッサをオープンにするのは必須・必然のことなのだ、とも言えます。
今、オープンソースとコミュニティのエンスージアズムの渦の中で多くのものごとが起きています。これに抗うと、長期的に競争力が失われてしまうことをオープンソースソフトウェアの歴史が示しています。
Artが言うように「我々はオープンソースソフトウェアから学べる」のです。
最後に、2019年9月30日に日立製作所 日立馬場記念ホール(東京・国分寺)にて「RISC-V Day Tokyo 2019」が開催されます。オープンなプロセッサに関心をお持ちの方はぜひ足をお運びください。参加方法など、詳細は下記URLをご覧ください。
- RISC-V Day Tokyo 2019
- https://riscv-association.jp/riscv-day-tokyo-2019/