COOL Chips XVIIIにおいてWisonsin-Madion大学のグループが「MIAOW」と呼ぶオープンなGPUを発表した。RTLなどが公開されているCPUは、メーカーが公開しているOpenSPARCやLEON SPARCや大学などが開発したFabScalarなど各種のものがあり、これらをベースにマイクロアーキテクチャを変更して、その効果を検証するという研究ができるのであるが、GPUではこのようなオープンなものが無く、研究環境がない。MIAOWは、RTLを公開するオープンなGPUを提供することを目的としており、このRTLを自由に変更してGPUアーキテクチャの研究を行うことができる。

MIAOW(日本語ではミャーオ)は「Many-core Integrated Accelerator Of Wisconsin」の頭文字をとった名前である。グラフィックス専用機能は含んでいないがAMDのSouthern Island GPUの命令のサブセットをサポートしており、OpenCLで作成したAMD GPUのプログラムが動くという。

MIAOWについて発表するWisconsin-Madison大学のRaghuraman Balasubramanian氏

しかし、MIAOWの開発グループはAMDとは特別な関係はなく、Southern Island GPUの命令セットなどについては公開されている資料をもとに開発を行ったとのことである。

MIAOW GPUは32個のコンピュートユニットを持ち、それらに対して並列に命令をディスパッチするUltra Thread DispatcherとL2キャッシュとメモリコントローラ、メモリとで構成されている。各コンピュートユニットは、命令のフェッチ、デコード、スケジュールを行うブロックとロードストアユニット(LSU)、ベクタALU、スカラALUとローカルメモリであるLDS(Local Data Share)、ベクタ汎用レジスタ(VGPR)とスカラGPR(SGPR)で構成されている。

MIAOW GPU全体(左)と1個のコンピュートユニット(右)の構成

なお、AMDのGPUでは、(a)のプロセサを複数搭載することで性能を上げているが、MIAOWはアーキテクチャの研究を目的としているので、1個のプロセサという構成になっている。しかし、これを複数プロセサがL2キャッシュを共有する構成に拡張するのは難しくないと思われる。

MIAOWのコンピュートユニットのハードウェア構成は次の図のようになっている。命令フェッチユニットは40個のPC(Program Counter)を持ち、最大40個のWavefront(NVIDIAの用語ではWarp)を同時並行的に実行することができる。命令の発行は1サイクルに1命令(と書かれている)で、インオーダ発行である。

ベクトル演算器は16wideで、64スレッドで構成されるWavefrontの1命令の実行には4サイクル掛かると考えられる。従って、命令の発行は4サイクルに1命令で良いはずである。実行ユニットとしては、このベクトル演算器の他に、スカラ演算器とロードストアユニット(LSU)がある。LSUにはローカルデータシェア(LDS:ローカルメモリ)とGPUのグローバルメモリが接続されている。スカラ用のレジスタファイル(SGPR)は512エントリ、ベクタ用のレジスタファイルは1024エントリのものが64枚存在する。つまり、40Wavefrontを実行する場合は、1スレッドあたり平均25.6個のレジスタが使用できる。

MIAOWのハードウェア構成

AMDのSouthern Island GPUの命令セットには400種程度の命令があるが、MIAOWはグラフィックス関係の機能はサポートしておらず、64ビットのオペランドを扱う倍精度演算などもサポートしていない。ということで、サポートしているのは次の図の95命令となっている。

MIAOWがサポートしているのは、上記の95命令で、グラフィックス関係の命令や64ビットオペランドを扱う命令はサポートしていない

しかし、この範囲のサポートで、Southern Island GPUのOpenCLのプログラムは変更なしに動かすことができ、AMDのAPP SDKのOpenCLベンチマークが動作しているという。

MIAOWはRTLが公開されているので、それを変更して色々な研究が行えるという柔軟性を持っている。例えばスレッドブロックの圧縮部分のアーキテクチャの研究、回路故障の予測などの新しい方向性の研究、あるいはRTLモデルに故障を注入して一過性の故障の影響を評価する研究などを行うことができる。

MIAOWは、マイクロアーキテクチャの研究、新しい方向性の研究、一過性の故障の影響の評価など各種の研究に使える

オリジナルのMIAOWは、レジスタファイル、キャッシュ、メモリコントローラなどはハイレベルのビヘービアモデルを使っているが、XilinxのVertex 7 FPGAを使った「Neko」(ミャーオに対する猫)という実装も開発している。

XilinxのVertex 7 FPGAを使った実装を開発中。コンピュートユニットは1個

FPGA版のNekoが出来れば、RTLに比べると大幅に速く動作するので、長いプログラムを動かして上記のような評価ができるようになるので、研究のターンアラウンドが短くなり、評価の精度が向上すると考えられる。

結論として、MIAOWはアーキテクチャを変えてGPUを研究することを可能にする。これでコミュニティーからのサポートが集まれば、オープンソースの実シリコンのGPUを作ることもできるようになる。さらに、オープンソースのハードウェアの開発を推進する起爆剤になる可能性もある。

MIAOWはアーキテクチャを変えてGPUを研究することを可能にする。成果はhttp://www.miaowgpu.orgで公開している。

これまでは、GPUについてはオープンなRTLが無く、アーキテクチャの研究が難しかったが、MIAOWの登場でそのバリアがかなり下がると期待される。なお、これらのMIAOWプロジェクトの成果は、http://www.miaowgpu.orgで公開されている。

COOL Chips XVIIIの記事一覧はコチラ