SS研 科学技術計算分科会

アクセラレータ技術の現状と今後～HPCとアクセラレータ～
2008年10月22日
村上和彰
murakami@i.kyushu‐u.ac.jp
国立大学法人九州大学 教授
SS研 会長1

概要
高性能科学技術計算（HPC）とアクセラレータとの関係は歴史が長い。ベクトル処理もアクセラレータの一種であり、かつ、その元祖的存在である。ベクトル処理が時間軸方向のデータレベル並列処理だったものを空間軸方向に置き換えたものが現在主流となっているSIMD処理であり、CELLやClearSpeedがこれに該当する。
一方、信号処理の世界もアクセラレータとの付き合いは古い。DSP然り、最近ではDAPDNAのように数百個の演算器を２次元配列に配置したものも登場している。
世の中のテクノロジードライバーがコンシューマーエレクトロニクスに移行している昨今、今後のHPC業界におけるアクセラレータの進む方向性について議論する。

2

アクセラレータ（accelerator）とは？
• Wikipedia– Hardware accelerator: An additional unit of hardware
to perform some function faster than is possible insoftware running on the normal CPU.

• むらかみの定義– 主たるプロセッサにおける処理の一部を当該プロセッサに代わって実行することで、当該プロセッサ単独実行に比べて全体性能を向上（＝加速）させることを可能とする（主たるプロセッサとは異なるアーキテクチャの）プロセッサまたはハードウェア
3アクセラレータとは？

メイン
プロセッサ

結合路
（結合方式は？）アクセラレータ（加速方式は？）4アクセラレータ＆採用システム実例一覧
メイン
プロセッサ

結合方式

メインプロセッサ

結合方式

IBM Roadrunner

BladeCenter LS21
(Opteron DC 1.8GHz ×2)

ボード間：デュアル・ギガ
ビット・イーサネット

BladeCenter QS22
(PowerXCell 8i 3.2GHz×2)

4‐way SIMD×8‐way マル
チコア

東工大TSUBAME

Opteron DC 2.4GHz

ボード間：PCI‐X

ClearSpeed Advance
CSX600 PCI‐X Board

96‐way SIMD

DELL Precision T7400

Core2 Q9300
4コア2.5GHz

チップ間：PCI‐Express

Nvidia GeForce 9800
1.4GHz

8‐way SIMD×16‐wayマ
ルチコア

GRAPE

汎用プロセッサ・チップ

チップ間：共有バス

重力計算専用プロセッサ
GRAPE

並列演算パイプライン

九州大学EHPC/Eric

SH‐4

チップ間：SH‐4バス

二電子積分計算専用プ
ロセッサEric

初期積分計算専用コア
×1＋漸化計算専用コア
×4

CRAY XD1Opteron

チップ間：

FPGA

ハードウェア処理

CREST SFQ‐RDP

汎用プロセッサ・チップ

チップ間：共有バス

九州大学LSRDP（再構成可能大規模データパス
80GHz）MCM×4

2次元FPUアレイ(1024FPU/MCM)

NEC SX‐9

スカラ・ユニット

チップ内：

ベクトル・パイプライン
×8

並列ベクトル処理

IBM CELL/B.E.

PowerPC 4GHz

チップ内：共有リングバス（EIB）

SPE 4GHz ×8

4‐Way SIMD

IPFLEX DAPDNA‐II

DAP 166MHz

チップ内：共有バス

DNA 166MHz

2次元ALUアレイ(168ALU)

TI OMAP 3530

ARM Coretex‐A8

チップ内：共有バス

TMS320C64x DSP CoreVLIW DSP

採用システムアクセラレータ（加速方式）
アクセラレータ

加速方式

5アクセラレータ＆採用システム実例一覧
メインプロセッサ

結合方式

メインプロセッサ

結合方式

BladeCenter LS21
(Opteron DC 1.8GHz ×2)

ボード間：デュアル・ギガ
ビット・イーサネット

BladeCenter QS22
(PowerXCell 8i 3.2GHz×2)

4‐way SIMD×8‐way マル
チコア

東工大TSUBAME

Opteron DC 2.4GHz

ボード間：PCI‐X

ClearSpeed Advance
CSX600 PCI‐X Board

96‐way SIMD

DELL Precision T7400

Core2 Q9300
4コア2.5GHz

