2020年のHot Chipsは新型コロナウイルスの感染抑制のため、バーチャル開催ということになった。その代わり、参加費が200ドル以下と例年よりも大幅に割り引かれたので、開催2日目の数字であるが、出席者が2294人と2019年比で2倍程度になり、参加者数は断トツの新記録となった。

なお、今年の論文発表の申し込みは88件で、採択されて今回発表が行われた論文は25件となっている。採択率は28.4%であり、この比率は例年並みである。

  • Hot Chips 32

    この絵は、Hot Chips 32の開幕スクリーンで、バーチャル開催のビデオをキャプチャしたものである。ロゴは例年とほぼ同じであるが、Hot Chips 32と1年進んでいる

10年周期で訪れるテクノロジ主導の大きな飛躍

例年、Hot Chipsの初日はチュートリアルで、2日目と3日目が本会議ということになる。そして、2日目と3日目には、一般発表に加えて基調講演が行われる。今回の2日目の基調講演を行ったのはIntelの上級副社長兼チーフアーキテクトで、アーキテクチャ、グラフィックスとソフトウェアのジェネラルマネージャーのRaja Koduri氏である。

Koduri氏は、次の図のように10年あまりの周期で、テクノロジ主導の大きな飛躍が起こっているという。1980年頃には全ての情報のデジタル化が起こり、1990年を過ぎたあたりで、全ての情報がネットワークでアクセスできるようになり、2010年の前には全ての情報がモバイルでアクセスできるようになった。そして、現在ではすべてがクラウドで処理される時代になっているという。

そして、この先は1000億台のインテリジェントなデバイスがネットワークで結合される時代となり、全てがインテリジェントになる時代が来るとKoduri氏は予想する。それは、誰もがExaスケールの処理能力を使える時代であるという。

なお、Intelの新しいグラフィックスアーキテクチャはXeと名付けられているがこれはエクサを誰も(Everyone)が使えるという命名であるという。

  • Hot Chips 32

    ほぼ10年ごとに不連続な大きなテクノロジの進化が起こり、それに導かれて社会の進歩が起こってきている。次の進化は全てのものがインテリジェントになり、誰もがエクサスケールの計算能力を使えるようになるという

どこまでも求められるコンピューティングパワー

2010年頃までは、ムーアの法則にしたがい2年で処理能力が2倍になる時代であった。しかし、ニューラルネットの幕開けのAlex-Netから、GoogleのAlphaGo Zeroまでの期間には30万倍の計算能力が必要とされるようになっている。これは必要な計算能力が3.4カ月で倍増する時代に入ったことを意味している。

  • Hot Chips 32

    2020年頃までは、ムーアの法則の時代で計算能力の需要は年率2倍程度で増加していた。しかし、Alex-Netに始まるインテリジェンスの時代は3.4カ月で必要とされる計算能力が倍になる時代に入った

ただし、性能と汎用性とは反比例する関係があり、例えばチェス用に限定すれば人間のチャンピオンを凌ぐ人工知能が作れるが、汎用のロボットの頭脳を作るのはその何千倍も性能が必要になるという違いがあるという。

  • Hot Chips 32

    横軸は人工知能の性能で、縦軸は汎用性を実現する上でのハンディである。チェス専用なら人間のチャンピオンを凌ぐものが作れるが、汎用ロボットとなると1000倍以上のハンディがある

トランジスタ密度は5年で2倍程度にしかならず、ムーアの法則は息切れのように見られているが、ソフトウェアの性能向上なども含めて考えると、まだまだ、大きな性能向上の余地はある。

  • Hot Chips 32

    私たちが利用できる指数関数的な性能向上(ムーアの法則)は息切れのようにも思えるが…

ソフトウェアの生産性は、ハードウェアの効率を大きく上回っており、Pythonプログラムに比べてC言語化では47倍の生産性向上になっている。これに並列化やベクトル化、さらにAVX命令の使用などによる、ハードウェアの効率向上を合わせて考えると、性能は6万3000倍に向上している。

  • Hot Chips 32

    ソフトウェアの生産性と、ハードウェアの効率を組み合わせて考えると、Pythonに比べて並列ループ化で7000倍程度の性能向上が得られ、それにベクトル化、AVX命令を組み合わせると、性能向上は6万3000倍になっている

マシンラーニングの場合でも、1年半のソフトウェアの改善で、推論の時間が秒単位であったものがミリ秒単位に短縮され、学習時間は週単位から時/分単位に短縮されている。

  • Hot Chips 32

    マシンラーニングの場合でも、1年半程度の間に、ソフトウェアの改善で、秒単位の推論はミリ秒単位となり、週単位の学習は時、分単位に短縮されている

