北森瓦版 - Northwood Blog (Author : 北森八雲. Since July 10, 2006.)
20% Boost of Performance on Future AMD APUs Without Overclocking?(Bright Side Of News)
New GPGPU approach promises 20 per cent performance boost(bit-tech.net)
Future AMD APU’s to Offer 20 Percent Boost in Performance through Improved GPGPU Design Architecture(WCCF Tech)
Engineers Boost Computer Processor Performance By Over 20 Percent(NCSU News)

ノースカロライナ州立大学の研究者が2月7日に発表した論文によると、新たなアプローチをとることによりCPUとGPUを1つのダイに統合したチップの性能が平均で21.4%向上するという。
 
このアプローチはCPUコアとGPUコアを1つのダイに載せたチップ―つまりAMDのAPUのようなProcessorの性能を引きだすことに特化した設計であるという。なおこの研究はNartional Science FoundationとAMDのAPUが出資して行われた。

Huihang Zhou准教授は次のように語った。
「CPUとGPUを1つのダイに搭載した“Fused architecture”と呼ばれるProcessorを最近のチップメーカーは製造しているが、このアプローチは製造コストを抑え、電力効率を引き上げることができる。しかし、現時点ではCPUコアとGPUコアはほとんどの場合それぞれ別々に動作している。今のところこれらが協調してプログラム処理/実行を行うことはなく、その分効率性が落ちている。今回の我々の研究はそれを解決するものだ」


この研究で興味深いのはAPU内のGPUコアの力を制御することで、APU全体の性能を引き上げることができることである。これはいわゆるGeneral purpose computingとして知られるもので、AMDやIntelがProcessor性能を劇的に引き上げるべく投入したFusion architectureの行き着く先として待たれているものである。

「我々の研究ではGPUコアが演算機能を担い、CPUコアはGPUコアが必要とするデータをメインメモリからプリフェッチする。この方法が最も効率が良い。なぜならCPUとGPUの得意分野を生かしているからである。GPUは演算性能で優れ、CPUはデータの柔軟な取り回し(Retrieval)や決定(Decision)を得意とする」

この研究はL3を有するAMD APUをシミュレートして行われ、実際の動作シリコンを使ったものではないようですがそれでも非常に興味深い内容です。
先日のFinancial Analyst DayでもAMDは2014年頃にCPUコアとGPUコアの融合がさらに1段階進み、タスクに応じてCPUコアとGPUコアを動的に切り替えられるものを出すとしており、さらにその先にはCPUコアとGPUコアが完全に融合した“Fusion”を予定していると述べています。今回の研究が将来の“Fusion”あるいは“Heterogeneous System Architecture”にどのように活かされるか期待されます。



論文のAbstractのみを訳してみました。論文の表題は“CPU-Assisted GPGPU on Fused CPU-GPU Architecture”となっており、日本語訳すると「CPUとGPUを融合させたアーキテクチャにおけるCPUコア補助下でのGPGPU(の有用性)」とでもなるでしょうか。

この論文はCPUとGPUが融合したProcessorアーキテクチャにおいて、新たなアプローチでCPUのリソースを最適に使用することでGPGPUプログラムの実行を容易にするというものである。今回の研究でモデルとしたものはCPUコアとGPUコアが1つに統合され、さらに両コアで共有するL3キャッシュをオンチップで搭載するチップである。別にオフチップでメインメモリを搭載する。CPU-assited GPGPUではCPUがGPU programを立ち上げ、Pre-execution programを実行する。Pre-execution programはGPUカーネルにより自動的に生成される。GPUカーネルは我々が作成したコンパイラアルゴリズムを用いており、Multiple-threadblocksのためのメモリアクセス命令を含んでいる。CPUが実行するPre-execution programはGPUスレッドに先行して動作するがこの理由としては2点、まずCPUのPre-execution threadはGPUカーネルからのメモリフェッチ命令のみで構成されており、浮動小数点演算そのものは含まないこと。2点目はCPUはより高い周波数で動作しており、命令レベルでの並列性はGPUのスカラコアよりも高度であることである。またCPUのL2キャッシュのプリフェッチャはCPUからのメモリトラフィックを増加させる。結果としてGPUスレッドのメモリアクセスがL3キャッシュにヒットさせられれば、そのレイテンシを劇的に減少させることができる。Pre-executionはユーザーレベルでのアプリケーションでも制御されるため、高い信頼性と柔軟性を得ることができる。我々が行ったベンチマークでは平均で21.4%、最大で113%の性能向上が認められた。

L3キャッシュが重要な役割を果たしていることが分かります。
“Llano”や“Trinity”はL3キャッシュを持ちませんが、もしこの研究結果を活かす方針であるならAMDもL3キャッシュ(あるいはそれに準じたGPUとCPUが共有するキャッシュ)を搭載したAPUを投入することとになるのでしょうか。

関連記事



○Amazon売れ筋ランキング CPU メモリ グラフィックカード マザーボード SSD 電源