Transcript OpenCL C

FPGAによるメニーコア・プロセッサSMYLErefの評価環境の構築
グェン チュオン ソン, レイ ジャオ, 近藤 正章 (電気通信大学)
平尾 智也, 曽我 武史, 井上 弘士 (九州大学)
1. プロジェクト紹介
我々は,高性能・低消費電力なメニーコアプロセッサの実現と,その組み込みシステムへの応用展開を目的とし,NEDOのプロジェクトの中で,「低消費電力メ
ニーコア用アーキテクチャとコンパイラ技術」の研究課題を実施している.本プロジェクトは,1) 組込みシステムを意識した高効率な超並列処理の実現,2) 大幅な
動作時消費電力の削減,3) ソフトウェア生産性の向上,を重要な研究課題と位置付け,それらを解決する一方策として「仮想アクセラレータ(VAM: Virtual
Accelerator on Many-core)」の概念を導入し,その実行プラットフォームとしてメニーコアアーキテクチャSMYLErefとプログラム開発環境の構築を行っている.
2. メニーコア・アーキテクチャSMYLEref
IL1
タスクA
汎用
処理部
加速実行部
P
P
VAM
16-Core
汎用
処理部
P
VAM
64-Core
DL1
加速実行部
VAM
DL1
32-Core
P
P
ホストコア
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
DL1 DL1
L2$
DL1 DL1
DL1
DL1
Proc.
Cluster
Scalar Scalar Scalar Scalar
Core Core Core Core
仮想アクセラレータ
c
IL1
Scalar Scalar Scalar Scalar
Core Core Core Core
タスクC
加速実行部
IL1
Router
Packet Cont.
汎用
処理部
タスクB
IL1
IL1
様々な並列性を活用
• VAM内:データ/スレッド並列
• VAM間:タスク/アプリ並列
IL1
IL1
IL1
Mem. Controller
I/O Controller
SDRAM
• 仮想アクセラレータVAM: 多数の小規模コアを仮想アクセラレータ実
現のためのハードウェアプラットフォームとして活用.一方でコンパイラ
や並列プログラムはアプリケーション特性に応じて自らがVAMの構成
を決定しつつ,それに基づきコード生成や実行を行う.
Peripherals
• SMYLErefの構成: 数個のプロセッサコア(JST CRESTプロジェクトのGeyser )をバ
スで結合したクラスタを,2次元メッシュのオンチップネットワーク(NoC)で接続.
クラスタには,コアやL2キャッシュを備えるプロセッサクラスタと,チップ外部との
インターフェース(SDRAMコントローラなど)を持つペリフェラルクラスタがある.
3. コンパイルフロー
4. FPGAにおける評価環境の構築
C Source
Program
• CLtrump:株式会社フィックスターズで開
CLtrump
(C to OpenCL C)
Host Program
(OpenCL C)
発された、CプログラムをOpenCLに変換
するツール.ユーザによるインタラクティ
ブな並列化を支援.ホストプロセッサと、
アクセラレータ用のコードを出力.
Accelerator
Accelerator
Program
Accelerator
Program
(OpenCL
C)
Program
(OpenCL
C)
(OpenCL C)
Accelerator
Program
(OpenCL C)
Processor Cluster
Processor Cluster
ルータ
ML605評価ボード
ボード間通信
コントローラ
• OpenCLのサポート: ヘ テ ロ ジ ニ ア ス
アーキテクチャに対応、かつプラット
フォーム非依存なプログラム開発環境の
提供.
SMA ケーブル
L2 cache
Peripherals
SDRAM
Processor Cluster
L2 cache
Processor Cluster
•Bin. Generation
•VAM Architecture Synthesis
•Run-time Lib.
VAM Bin.
L2 cache
Peripheral Cluster
SMYLE OpenCL Compiler
Host Bin.
L2 cache
• SMYLE OpenCL Compiler:コア数やメ
モリ構成などのVAM構成を、コンパ
イル時に決定.
VAM
Config.
SMYLEref Architecture
P
c c c
c
c c c
c c c
c c c
c Graphics
c c
c c c
c c c
HD
c Video
c
Encoder
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c Auc
c dioc
c c
c c
c c
c c
c c
c c
Imaging
P
c
c
c
c
c
c
c
c
• SMYLErefの評価・検証を目的に,我々はFPGAを利用してSMYLErefの評価環境を
構築している.複数コアをFPGA上に構築し,それらを並列に動作させることで,評
価に要する時間の短縮や,OSやシステムソフトウェアの評価・検証も可能に.
• Xilinx社製のFPGAチップであるVirtex-6 (Virtex-6 XC6VLX240T)を使用.1ボードに
Geyserコアを8個程度しか実装することができないため,複数のボードを結合し,
ルータ間の通信をボード間に跨がって行うことでメニーコアの評価環境を実現.
ボード間の通信には高速シリアル通信インターフェースであるrocket I/Oを使用.
5. 評価
評価の仮定
• 各クラスタのL2キャッシュは不使用.周波数はGeyserコアが10MHz,クラスタ内部バスや
ルータが5MHz,DDR3-SDRAMが100MHzである.
• OpenCLのコンパイルフローは現在実装中であり、並列化にはSMYLEref評価環境向けに
最低限の機能を持つ簡易版pthreadライブラリを実装して評価.キャッシュコヒーレンス
機構が未実装なため,共有データ領域はuncachable領域として評価.
考察
• FFTではコア数分ではないものの,32コアまで性能が向上.
• LUでは,4コアの場合に比べ8コアを用いると性能が低下.ヒープ領域をuncachable領域
とし,同期や排他制御の度にその他データに対してもキャッシュフラッシュをしているた
め,コア数が増えるとバスやネットワーク混雑で性能が低下してしまうためと考えられる.
今後の課題:
① VAM向けの拡張を実装し,種々のアプリケーションで評価をしつつ,メニーコアプロセッサのあるべきアーキテクチャを検討していく予定である.
② 評価環境の設計データはできる限り公開し,メニーコアプロセッサのアーキテクチャ・ソフトウェア開発・評価環境として広く利用してもらうことを考えている.