チップ間：PCI‐Express

Nvidia GeForce 9800
1.4GHz

8‐way SIMD×16‐wayマ
ルチコア

GRAPE

汎用プロセッサ・チップ

チップ間：共有バス

重力計算専用プロセッサ
GRAPE

並列演算パイプライン

九州大学EHPC/Eric

SH‐4

チップ間：SH‐4バス

二電子積分計算専用プ
ロセッサEric

初期積分計算専用コア
×1＋漸化計算専用コア
×4

CRAY XD1Opteron

チップ間：

FPGA

ハードウェア処理

CREST SFQ‐RDP

汎用プロセッサ・チップ

チップ間：共有バス

九州大学LSRDP（再構成可能大規模データパス
80GHz）MCM×4

2次元FPUアレイ(1024FPU/MCM)

NEC SX‐9

スカラ・ユニット

チップ内：

ベクトル・パイプライン
×8

並列ベクトル処理

IBM CELL/B.E.

PowerPC 4GHz

チップ内：共有リングバス（EIB）

SPE 4GHz ×8

4‐Way SIMD

IPFLEX DAPDNA‐II

DAP 166MHz

チップ内：共有バス

DNA 166MHz

2次元ALUアレイ(168ALU)

TI OMAP 3530

ARM Coretex‐A8

チップ内：共有バス

TMS320C64x DSP CoreVLIW DSP

採用システムIBM Roadrunner

疎密アクセラレータ（加速方式）
アクセラレータ

加速方式

6アクセラレータ＆採用システム実例一覧
メインプロセッサ

結合方式

メインプロセッサ

結合方式

BladeCenter LS21
(Opteron DC 1.8GHz ×2)

ボード間：デュアル・ギガ
ビット・イーサネット

BladeCenter QS22
(PowerXCell 8i 3.2GHz×2)

4‐way SIMD×8‐way マル
チコア

東工大TSUBAME

Opteron DC 2.4GHz

ボード間：PCI‐X

ClearSpeed Advance
CSX600 PCI‐X Board

96‐way SIMD

DELL Precision T7400

Core2 Q9300
4コア2.5GHz

チップ間：PCI‐Express

Nvidia GeForce 9800
1.4GHz

8‐way SIMD×16‐wayマ
ルチコア

GRAPE

汎用プロセッサ・チップ

チップ間：共有バス

重力計算専用プロセッサ
GRAPE

並列演算パイプライン

九州大学EHPC/Eric

SH‐4

チップ間：SH‐4バス

二電子積分計算専用プ
ロセッサEric

初期積分計算専用コア
×1＋漸化計算専用コア
×4

CRAY XD1Opteron

チップ間：

FPGA

ハードウェア処理

CREST SFQ‐RDP

汎用プロセッサ・チップ

チップ間：共有バス

九州大学LSRDP（再構成可能大規模データパス
80GHz）MCM×4

2次元FPUアレイ(1024FPU/MCM)

NEC SX‐9

スカラ・ユニット

チップ内：

ベクトル・パイプライン
×8

並列ベクトル処理

IBM CELL/B.E.

PowerPC 4GHz

チップ内：共有リングバス（EIB）

SPE 4GHz ×8

4‐Way SIMD

IPFLEX DAPDNA‐II

DAP 166MHz

チップ内：共有バス

DNA 166MHz

2次元ALUアレイ(168ALU)

TI OMAP 3530

ARM Coretex‐A8

チップ内：共有バス

TMS320C64x DSP CoreVLIW DSP

採用システムIBM Roadrunner

疎密アクセラレータ（加速方式）
アクセラレータ

加速方式7九州大学EHPC/Eric～Ericチップ～
Eric：（世界初の）二電子積分計算専用LSI• 仕様– プロセス：TSMC 0.13um, 6層, Cu配線
– チップサイズ：5 x 10mm2– 論理ゲート：4M– メモリ：704KB– パッケージ：セラミックPGA 257PIN, 50.8ｍｍ□

•動作テスト結果– 動作周波数200MHzでテスト→歩留まり約80%•消費電力– 2.1W

8九州大学EHPC/Eric～マルチコア（CMP）チップEric～
32b
SH-4 I/F
64b

IIC Program Memory(64KB)
16b
IIC Engine
IALU

FMUL&ADD