Koduri氏の親友で、AMDやIntelでの在籍時期もオーバラップしている天才エンジニアのJim Keller氏は、「There is still plenty of room at the bottom」と指摘していたという。

  • Hot Chips 32

    Jim Keller氏は、トランジスタや実装で、まだまだ大きな性能改善を実現する余地は残されていると主張していた

これからのトランジスタ性能向上技術

また、トランジスタを見てみると、フィンピッチを1/3に短縮し、性能を3倍に引き上げられる可能性は十分にある。

  • Hot Chips 32

    5年程度の期間があればフィンのピッチを1/3に短縮し、性能を3倍に引き上げられる可能性は十分にある

そして、フィンの替わりにシリコンナノワイヤを使えばチャネルの密度を2倍に高めることは可能で、トータルの性能向上は6倍となる。

  • Hot Chips 32

    フィンの替わりにナノワイヤを使えばチャネルの密度は2倍になる。これでトータル6倍の性能向上

さらにNMOSとPMOSのナノワイヤをスタックすれば、チャネル密度は2倍になり、総合では12倍の性能向上になる。

  • Hot Chips 32

    N型とP型のナノワイヤのチャネルを2段スタックにすれば電流は2倍になり、性能もさらに2倍。合計では12倍の性能向上となる

それにダイを重ねて実装する技術を使えば、トランジスタ密度はさらに2倍となり、全体の性能向上は約50倍となる。

  • Hot Chips 32

    ダイスタッキングを行えば、半分の面積に同じだけのトランジスタを詰め込めるので、総合性能は約50倍となる

消費電力の低減も可能に

トランジスタ密度は、こんな風にして増やせるかも知れないが、消費電力が問題という指摘もある。しかしそちらも電圧スケーリング、キャパシタンススケーリング、新パッケージング、新アーキテクチャなどで、1/50への削減は見込める。

  • Hot Chips 32

    信号振幅を減らす電圧スケーリング、寄生容量のスケーリング、パッケージングの改善、クロック周波数のスケーリング、それに加えて新アーキテクチャによって電力を1/3程度に減らす見込みを合わせて、1/50への電力低減を見込む

パッケージも微細化し、2D、2.5Dの実装、3Dの実装を行っていけば、電力を1/10に減らすあたりまでは道は見えている。さらにバンプピッチを10μm以下に微細化できる技術を開発すれば、この部分の低電力化も夢ではない。

  • Hot Chips 32

    パッケージングは2D、2.5D、3D化を進め、微細化することにより、電力を1/10程度までの低減の道筋は見えている

バンプピッチの低減であるが、現在のIntelの最高峰のFoverosテクノロジでもバンプピッチは50μmであるが、次世代のHybrid Bondingで10μmピッチを実現すればキャパシタンスが減り、低電力化が可能になる。

  • Hot Chips 32

    現在のIntelのFoverosテクノロジは50umのバンプピッチであるが、次世代のハイブリッドボンディングで10μmピッチが実現できるか?

Intelは実装技術の開発にも熱心で、Kaby Lake G CPUでは複数チップをインタポーザに載せる2Dテクノロジを使っている。また、Agilex FPGAでは、IntelのFPGAとファウンドリで作ったI/Oチップ、メモリメーカーの作ったHBMといった製造プロセスの異なるチップを1つのインタポーザ上に搭載した。

そして、Lakefield CPUでは複数ノードの半導体テクノロジで作ったチップを組み合わせて1つの製品とする実装を行った。右下の写真は、エクサスパコンのAuroraに使われる予定のIntel製のPonte Vecchio GPUの写真で、GPUチップの製造はTSMCで、GPU全体としては複数のファブの異なるテクノロジのチップが混在する製品となると言われている。また、巨大なGPUチップを作るのではなく、複数のチップレットを組み合わせて色々な製品が作れる設計になっていると言われている。

  • Hot Chips 32

    Intelは実装技術の開発にも熱心で、Kaby Lakeでは複数のチップを1つのインタポーザに載せる2D実装を使った。Agilex FPGAでは、複数のメーカーのチップを1つのインタポーザに載せる2.5D実装を使い、Lakefield CPUでは全てIntel製ではあるが、世代の異なるチップを混在して1つのインタポーザに搭載する。エクサスケールのAuroraスパコンに搭載されるPonte Vecchio GPUでは、Intel製だけでなく、他社製、異なるプロセス世代などのチップの混在が使われる

技術革新が生み出すさらなるメニーコアの時代

