13:09Steamのゲーム画面録画機能が正式公開。【特集】LANケーブルなんて自分で作ればいいじゃない。Proで試してみた要注意。Aシリーズ」(Llano)のチップアーキテクチャの概要を明らかにした。AFDSは米ワシントン州ベルビューで6月13~16日に開催されたカンファレンスで、AMDはそこでLlanoの内部バスアーキテクチャや、CPUコアとGPUコアの間でのデータ交換を可能にするゼロコピーの概要などを公開した。Llanoでは、CPUコアとGPUコアは単に同じダイの載せられたけででなく、新しいバスアーキテクチャで結ばれている。AFDSでの技術セッションやAMD関係者の説明で見えてきたLlano全体の推測図は下の通り。見てわかる通り、GPUコアは、特殊なバスアーキテクチャでユニファイドノースブリッジ(UNB)と接続されている。Bus(Garlic)」の2系統のバスが並列しており、Garlicの方は2本分のバスが走っている。LlanoのアーキテクチャPDF版はこちらより引いた見方をすれば、Llanoでは、GPUコアがCPUコアとハードウェア的には同格以上の扱いになっていることがわかる。Chip)では、CPUコア群は内部CPUバスに接続されているが、GPUコアは内部I/Oバスに接続されており、CPUコアやメモリコントローラとは距離があるのが一般的だ。Llanoの図で言えば、通常はGPUコアからI/Oコントローラへと伸びる左側のバスしか持っていない。Bus(Garlic)を備えている。このバスは、個々のCPUコアからメモリコントローラへのリンクよりも帯域が倍もある。Link(Onion)バスも備えている。メモリアクセスのバスが2系統になっている。この仕組みは、GPUコアに広帯域のメモリアクセスを維持しつつ、CPUコアとGPUコアの間での部分的なデータ交換を可能とするためのものだ。GPU中心のバス構成と言ってもいい豪華さだ。その目的は、5SIMDで400プロセッサと演算能力の高いGPUコア「Sumo」にデータをフィードすることにある。EシリーズAPU(Zacate/Ontario:ザカーテ/オンタリオ)」でも共通しているようだ。プログラミングの一貫性を維持するために、同世代のAPU間でアーキテクチャを統一していると見られる。そのため、Llanoの内部構成は、Zacate/Ontarioの内部構成から推測することが可能になった。Chipsで明らかにされている。Chipsで明らかにされたZacate/Ontarioアーキテクチャの図だ。Zacate/Ontarioのアーキテクチャ●大きく異なるGarlicとOnionの2つのバスより詳しく見ると、GPUコアとUVD3ユニットなどGPUに付属するユニットは、グラフィックスメモリコントローラに接続されている。Bus(Garlic)はユニファイドノースブリッジユニットの中のDRAMコントローラと直結している。この構造は、Zacate/Ontarioとも同じだが、Llanoでは1つ違いがある。LlanoのGarlicバスは2重になっており、それぞれが2チャネルのDRAMの片方のチャネルと結びついているという。GPUコアは2チャネルをフルに使うことができるため、Garlicバスを使ったアクセスは広帯域だ。ビデオメモリ領域へのアクセスの実効帯域は、最高でリードが17GB/sec、ライトが12GB/secとなる。GarlicバスのGPUコアからのピーク帯域は29.8GB/secで、メモリ帯域と一致している。通常、実効帯域はピーク帯域の70%以下に落ちるのが一般的なので、Garlicの帯域はフルに近い。ちなみに、LlanoのCPUコアは、単体ではメモリリード&ライトが8GB/secで、マルチコアアクセス時に13GB/secであるため、GPUコアの方がメモリ帯域では優遇されている。Garlicバスでのアクセスでは、CPUキャッシュのスヌープは一切行なわない。コヒーレンシを取るCPUバスとは接続していないのはそのためだ。アクセスするメモリ領域は、主に共有メモリ内のビデオメモリ領域だ。Garlicは、言ってみればディスクリートGPUのメモリバスに近いイメージのバスアーキテクチャだ。GarlicバスにRadeonという名前を冠した理由もわかる。Link(Onion)バスは、GPUコアをある程度CPUコア的に扱うためのバスだ。Onion経由のメモリアクセスでは、GPUコアが、これまでできなかった、CPUキャッシュへのスヌープが可能になる。アクセスするメモリ領域は、共有メモリ内のCPU側のシステムメモリ領域だ。CPUとのコヒーレントバスで、CPUとGPUの間でのデータ交換のために設置された。Link(Onion)バスは、その機能上から、CPUバスに接続されていると推測される。AMDマルチコアCPUの内部バスでは、コア間のシステムリクエストを調整するキューがあり、それが外部リンクとのクロスバースイッチと接続している。Onionは、直接かどうかは不明だが、このコヒーレントキューに接続されているはずだ。LlanoのCPUコア群は、従来通りL2キャッシュを経由したキャッシャブルなメモリアクセスパスのほかに、ライトコンバイン(WC)バッファ経由の書き込みができる。WCバッファは64byteで、各コアに備えられている。WCバッファ自体は以前からAMDコアが備えていた機能だが、APUでのGPUコアとのデータ交換と密接に結びついているため、特に図に描き加えた。Bridgeは、下の図のように単一のリングバスにCPUコアとそのキャッシュ、そしてGPUコアがそれぞれ同列に接続される構成となっている。BridgeのリングバスPDF版はこちら●細かく領域に分かれるLlanoの物理メモリでは、これらのGPUバスとCPUバスを使ったメモリアクセスはどうなるのか。これについてはAFDSで概要が説明された。下の図は、AFDSでの説明をベースに作成したLlanoのメモリ領域のチャートだ。Llanoのメモリアクセス領域PDF版はこちらLlanoでは、CPUコアとGPUコアが同じ物理メモリを共有しているが、依然としてCPUとGPUのメモリアドレススペースは完全に分かれている。ポインタで地続きに両メモリ領域にアクセスすることはできない。限定された形で、プログラム上で明示することで互いのメモリスペースにアクセスすることができる。Combine)」領域を設定できる。USWCはCPUでキャッシュされないメモリで、CPU側からも通常のアクセスができない。WCバッファを経由したアクセスとなる。Link(Onion)バス経由でアクセスするためのページを設定できる。GPUがアクセスするページは、CPUの通常のページオペレーションが行なわれないように固定する必要がある。GPUがアクセスできるようにできるメモリスペースも限られる。GPUコア側には、GPUのメモリシステムでアドレスされているローカルビデオメモリ領域がある。CPU側からはWCを経由することで、このGPUのローカルメモリにアクセスすることもできる。●メモリ領域でメモリパフォーマンスに大きな違い制約は多いものの相互にアクセスができるCPUコアとGPUコア。同じ物理メモリにアクセスするにも関わらず、そのメモリパフォーマンスはメモリ領域によって大きな違いがある。下の図は、左がCPUコアから3メモリ領域へのアクセスの経路と帯域を示した図。右側が同じ図のGPU版だ。書き込んであるパフォーマンスはAMDの発表数値だが、これはシステムやドライバで変化する可能性がある。大枠では変わらないはずだ。LlanoのメモリアクセスPDF版はこちらまず、CPUが通常のシステムメモリにアクセスする場合は、キャッシュ階層を経由する。シングルCPUコアのアクセス帯域はリード&ライトともに8GB/secで、マルチコアでのアクセスは13GB/secとなる。ピーク帯域の半分程度だが、それでもそれなりの帯域が確保されている。USWCにWCバッファ経由でアクセスする場合、書き込みは通常のキャッシャブルシステムメモリに対するものと同じ8~13GB/sec。ところが、リードはガクっと落ちて1GB/sec以下となってしまう。同じWCバッファ経由で、GPU側のローカルビデオメモリ領域にアクセスする場合は、ライトが8GB/secでリードが1GB/sec以下と、これも読み出しが非常に遅い。GPUサイドを見ると、GPUが自分のビデオメモリ領域にアクセスする場合は、すでに書いたように、リードが17GB/secで、ライトが12GB/secと最大帯域となる。Bus(Garlic)バスを使ったアクセスだ。Combine)にアクセスする場合はリード&ライトとも6~12GB/sec。Link(Onion)バスを使ってキャッシャブルメモリにアクセスする場合はリードが4.5GB/sec、ライトが5.5GB/secと、かなり遅くなる。Architecture)」をAFDSで発表した。FSAでは、究極的にはCPUコアとGPUコアが同じバーチャルメモリ空間をコヒーレンシを取りながら共有することで、両コア間の自由なデータ交換を実現する。Next」がAPUに統合された時になる。GPUとはメモリ階層もメモリアドレッシングも一新される。GPU内部のキャッシュもリード&ライトとなり、CPUとキャッシュコヒーレンシが維持されるようになる。次世代GPUコアのコヒーレンシPDF版はこちら現在は、まだその道半ばで、Llanoでは現在のバス&メモリコントローラのアーキテクチャで部分的な共有を実現しようとトライしたように見える。Llanoでのメモリ共有は、制約があり、プログラムで明示しなければならない上に、パフォーマンスの大きな違いにも気を配らなければならない。使いやすいとは、とても言えないのが現状だ。Llanoのアプローチは、あくまでも、FSAへの道程の中間解に過ぎないようだ。CPUアーキテクチャの移行PDF版はこちら最後に、以前のLlanoのGPUコア、Sumoのプロセッサコアの図に64-bit倍精度のオペレーションを書き込んであったが、Llanoのコアは単精度だけで倍精度をサポートしないことがAFDSで明らかになった。4800(RV770)世代から、アーキテクチャ的には倍精度をサポートしていた。Computing)市場へのLlanoの道はほぼ閉ざされたと言ってよさそうだ。