64b64b64b

ERF Table(128KB)
64b

FDIV
&SQRT

RC Microprogram Memory(64KB)
64b64b64b

RC Engine 1

RC Engine 0
EXP&ERF

IALU

FMUL&ADD

IALU

FMUL&ADDRC Engine 2
IALU

FMUL&ADD

64b
RC Engine 3IALU

FMUL&ADD

Register File

Register File

Register File

Register File

Register File64b64b64b64b64b

Data Memory (32KB/bank×8banks)
64b

IICエンジン(汎用RISCプロセッサ＋専用演算回路)

64b
SDRAM I/F
64b

RCエンジン(複数のマイクロエンジンからなるCMPアーキテクチャ)九州大学EHPC/Eric～EHPCボード（SH‐4+Eric×2）～

10

九州大学EHPC/Eric～EHPCシステム～

11

CREST SFQ-RDP
4.2 K
2TB memory module（FB-DIMM[DDR3@1333MHz, 128GB]×16 modules）

CMOS
CPU(1chip)

SFQ 0.5um process

ORN
...

FPU
ORN
::::

SFQ RDP（32FPU×32chips）（４GFLOPS／FPU)

...
ORN

SFQ Streaming Buffer（64Kb×2chips）

...
ORN

SB:::SMAC
SMAC

...

:1024FPU@MCM（３４chips）×4MCM

SMAC

Memory band width per MCM：256GB/ｓ(=16GB/s ×16 channels)

12

CREST SFQ-RDP～2×2 SFQ-RDP～
1 mm

配線資源

タイミング調整DFF

入力SR

配線資源

ALU

ORN

出力ＳＲ

ALU制御

設計周波数：25 GHz、バイアス電流：1.286 A
回路面積：5.90 x 3.68 mm2、接合数： 10839

13

CREST SFQ-RDP～半精度浮動小数点加算器～
SRL Nb 2.5 kA/cm2
standard process

設計周波数 : 20 GHz
性能 : 1 GFLOPs
接合数 : 10404 JJs
消費電力 : 3.1 mW
回路面積 : 5.86 ×5.72 mm214

CREST SFQ-RDP～半精度浮動小数点乗算器～
SRL Nb 2.5 kA/cm2
standard process

CONNECT
cooperated with SRL, NiCT, NU & YNU

接合数 : 11044JJs
回路面積 : 6.22×3.78mm2

設計周波数 : 25GHz
15CREST SFQ-RDP～1um多層配線プロセス～
500 nm

Nb-10層構造
M10 (CTL)

500 nmCC
M9 (COU)

400 nm
400 nm
300 nm
300 nm

JCBC
RES1

RCGC

SiO2

AlOx

JJ

M8 (BAS)

400 nm

RCBC

接合を含む
アクティブ層主グランド面と完全平坦化層

M8 (BAS)
GC

GC

GC

M7 (Main ground plane)

完全平坦化層C6C6C6C5C5C5C4C4C4C3C3C3

M6 (GND3)C5C4C4C3

M5 (PTL2)
M4 (GND2)C3C2

M3 (PTL1)
C2
M2 (GND1)C1
M1 (DCP)C2
M2 (GND1)

第２のPTL 層
第１のPTL層
DC電源層

各層でカルデラ平坦化

300 nm
150 nm
150 nm
150 nm
150 nm
150 nm
150 nm
150 nm
150 nm
200 nm
200 nm
200 nmM9 (COU)

Si Substrate

16

CREST SFQ-RDP～新ニオブ10層構造の断面SEM写真～
M10
CC
M9

JC

M8

RCGC
M7
M6
M5
M4
M3
M2
M1

M6
M4
M2

CC接合

BC

接合を含む
アクティブ層C6

主グランド面と完全平坦化層

RES

C5
C4
C3
C2

第２のPTL 層

C3C2C1

第１のPTL層
DC電源層

ADP613 No.4
17

アクセラレータ＆採用システム実例一覧
メインプロセッサ

結合方式

メインプロセッサ結合方式BladeCenter LS21
(Opteron DC 1.8GHz ×2)

ボード間：デュアル・ギガ
ビット・イーサネット

BladeCenter QS22
(PowerXCell 8i 3.2GHz×2)

4‐way SIMD×8‐way マル
チコア

東工大TSUBAME