また、Intelはメモリ階層の充実にも熱心で、次世代のアーキテクチャではキャッシュからメインメモリに至るメモリ階層で容量10倍、バンド幅10倍、レーテンシの1/10への低減、消費電力の1/10化を目標としている。

  • Hot Chips 32

    IntelはCPUに直結されるキャッシュ、CPUのパッケージ内に付けられるメモリ、いわゆるメインメモリの階層で、容量10倍、バンド幅10倍、レーテンシの1/10倍、電力1/10化を目標に開発を行っている

より具体的にいうと10~数100GBの容量でレーテンシは10ns以下、消費エネルギーは0.5pJ/bitという感じである。

  • Hot Chips 32

    コンピュートに近いメモリは10~数100GBの容量で、レーテンシは10ns以下。消費エネルギーは0.5pJ/bitという仕様である

なお、この仕様は、現在のDRAMのメインメモリの容量のメモリを、SRAMの2次キャッシュなみの速度で動かし、1/1000の消費電力にしてくれという感じの要求である。しかし、トランジスタが50倍の速度で動作し、寄生容量が1/50に低減できれば、回路の動作スピードは2500倍となるので、全く実現不可能な仕様とは言えない。

そして、トランジスタ密度を50倍に改良して回路の動作速度を50倍にすれば、性能は2500倍となる。さらに、1/50への微細化を利用すればプロセサのコア数を2500倍に増やせる。

  • Hot Chips 32

    ここまでのトランジスタの改善で、性能は50倍になり、同じ微細化を使えば、プロセサコア数は2500倍になる

2500コアを集積したプロセサチップを1枚のボードに4個搭載すれば、ボード当たりのコア数は1万コアとなり、このボードを100枚使うシステムを作れば100万コアのシステムが作れる。

  • Hot Chips 32

    4チップを搭載するボードには1万コアが搭載されており、100枚のボードのシステムは100万コアのシステムとなる

これからのハードとソフトの接点を考える

次にアーキテクチャが、その有用性に与える影響について考えてみよう。有用性は、そのアーキテクチャが提供する性能改善量(Performance)と、その性能改善を利用できる仕事の範囲(Generality)の積で決まる。

  • Hot Chips 32

    アーキテクチャの有用性は、そのアーキテクチャの性能改善効果と、その性能改善を享受できる使い方の幅の積で決まる

x86を活用する開発者は2000万人以上おり、それらのエンジニアがx86のミドルウェアやライブラリ、コンパイラ、OS、ドライバなどを使っている。

  • Hot Chips 32

    x86の開発者は2000万人以上おり、ハードウェアに近いレベルの開発者から、ミドルウェアのフレームワークやランタイムを使っているエンジニアまで幅が広い

その中でもサービスやアプリレベルの開発者が多く、2000万人以上のエンジニアがこのカテゴリと見られる。仮想化や低レベルライブラリを使うエンジニアの数は50万人程度と見られる。

さらにOSやBIOSレベルの仕事ができるエンジニアは5万人程度に絞られる。

  • Hot Chips 32

    x86のソフトウェアエンジニアは2000万人いて、大部分はアプリケーションのエンジニアである。ミドルウェアや低レベルライブラリが扱えるエンジニアは50万人程度。OS以下の層が触れるエンジニアは5万人程度である

モバイルとクラウドの時代にはハードウェアとソフトウェアの接点は、ArmハードとAppleのOSやAndroid OS、あるいはx86ハードとLinuxであった。インテリジェンスの時代には、一億人以上のエンジニアが利用することになると考えられるが、ハードウェアとソフトウェアの接点はどのような形になるのか?

  • Hot Chips 32

    1億人以上のエンジニアが利用すると見られるハード/ソフトインタフェースはどのようになるのか

マシンラーニングの利用が急速に増えており、混合精度の計算負荷が急増している。

  • Hot Chips 32

    CPUの用途はAIの急速な発展で大きく変わり、Cascade Lake以降、低精度のヘテロな演算性能の向上が要求されている

このため、x86 CPUでもFP32に比べて、16bitのFP16の低精度演算の並列に2個実行すると言うような命令の追加が行われている。

また、アセンブラでプログラムを書くのに比べてC、C++、Javaというように高級言語にプログラムを書くようになり、コードの生産性は指数関数的に向上している。

  • Hot Chips 32

    高級言語1行あたり生成できる静的命令の数を示す。Pythonでは、1行ソースから数十万行のアセンブラの静的命令を生成できている

