レンガの壁を乗り越える
AMD コア チームは、技術的な問題と哲学的な問題の 2 つの根本的な問題に直面しており、何かを前進させるにはその両方を解決する必要がありました。
「純粋な技術とトランジスタの面では、難問に直面していました」とAMDのマクリ氏は語る。「CPUを超高速化する技術は、GPUでは大量の電力を消費してしまいます。GPUを超高速化する技術は、実際にはCPUの速度を著しく低下させてしまうのです。そこでまず直面したのは、これらをダイ上に共存させることでした。高速トランジスタと、CPUに最適な超低抵抗の金属スタックを組み合わせ、GPUには高密度の金属配線を最適化した中速トランジスタを採用しました。GPUの金属スタックは、アルファベットの「T」の形に似ています。CPUで言えば「Z」のようです。一方は低抵抗、もう一方は密度が低いため、抵抗が高くなります。CPUの性能が低下したり、GPUの消費電力が増加したり、パフォーマンスが低下したりしたら、誰も私たちに賞賛を寄せてくれないでしょう。そのため、これらを同じダイ上に共存させ、両方の性能を非常に優れたものにする必要があると分かっていました。そして、すぐにその壁に突き当たりました。」
当時のチームにどれほどのプレッシャーがかかっていたか想像してみてください。数十億ドル規模の資金と会社の将来が懸かる中、チームは最終的に、現行の45nmプロセスではハイブリッドソリューションは実現不可能だと悟りました。結局のところ、45nmはCPUに最適化されすぎていたのです。それを踏まえた上で、32nm SOI(シリコン・オン・インシュレータ)をいかに調整すれば、両方のニーズに効果的に対応できるかが課題となりました。もちろん、当時32nmはまだ研究室の外ではまだ存在しておらず、AMDにとって32nmノードを最終的に定義づけた要素の多くは、Fusionの追求から生まれたものでした。
残念ながら、32nmの課題が解決されるまでFusionの開発は行き詰まっており、解決策を見つけるまでに1年もの歳月を要しました。そしてようやく設計作業を開始できたのです。
一方、Fusionチームは哲学的な葛藤にも直面していました。トランジスタとプロセスの問題は大きな課題でしたが、少なくともチームは目指すべき方向とゴールラインを把握していました。トランジスタの課題は解決したものの、APUをいかに最適に設計するかという問題は依然として残っていました。
「ある意見は、GPUは主に視覚化に使うべきだ、つまり計算はCPU側で行なうべきだというものでした」とマクリ氏は語る。「別の意見は、そうではなく、ビューを両半分に分割すべきだ、というものでした。GPU側には優れた計算エンジンがあるのですから、それを活用するべきだ、というものでした。2つの陣営がありました。1つはCPUとGPUをより密結合させるべきだ、もう1つはより疎結合にするべきだ、というものでした。そこで、何を計算エンジンとして扱うべきかという哲学的な議論が必要でした。多くのモデリングを通して、コードに固有の並列性がある場合、ベクターエンジンには大きな利点があることを証明しました。」
ATIのStreamに関するこれまでの取り組みからすれば、これは明白なことのように思えたかもしれないが、問題はGPUにどれだけの負荷をかけるかだった。GPUは高度な並列性を備えているにもかかわらず、可視化に最適化されている。従来の並列計算タスクも処理できるが、オーバーヘッドが増える。オーバーヘッドが増えると、可視化への影響も大きくなる。ダイ上に無限のトランジスタが存在するのであれば、問題にリソースを投入し続けることも可能だ。しかし、もちろん、実際に使えるトランジスタの数は数億個しかない。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
「世界中のアプリケーションすべてを浴槽として考えてみてください」とマクリ氏は言う。 「浴槽の左端を見ると、最も並列性が低い、つまり本質的に並列性が低いアプリケーションと呼んでいます。その良い例はポインタ追跡でしょう。参照が必要です。次に取得すべきメモリを見つけるには、そのメモリを取得する必要があります。そこには並列性は全くありません。並列化するには、推測、つまり予測から始めるしかありません。次に浴槽の右端を見ると、行列乗算は超並列コードの好例です。すべてが非常にうまく分離されており、読み取りと書き込みのストリームはすべて独立しています。実に素晴らしいです。これを徹底的に並列化できます。これらのアプリケーションでは、GPUにマッピングするオーバーヘッドは非常に低いです。しかし、左端をうまく処理するには、低レイテンシのメモリシステムを構築する必要があり、それはあらゆる種類の問題を、高帯域幅でスループットに最適化されたメモリシステムを必要とするGPUに負荷をかけることになります。そこで私たちは、『どうすればエッジを縮小できるか』を考えました。浴槽の端を近づけることができればできるほど、より多くのプログラムを非常に効率的に処理できるからです。」
哲学的な議論の大部分は、AMDの既存の視覚化性能を維持しながら、バスタブのエッジをどれだけ縮小するかという点に集約されました。しかし当然のことながら、こうした議論が繰り広げられている間、AMDは市場で苦戦を強いられていました。