Opteron DC 2.4GHz

ボード間：PCI‐X

ClearSpeed Advance
CSX600 PCI‐X Board

96‐way SIMD

DELL Precision T7400

Core2 Q9300
4コア2.5GHz

チップ間：PCI‐Express

Nvidia GeForce 9800
1.4GHz

8‐way SIMD×16‐wayマルチコア

GRAPE

汎用プロセッサ・チップ

チップ間：共有バス

重力計算専用プロセッサ
GRAPE

並列演算パイプライン

九州大学EHPC/Eric

SH‐4

チップ間：SH‐4バス

二電子積分計算専用プ
ロセッサEric

初期積分計算専用コア
×1＋漸化計算専用コア
×4

CRAY XD1Opteron

チップ間：FPGA

ハードウェア処理

CREST SFQ‐RDP

汎用プロセッサ・チップ

チップ間：共有バス

九州大学LSRDP（再構成可能大規模データパス80GHz）MCM×4

2次元FPUアレイ(1024FPU/MCM)

NEC SX‐9

スカラ・ユニット

チップ内：ベクトル・パイプライン
×8

並列ベクトル処理

IBM CELL/B.E.

PowerPC 4GHz

チップ内：共有リングバス（EIB）

SPE 4GHz ×8

4‐Way SIMD

IPFLEX DAPDNA‐II

DAP 166MHz

チップ内：共有バス

DNA 166MHz

2次元ALUアレイ(168ALU)

TI OMAP 3530

ARM Coretex‐A8

チップ内：共有バス

TMS320C64x DSP CoreVLIW DSP

採用システムIBM Roadrunner

疎密アクセラレータ（加速方式）
アクセラレータ

加速方式

18アクセラレータとは？

メインプロセッサ

結合路（結合方式は？）アクセラレータ（加速方式は？）19アクセラレータ＆採用システム実例一覧
メインプロセッサ

結合方式

メインプロセッサ

結合方式

IBM Roadrunner

BladeCenter LS21
(Opteron DC 1.8GHz ×2)

ボード間：デュアル・ギガ
ビット・イーサネット

BladeCenter QS22
(PowerXCell 8i 3.2GHz×2)

4‐way SIMD×8‐way マル
チコア

東工大TSUBAME

Opteron DC 2.4GHz

ボード間：PCI‐X

ClearSpeed Advance
CSX600 PCI‐X Board

96‐way SIMD

DELL Precision T7400

Core2 Q9300
4コア2.5GHz

チップ間：PCI‐Express

Nvidia GeForce 9800
1.4GHz

8‐way SIMD×16‐wayマルチコア

GRAPE

汎用プロセッサ・チップ

チップ間：共有バス

重力計算専用プロセッサ
GRAPE

並列演算パイプライン

九州大学EHPC/Eric

SH‐4

チップ間：SH‐4バス

二電子積分計算専用プ
ロセッサEric

初期積分計算専用コア
×1＋漸化計算専用コア
×4

CRAY XD1Opteron

チップ間：

FPGA

ハードウェア処理

CREST SFQ‐RDP

汎用プロセッサ・チップ

チップ間：共有バス

九州大学LSRDP（再構成可能大規模データパス80GHz）MCM×4

2次元FPUアレイ(1024FPU/MCM)

NEC SX‐9

スカラ・ユニット

チップ内：

ベクトル・パイプライン
×8

並列ベクトル処理

IBM CELL/B.E.

PowerPC 4GHz

チップ内：共有リングバス（EIB）

SPE 4GHz ×84‐Way SIMD

IPFLEX DAPDNA‐II

DAP 166MHz

チップ内：共有バス

DNA 166MHz

2次元ALUアレイ(168ALU)

TI OMAP 3530

ARM Coretex‐A8

チップ内：共有バス

TMS320C64x DSP CoreVLIW DSP

採用システムアクセラレータ（加速方式）
アクセラレータ

加速方式

20

加速方式一覧（1/2）
方針
基礎体力の強化方式

活用対象

クロック周波数の向上✔✔✔

メモリアクセスレイテンシの短縮✔✔✔

メモリバンド幅の向上✔✔✔

クロック周波数向上✔

メモリサイズの拡大

✔
✔

✔✔✔

命令セットアーキテクチャの最適化✔