次の図は、x86のコード開発には忍者のように陰日向なく支えてくれる開発者たちが多く存在していることを指摘している。このような人たちの貢献は大きく、無視できない。ソフトウェアスタックの各レベルで忍者開発者をサポートすることが重要である。

  • Hot Chips 32

    x86のソフトウェア開発には忍者的な開発者が多数存在する。これらの開発者の貢献は大きく、スタックの各レベルで忍者開発者をサポートすることが必要である

とは言え、何百万人のエンジニアを簡単に雇えるわけはなく、開発の効率を高めることは重要である。ハードウェアアーキテクチャごとに専用のソフトウェアを開発するのは効率が悪い。しかし、アーキテクチャのヘテロ性を増していくと、それに逆比例して汎用性が低下していくのも事実である。

  • Hot Chips 32

    多種のハードウェアそれぞれにアプリケーションを開発するのは効率が悪い

その解決策として、IntelはoneAPIという活動を推進している。oneAPIは、ソフトウェアスタックのインタフェースを標準化する。次の図のようにアプリケーションとミドルウェアなどとのインタフェースはハードウェアとは無関係なoneAPIで標準化されるので、ソフトウェアはoneAPIに従ったインタフェース層を持つハードウェアであれば、どのハードウェアでもそのまま動作する。そして、仮想化やOS層とのインタフェースはレベルゼロのoneAPI、ファームウェアやBIOSとのインタフェースはレベルサブゼロoneAPIで抽象化されているので、それぞれのレベルでoneAPI ZeroやoneAPI Level SubZeroが一致していれば互換になる。このようなソフトウェアの作り方を推進していけば、ハードウェアごとにそれに直結したコードを作ることが必要になる部分は小さくなり、ソフトウェアの開発効率は改善する。

  • Hot Chips 32

    アプリケーションとのインタフェースはoneAPIで規定されており、ハードウェアとは独立になっている。さらにその下にはレベルゼロoneAPI、レベルサブゼロoneAPIが規定されている

ソフトウェアとハードウェアの接点はスケーラブルな抽象化層で、この層がLevel Oneのハードウェア層に繋がっている。そして、ハードウェアの中にLevel Zero、Level SubZero層があり、ファームウェアやBIOS層を通してCPU、GPU、AI用のマトリクス演算器などのハードウェアを操作する。

  • Hot Chips 32

    ソフトウェアとハードウェアの接点はスケーラブルな抽象化層で定義され、この定義はハードウェアとは独立に作られている。ハードウェアの中もLevel Zero、Level SubZero層が定義されており、レベルが下がるとハードウェアと近くなるように区分されている

このハードウェアとソフトウェアの抽象化層の目標は、1つのトランジスタも無駄にせず、全てのトランジスタが有効に使われるようにすることであるという。

  • Hot Chips 32

    このハードウェアとソフトウェアの抽象化層により1つのトランジスタも無駄にせず、全てのトランジスタを有効に使う

Auroraスパコンで実現を目指す未来のコンピューティング

Koduri氏は基調講演においてAuroraスパコン用に開発しているXeアーキテクチャのPonte Vecchio GPUを見せた。

  • Hot Chips 32

    Koduri氏が持っているのは、XeアーキテクチャのPonte Vecchio GPUである。20個程度のチップがインタポーザに搭載されているのが見える

そして2025年にはセンサから、エッジ、データセンターを1つの抽象化ソフトウェア層で統合するという目標を示した。この世界では10億以上のニューロンが含まれ、システムの規模はExaFlopsを超えZetta Flopsに届く規模まで1つのAPIでカバーするという未来を描く。

  • Hot Chips 32

    2025年までに性能や汎用性は1000倍を実現する。ソフトウェアスタックの上の方に大きな改善の余地がある。また、半導体やパッケージなどの下側の層にも大きな改善の余地が残されているという

そして、2025年のスパコンではセンサからデータセンター全体までのスケールで1つのソフトウェア抽象化層で操作できる未来の実現を狙っている、

  • Hot Chips 32

    2025年のスパコンではセンサからZetta Flopsのデータセンターまでを1つのソフトウェア抽象化層でカバーし、ソフトウェアの開発効率を大幅に引き上げる

Jim Keller氏が言うように、半導体テクノロジの微細化やパッケージングの改善といった下層のテクノロジでも色々な改善の余地は残っているし、ボードに搭載するコア数を増やすという性能改善の余地もある。

しかし、最も重要なのはoneAPIで、1つのハードウェアアーキテクチャ用に作ったソフトウェアが別のハードウェアアーキテクチャでも動くようにすることである。これが実現できれば、ハードウェアごとにアプリケーションを作る必要は無くなり、アプリケーションの開発効率が大幅に向上する。