組み込みコンピューティングに向けた、ハードウェアアクセラレーションの選択肢SYSTEM DESIGN JOURNAL(4/6 ページ)

» 2016年01月22日 07時00分 公開
[Ron Wilson(Editor-in-Chief, Altera),MONOist]

我が道を行くGPU

 Hot ChipsではGPUアーキテクチャに関する論文も充実しており、AMDとARMは同じ考え方を共有していました。しかし、ここでの目的上、最も参考になった論文は、ウィスコンシン大学マディソン校のオープンソースGPUデザインに関するプレゼンテーションでしょう。レンダリングエンジンとしてよりもむしろ汎用GPUとして設計され、ネコの鳴き声のような名前が付けられた「MIAOW アーキテクチャ」は、頂点生成とテクスチャマッピングを専用ハードウェアに任せているため、基礎をなす並列コンピューティング・エンジンをより明確に示しています。

 GPUアーキテクチャの複雑性を整理する方法の1つは、実は複雑化する一方のグラフィックスチップから出現したものではなく、Hexagonのような先進的DSPからの一連の進化段階と考えることです。

 まず、多数の積和演算ユニットを並列実行し続けることができる非常に有機的な数値計算アプリケーションがあるとしましょう。多数のユニットということは、高解像度画像内の各ピクセルの色や強さを計算するようなアプリケーションです。この場合、Hexagonに非常によく似たエンジンで、より多くのALUを搭載し、固定小数点ではなく浮動小数点を得意とするエンジンが必要でしょう。DSPユニットの基本的なSIMDベクトル構成は問題なく、数を増やせばよいだけです。

 広帯域ベクトルDSPは適するように思われますが、幾つかの課題があります。まず、1つの巨大SIMDエンジンの代わりに複数の大型SIMDエンジンを定義した方が、マシンの柔軟性が高まるはずです。超並列処理を利用できる場合は全て連携動作させ、中負荷のタスクが多数ある場合は独立動作させることが可能です。そのため、巨大同期ブロックのシリコン実装に伴う現実的問題もあって、GPU は通常、それぞれ独自のスレッドを持つことができる比較的独立した計算ユニット(Compute Units:CU)に分かれています。例えば、MIAOW (図 2)は8個のCUを備えています。小型のCUを多数搭載すると、1つの巨大SIMDマシンに比べて命令フェッチやデコードロジックに必要なリソースが増えますが、柔軟性が向上するため十分に見合います。

図 2. MIAOW GPU アーキテクチャ 図 2. MIAOW GPU アーキテクチャは GPU ハードウェアの謎めいた内部を明らかにしている

 次の課題はゲート数です。こうしたベクトルパイプラインは全て多数のゲートを使用し、サポートするレジスタファイルも巨大になる他、消費電力も無視できません。SIMDアーキテクチャは、命令フェッチおよびデコードロジックの重複を最小限に抑えることで役立ちますが、MIAOWではフェッチデコード・スケジュールパイプラインが64個のベクトルALU、1個のスカラALU、1個のロード/ストア・ユニットの集合に対して1つしかありません。とはいえ、さらなる削減が必要です。

 このCUと通常のCPUコアと比べた場合、明らかな違いが幾つかあります。

Copyright © ITmedia, Inc. All Rights Reserved.