カスタム命令特徴的・固定的処理
データ依存関係

SIMD演算命令

データレベル並列性

ベクトル演算命令

データレベル並列性コンパイラ最適化機能の強化
並列化

アクセラレータ✔✔✔

信号線数拡大
実行命令数の削減

メインプロセッサ

✔✔✔
✔✔✔

✔

✔✔✔
✔✔

✔✔

✔

データレベル並列性✔

✔✔✔

SIMD演算空間的並列性✔

✔✔✔

ベクトル演算

時間的並列性

データレベル並列処理

命令レベル並列処理✔✔

命令レベル並列性✔✔✔

命令パイプライン処理

時間的並列性✔✔✔

スーパースカラ処理

空間的並列性✔✔✔
21

加速方式一覧（2/2）
方針
並列化（続き）カスタム化

方式
スレッド／タスクレベル並列処理

粗粒度並列性メインプロセッサ

アクセラレータ✔✔✔

✔✔✔

マルチスレッディング✔✔

マルチコア／メニーコア✔✔✔

ASIP（特定用途向けプロセッサ）

特徴的・固定的処理✔✔
✔

再構成可能プロセッサ✔
特徴的・固定的処理

✔✔

布線論理

✔✔

再構成可能ハードウェア✔

階層化メモリ参照の局所性✔✔✔

スクラッチパッドメモリ

投機化

✔✔✔

構成可能プロセッサ
ハードウェア処理

階層化

活用対象

✔✔

キャッシュメモリ

✔✔✔

仮想記憶

✔✔✔

先行制御

動的振舞の規則性✔✔✔

命令プリフェッチ

参照の連続性✔✔✔

データプリフェッチ

参照の規則性✔✔

動的振舞の偏り

✔✔✔

予測制御

✔✔

分岐予測

✔✔✔

値予測

✔

22

アクセラレータ向き主要加速方式
方針方式

実行命令数の削減

命令セットアーキテクチャの最適化

活用対象

カスタム命令特徴的・固定的処理
データ依存関係

SIMD演算命令

データレベル並列性

ベクトル演算命令

データレベル並列性

コンパイラ最適化機能の強化
並列化

カスタム化

メインプロセッサ

アクセラレータ

✔

✔✔✔
✔✔✔

✔

✔✔✔
✔✔

✔✔

✔

データレベル並列性✔

✔✔✔

SIMD演算空間的並列性✔

✔✔✔

ベクトル演算

時間的並列性

データレベル並列処理✔✔

命令レベル並列処理

命令レベル並列性✔✔✔

スレッド／タスクレベル並列処理

粗粒度並列性✔✔✔

マルチスレッディング✔✔

マルチコア／メニーコア✔✔✔

ASIP（特定用途向けプロセッサ）

特徴的・固定的処理

✔✔✔
✔✔✔
✔✔

構成可能プロセッサ✔

再構成可能プロセッサ✔

ハードウェア処理

特徴的・固定的処理

✔✔

布線論理

✔✔

再構成可能ハードウェア✔

23アクセラレータとは？

メインプロセッサ

結合路（結合方式は？）

しかし、並列処理度に比例して増加するメモリアクセス頻度（メモリプレッシャー、要求メモリバンド幅）にどう対処するか？

アクセラレータ（加速方式は？）• コア内はデータレベル並列性を活用したカスタム化• または、汎用性を重視してデータレベル並列処理（SIMD演算）のみ• 上記と直交する形でマルチコア化
24アクセラレータの課題～増大する要求メモリバンド幅にどう対応するか？～
従来のアクセラレータの場合（SIMD演算、ベクトル演算）

大規模データパス（LSRDP）の場合

25

大規模再構成可能データパス（LSRDP: Large Scale Reconfigurable Data Path）
LSRDP
汎用プロセッサ(GeneralPurposeProcessor)

FPU

FPU

FPU ...

FPU

ORN::

FPU

FPU

:

FPU ...

– 多数の演算器（FPU: FloatingPoint Unit）とそれらを相互接続する網（ORN: Operand Routing
Network）を搭載し、:• FPUで行う演算内容• ORN上のFPU間接続関係

FPUを再構成可能としたデータパス

ORN

FPU

FPU

FPU ...

:::FPU

SB

SMAC
バス

...

:

データレベル並列性とデータ依存関係を同時に活用する
ことにより、要求メモリバンド幅を抑えつつ高い演算性能を実現！

主記憶26

アプリ例：１次元時間発展熱伝導方程式
T ( xi , t j +1 )[]= T ( xi , t j ) + A * T ( xi −1 , t j ) + T ( xi +1 , t j ) − 2T ( xi , t j ) (Δx)[= D * T ( xi , t j ) + B * T ( xi −1 , t j ) + T ( xi +1 , t j )]32×32 LSRDP：32入力、16出力、728 FPUs (add, mul)、364即値

2

アプリ例：１次元時間発展熱伝導方程式
正規化した実行時間（3.2GHz SimpleScalarの実行時間を1）

主記憶メモリバンド幅[GB/sec]

M:26×20=520
L: 70×32=2240

アプリ例：二電子積分計算
正規化した実行時間（3.2GHz SimpleScalarの実行時間を1）

主記憶メモリバンド幅[GB/sec]

L: 70×32=2240

アクセラレータ＆採用システム実例一覧
メインプロセッサ

結合方式

メインプロセッサ

結合方式

IBM Roadrunner

BladeCenter LS21
(Opteron DC 1.8GHz ×2)

ボード間：デュアル・ギガ
ビット・イーサネット

BladeCenter QS22
(PowerXCell 8i 3.2GHz×2)

4‐way SIMD×8‐way マル
チコア

東工大TSUBAME

Opteron DC 2.4GHz

ボード間：PCI‐X

ClearSpeed Advance
CSX600 PCI‐X Board

96‐way SIMD

DELL Precision T7400

Core2 Q9300
4コア2.5GHz

チップ間：PCI‐Express

Nvidia GeForce 9800
1.4GHz

8‐way SIMD×16‐wayマルチコア

GRAPE

汎用プロセッサ・チップ

チップ間：共有バス

重力計算専用プロセッサ
GRAPE

並列演算パイプライン

九州大学EHPC/Eric

SH‐4

チップ間：SH‐4バス

二電子積分計算専用プ
ロセッサEric

初期積分計算専用コア
×1＋漸化計算専用コア
×4

CRAY XD1Opteron

チップ間：

FPGA

ハードウェア処理

CREST SFQ‐RDP

汎用プロセッサ・チップ

チップ間：共有バス

九州大学LSRDP（再構成可能大規模データパス
80GHz）MCM×4

2次元FPUアレイ(1024FPU/MCM)

NEC SX‐9

スカラ・ユニット

チップ内：ベクトル・パイプライン
×8

並列ベクトル処理

IBM CELL/B.E.

PowerPC 4GHz

チップ内：共有リングバス（EIB）

SPE 4GHz ×8

4‐Way SIMD

IPFLEX DAPDNA‐II

DAP 166MHz

チップ内：共有バス

DNA 166MHz

2次元ALUアレイ(168ALU)

TI OMAP 3530

ARM Coretex‐A8

チップ内：共有バス

TMS320C64x DSP CoreVLIW DSP採用システム

アクセラレータ（加速方式）
アクセラレータ

加速方式

30

CREST SFQ‐RDP
4.2 K
2TB memory module（FB-DIMM[DDR3@1333MHz, 128GB]×16 modules）

CMOS
CPU(1chip)

SFQ 0.5um process

ORN
...

FPU
ORN
:::

:

SFQ RDP（32FPU×32chips）（４GFLOPS／FPU)

...
ORN

SFQ Streaming Buffer（64Kb×2chips）

...
ORN

SB::

:
SMAC
SMAC

...

:

1024FPU@MCM（３４chips）×4MCM

SMAC

Memory band width per MCM：256GB/ｓ(=16GB/s ×16 channels)31

HPCとアクセラレータの今後
テクノロジ・ドライバ•HPCマシン
スパコン時代（1980～1990中）– 集積回路技術– 実装技術– コンパイラ技術•技術移転

PCクラスタ時代（1990中～現在）– 高性能汎用マイクロプロセッサ製品移転– 高集積メモリ– 高速インターコネクト•汎用大型計算機

PC&LAN2010年のHPCマシン– 高性能＆低消費電力組込みプ
ロセッサ＋アクセラレータ– 高速＆知的インターコネクト

技術フィードバック
CE
情報家電／携帯情報端末
32