[過去ログ] (情報科学)技術的特異点と科学技術等 2 (ナノテク)©2ch.net (319レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
217
(1): yamaguti 2018/07/30(月) 06:13:12 ID:wOzVCFyH(1/50)調 AAS

This is the html version of the file 外部リンク[php]:atrg.jp
. Google

Page 1

ZettaScaler/PEZY-SCの紹介と今後の方向性
〜自動チューニング技術の現状と応用に関するシンポジウム発表資料
2016/12/26
PEZY Computing, K.K.
218
(1): >>217 2018/07/30(月) 06:15:12 ID:wOzVCFyH(2/50)調 AAS

Page 2

PEZYグループ

株式会社PEZY Computing (ペジーコンピューティング)
・独自メニーコア・プロセッサ開発
・同汎用PCIeボード開発
・同独自システムボード開発
・同アプリケーション開発
・半導体2.5次元実装技術開発
・ウェハ極薄化応用技術開発
創業:2010年1月  社員数:23名

UltraMemory株式会社 (ウルトラメモリ)
・超広帯域独自DRAM開発
・DRAM積層技術開発
・磁界結合メモリIF開発
・ウェハ極薄化応用技術開発
・広帯域、高速DRAM開発
・最先端汎用DRAM受託開発
創業:2013年11月  社員数:41名

株式会社ExaScaler (エクサスケーラー)
・液浸冷却技術開発
・HPC液浸システム開発
・液浸スパコンシステム開発
・液浸冷却水槽販売
・液浸冷却システム販売
・液浸冷却用ボード類販売
創業:2014年4月  社員数:13名
219
(1): >>218 2018/07/30(月) 06:16:03 ID:wOzVCFyH(3/50)調 AAS

PEZY Computing:メニーコア・プロセッサ
UltraMemory:超広帯域積層カスタムDRAM
ExaScaler:液浸冷却システム
? 組み合わせることにより、最終システムとしてスーパーコンピュータを開発
? 各社の要素技術を個別に製品展開

Page 3

主な内容

? ZettaScaler1.x/PEZY-SCの概要
? プログラミング概要
? 今後の展開
? その他の話題

Page 4

ZettaScaler1.x/
PEZY-SCの概要
220
(1): >>219 2018/07/30(月) 06:18:31 ID:wOzVCFyH(4/50)調 AAS

Page 5

ZettaScaler-1.xシステム

Suiren(睡蓮) ZettaScaler-1.5
2014.10Install 2016.5 Upgrade (32node to 48node)

Shoubu(菖蒲) ZettaScaler-1.6
2015.6Install 2016.5 Upgrade

Suiren Blue(青睡蓮) ZettaScaler
2015.5 Install 2016.5 upgrade

Ajisai(紫陽花) ZettaScaler-1.6
2015.10Install 2016.5Upgrade

Satsuki(皐月) ZettaScaler-1.6
2016.5 Install

Sakura(さくら) ZettaScaler-1.6
2016.5 Install
221
(1): >>220 2018/07/30(月) 06:19:21 ID:wOzVCFyH(5/50)調 AAS

Page 6

Top500
? 世界で最も高速なコンピュータシステムの上位500位までを定期的にランク付けし、評価するプロジェクト。
1993年に発足し、スーパーコンピュータのリストの更新を年2回発表
? 単位:FLOPS(Floating Operation per Second)浮動小数点命令を1秒間に何回実行するか?
? ハイパフォーマンスコンピューティング(HPC)における傾向を追跡・分析するための基準を提供することを目的とし、
LINPACKと呼ばれる行列計算ベンチマークによりランク付けを行っている。
? 大規模システムを構築するには資金力も必要

Green500
? 世界で最もエネルギー消費効率の良いスーパーコンピュータを定期的にランク付けし評価するプロジェクト
? 単位:FLOPS/W FLOPSあたりの消費電力。
? スーパーコンピュータにおけるグリーンITの指標の1つともされ、
日本では「スーパーコンピュータの省エネ性能ランキング」などと呼ばれる事もある。
? 省電力、高効率実行の技術力が問われる

Page 7

Green500での成果

理研情報基盤センターに設置した菖蒲が 2015/6, 11, 2016/6の3期連続で首位
皐月も2位を獲得
222
(1): >>221 2018/07/30(月) 06:20:27 ID:wOzVCFyH(6/50)調 AAS

Page 8

ZettaScaler-1.xのキーテクノロジー

液浸冷却技術“ESLiC”
1,024メニーコアプロセッサ, “PEZY-SC”
液浸サーバー“Brick”高密度実装技術
223
(1): >>222 2018/07/30(月) 06:21:08 ID:wOzVCFyH(7/50)調 AAS

Page 9

菖蒲ZettaScaler-1.6システム

? ノード:1つのXeon に4個のPEZY-SCnp が接続されている

Intel Xeon E5-2618L v3
DDR4 LP 32GB DDR4 LP 32GB DDR4 LP 32GB DDR4 LP 32GB

PEZY-SCnp DDR4 32GB
PCIe Gen3 8Lane
PEZY-SCnp DDR4 32GB
PCIe Gen3 8Lane
PEZY-SCnp DDR4 32GB
PCIe Gen3 8Lane
PEZY-SCnp DDR4 32GB
PCIe Gen3 8Lane

PCH C612
DMI2

BMC
RS-232C
SPI
VGA

USB SATA SATA

Infiniband FDR
PCIe 8Lane

PEZY-SCnpはPEZY-SCの半導体部分は変更せずに パッケージとしての信号品質と電源品質を向上したもの
224
(1): >>223 2018/07/30(月) 06:21:52 ID:wOzVCFyH(8/50)調 AAS

Page 10

菖蒲ZettaScaler-1.6システム

? ブリック:4ノードの集合体
? 液浸層:16ブリックから構成
? 全体システム:5 液浸層から構成

Page 11
225
(1): >>224 2018/07/30(月) 06:22:43 ID:wOzVCFyH(9/50)調 AA×


226
(1): >>225 2018/07/30(月) 06:23:33 ID:wOzVCFyH(10/50)調 AA×


227
(3): >>226 2018/07/30(月) 06:24:33 ID:wOzVCFyH(11/50)調 AAS

Page 13

PEZY-SCのブロック図

ARM0  ARM1    PTILE  PTILE  PTILE  PTILE
Local Bus / Config Bus
PEZY-SC Core    DDR4C  DDR4C  DDR4C  DDR4C  DDR4C  DDR4C  DDR4C  DDR4C
RSTGen
CLKGen
INTC
SRAM
SPI
PIT
PIT
UART
WDT
GPIO

? PTILE: PCIe Gen3
? ARM926は2個搭載 役割分担に対する制約はない
  ? L1I 16KB / L1D 16KB / L2 32KB
  ? ITCM 16KB / DTCM 16KB
  ? MMU
228
(1): >>227 2018/07/30(月) 06:25:31 ID:wOzVCFyH(12/50)調 AAS

Page 14

PEZY-SCプロセッサ全体構成

3レイヤーの階層構造を持ったMIMD型メニコアプロセッサ
  (4PE x 4(village) x 16(city) x 4(prefecture) = 1024PE)

PE

Program Counter (8set)
L1 I- Cache (2KB)
ALU 4FpOps/Cycle
Register File 32b x 32w x 8set
Local Memory (16KB)

Village (4PE)

PE
PE
L1 D- Cache (2KB)
PE
PE
L1 D- Cache (2KB)

City ( 16 PE )

Special Function Unit
Village (4PE)  Village (4PE)
Village (4PE)  Village (4PE)
L2 I-Cache (32KB)
L2 D-Cache (64KB)
229
(2): >>228 [NGワード誤検出回避分割sage] 2018/07/30(月) 06:31:21 ID:wOzVCFyH(13/50)調 AAS

Prefecture
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
L3 I-Cache (128KB)
L3 D-Cache (2MB)
230
(1): >>229 [NGワード誤検出回避分割sage] 2018/07/30(月) 06:32:07 ID:wOzVCFyH(14/50)調 AAS

Prefecture
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
L3 I-Cache (128KB)
L3 D-Cache (2MB)
231
(1): >>229-230 [NGワード誤検出回避分割sage] 2018/07/30(月) 06:32:50 ID:wOzVCFyH(15/50)調 AAS

Prefecture
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
L3 I-Cache (128KB)
L3 D-Cache (2MB)
232
(1): >>229-231 [NGワード誤検出回避分割sage] 2018/07/30(月) 06:33:48 ID:wOzVCFyH(16/50)調 AAS

Prefecture
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
City (16PE)  City (16PE)  City (16PE)  City (16PE)
L3 I-Cache (128KB)
L3 D-Cache (2MB)
233: >>229 [NGワード誤検出回避分割sage] 2018/07/30(月) 06:45:42 ID:wOzVCFyH(17/50)調 AAS

DDR4-I/F 64 bit 2400MHz  DDR4-I/F 64 bit 2400MHz
234: >>230 [NGワード誤検出回避分割sage] 2018/07/30(月) 06:46:14 ID:wOzVCFyH(18/50)調 AAS

DDR4-I/F 64 bit 2400MHz  DDR4-I/F 64 bit 2400MHz
235
(1): >>231 [NGワード誤検出回避分割sage] 2018/07/30(月) 06:47:10 ID:wOzVCFyH(19/50)調 AAS

DDR4-I/F 64 bit 2400MHz  DDR4-I/F 64 bit 2400MHz
236: >>232 [NGワード誤検出回避分割sage] 2018/07/30(月) 06:47:55 ID:wOzVCFyH(20/50)調 AAS

DDR4-I/F 64 bit 2400MHz  DDR4-I/F 64 bit 2400MHz
237: >>229-236 2018/07/30(月) 06:51:12 ID:wOzVCFyH(21/50)調 AAS

ARM926
Host I/F & Inter Processor I/F
Host I/F
PCI Express Gen3 x8
Host I/F
PCI Express Gen3 x8
Host I/F
PCI Express Gen3 x8
Host I/F
PCI Express Gen3 x8
UART
SPI BUS
GPIO
238
(1): >>229-237 2018/07/30(月) 06:54:34 ID:wOzVCFyH(22/50)調 AA×


239
(1): >>238 2018/07/30(月) 06:55:38 ID:wOzVCFyH(23/50)調 AAS

Page 16

オンチップキャッシュ

  level  Size(B)  Chip Total(B)  Way  Entry  Line 長(B)  接続
データキャッシュ
  L1  2K  1M  8  4  64  2PEに1つ
  L2  64k  4M  8  32  256  Ciry毎 L1 8 個に対して
  L3  2M  8M  8  256  1k  Prefecture毎 L2 16 個に対して
命令キャッシュ
  L1  2K  2M  8  2  128  PE毎
  L2  32K  2M  4  32  256  City毎 PE 16個
  L3  128K  512K  4  32  1K  Prefecture毎 L2 16 個

複数PE間のメモリコンシステンシはソフトウェア責任、 PE毎に16KBのローカルメモリを備える

Page 17

プログラミング概要
240
(1): >>239 2018/07/30(月) 06:56:30 ID:wOzVCFyH(24/50)調 AA×


241
(1): >>240 2018/07/30(月) 06:57:53 ID:wOzVCFyH(25/50)調 AA×


242
(1): >>241 2018/07/30(月) 06:58:54 ID:wOzVCFyH(26/50)調 AAS

Page 20

特殊な関数

? カーネルプログラムで利用可能な、PEZY-SC制御に必要な組み込み関数がある。

  ? sync_L1 (L1キャッシュにアクセスする単位でのスレッド同期)
  ? sync_L2 (L2キャッシュにアクセスする単位でのスレッド同期)
  ? sync_L3 (L3キャッシュにアクセスする単位でのスレッド同期)
  ? sync (sync_L3と同等)

  ? flush_L1 (L1キャッシュのフラッシュ)
  ? flush_L2 (L2キャッシュのフラッシュ)
  ? flush_L3 (L3キャッシュのフラッシュ)
  ? flush (flush_L3と同等)

  ? get_pid (PE ID取得)
  ? get_tid (PE内スレッドID取得)
  ? chgthread (PE内スレッドの表裏切り替え)
243
(1): >>242 2018/07/30(月) 06:59:40 ID:wOzVCFyH(27/50)調 AA×


244
(1): >>243 2018/07/30(月) 07:00:23 ID:wOzVCFyH(28/50)調 AA×


245
(1): >>244 2018/07/30(月) 07:01:00 ID:wOzVCFyH(29/50)調 AAS

Page 23

簡単な最適化の説明

? 前述のpzcAddサンプルを用いて、PEZY-SC内での簡単な最適化の説明を行う
? ここでは以下のような最適化を行っている
  ? カーネル呼び出しのオーバヘッドの削減
  ? chgthreadを用いたレイテンシーの隠蔽
  ? 同期を用いたキャッシュアクセスの効率化

Page 24

オーバヘッド削減(1/2)

? 以下のコードをスレッド数=要素数として起動する場合、
8192を超えるサイズを処理しようとした場合にカーネルが複数回起動されるため、カーネル呼び出しのオーバヘッドが増加する

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int index = pid * get_maxtid() + tid;
  if(index >= count) return;
  c[index] = a[index] + b[index];
  flush(); // cache flush
}
246
(1): >>245 2018/07/30(月) 07:03:04 ID:wOzVCFyH(30/50)調 AAS

Page 25

オーバヘッド削減(2/2)

? 以下のようにカーネルコードを修正し、CPUからの呼び出し時のスレッド数を固定にしても、
1回のカーネル呼び出しで全要素の処理を行えることとなる。
? これによってオーバヘッドを減らすことができる。

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int offset = pid * get_maxtid() + tid;
  int step = get_maxtid() * get_maxpid();
  for(int pos = offset; pos < count; pos += step) {
    c[pos] = a[pos] + b[pos];
  }
  flush();
}
247
(1): >>246 2018/07/30(月) 07:03:40 ID:wOzVCFyH(31/50)調 AAS

Page 26

寄り道:CPUエミュレート

? このようにカーネルの中でループさせることは別のメリットもある。
? CPUで1スレッドでの動作として、この関数を同じように動作させることができる
→ソースを共有したデバッグに有効

void pzc_Add(float* a, float* b, float* c, int count)
{
  int tid = get_tid(); // thread ID (0 - 7)
  int pid = get_pid(); // PE ID
  int offset = pid * get_maxtid() + tid;
  int step = get_maxtid() * get_maxpid();
  for(int pos = offset; pos < count; pos += step) {
    c[pos] = a[pos] + b[pos];
  }
  flush();
}

CPUでは
  get_tid() … 常に0
  get_pid() … 常に0
  get_maxtid() … 1
  get_maxpid() … 1
248
(1): >>247 2018/07/30(月) 07:04:41 ID:wOzVCFyH(32/50)調 AAS

Page 27

スレッドの切り替え (1/3)

? 1つのPEに8スレッド存在するが、一度には4スレッドのみが動作する。
  ? 表裏で4スレッドずつ。
? sync/flushなどの同期やchgthreadを使用しないと、表裏が切り替わらない。
249
(1): >>248 2018/07/30(月) 07:05:33 ID:wOzVCFyH(33/50)調 AA×


250
(1): >>249 2018/07/30(月) 07:06:07 ID:wOzVCFyH(34/50)調 AA×


251
(1): >>250 2018/07/30(月) 07:06:50 ID:wOzVCFyH(35/50)調 AA×


252
(1): >>251 2018/07/30(月) 07:07:24 ID:wOzVCFyH(36/50)調 AA×


253
(1): >>252 2018/07/30(月) 07:08:00 ID:wOzVCFyH(37/50)調 AA×


254
(1): >>253 2018/07/30(月) 07:08:43 ID:wOzVCFyH(38/50)調 AA×


255
(1): >>254 2018/07/30(月) 07:09:32 ID:wOzVCFyH(39/50)調 AAS

Page 36

プログラミングのパターン

? フロントエンドがclangであり、ほとんどのケースではSCとCPUでのソースコードの共有が容易。
? デバッグ時には細かい単位で切り替えながら不具合を特定することが非常に有効

  CPU処理1 ⇔ SC処理1
      ↓
  CPU処理2 ⇔ SC処理2
      ↓
  CPU処理3 ⇔ SC処理3
      ↓
  CPU処理4 ⇔ SC処理4
      ↓
  CPU処理5 ⇔ SC処理5

Page 37

プログラミングのパターン

? 最終的な実行はなるべくカーネル処理だけとする
  CPU処理1 SC処理1
        ↓
  CPU処理2 SC処理2
        ↓
  CPU処理3 SC処理3
        ↓
  CPU処理4 SC処理4
        ↓
  CPU処理5 SC処理5
256
(1): >>255 2018/07/30(月) 07:10:04 ID:wOzVCFyH(40/50)調 AA×


257
(1): >>256 2018/07/30(月) 07:10:59 ID:wOzVCFyH(41/50)調 AAS

Page 41

共同開発のパターン2

? そもそもPEZY-SCは利用できそうだろうか?

? まずは簡単に触ってみたい。。。
? PEZY-SCを空冷環境下でご提供
  ? ただし、開発途上のものなので十分な情報やサポートを保証できるものではありません。
  (弊社側で可能な範囲でのご提供となります)

  A社/大学/研究所
    ↑    ↑
PEZY-SC空冷環境  評価結果
    PEZY
258
(1): >>257 2018/07/30(月) 07:12:26 ID:wOzVCFyH(42/50)調 AA×


259
(1): >>258 2018/07/30(月) 07:13:17 ID:wOzVCFyH(43/50)調 AAS

Page 43

共同開発のパターン3

? そもそもPEZY-SCは利用できそうだろうか?
? 液浸環境下でスパコン構成を試してみたい。 →菖蒲システムの利用公募
外部リンク:accc.riken.jp
こちらも十分な情報やサポートを保証できるものではありません(可能な範囲でのご提供となります)
研究開発用途で開発情報を公開可能ならばお勧め!
個人でも応募可!!

Page 44

菖蒲システムでできること

? 複数のコンピュートノードを用いた大規模な並列計算が可能。MPIの利用が可能。
? 現状は1タンク=16ブリック=256ノードが開発者に常時提供されている。
必要に応じて全システムでの利用も可能。
? ジョブ管理システムslurmの利用が可能。
? フロントエンド、コンピュートノードともに linux(centOS7)が入っており、
一般的なlinuxのライブラリやツールが利用可能。
260
(1): >>259 2018/07/30(月) 07:14:05 ID:wOzVCFyH(44/50)調 AA×


261
(1): >>260 2018/07/30(月) 07:14:44 ID:wOzVCFyH(45/50)調 AAS

Page 47

今後の展開

Page 48

今後の展開

? 新プロセッサ PEZY-SC2の開発
  ? 2,048コアの演算PE+MIPSプロセッサ内蔵
  ? TCIインタフェースによる、メモリ帯域の飛躍的拡大

? Brickボード、液浸冷却システムのブラッシュアップ
  ? 新ブリック構成で冷却効率を向上

? ZettaScaler-2.xシリーズ
  ? これらの新規開発要素を組み合わせた、新しいスーパーコンピュータの実現
262
(1): >>261 2018/07/30(月) 07:15:27 ID:wOzVCFyH(46/50)調 AAS

Page 49

PEZY-SC2の特徴

? CPUがMIPSとなりSC2とメモリ空間を共有する
→従来XeonとSCの間で必要であったメモリ転送が必要なくなる。

メモリ
↑ Xeon
↓ SC SC SC SC
メモリ メモリ メモリ メモリ

  ↓

メモリ
  MIPS
  SC2

Page 50

PEZY-SC2の特徴

? CPUとSC2の協調動作の強化
? 各種命令セットの補強
? (大きな変更なく)SCのプログラムをそのままコンパイル・実行できる
263
(1): >>262 2018/07/30(月) 07:16:03 ID:wOzVCFyH(47/50)調 AAS

Page 51

外部に公開している情報

? 若干のサンプルプログラム
? Doxygenで自動生成されたAPIリファレンス
? 簡単なアーキテクチャ説明資料
? 簡単なプログラミングマニュアル

Page 52

外部に公開している情報

? 若干のサンプルプログラム
? Doxygenで自動生成されたAPIリファレンス
? 簡単なアーキテクチャ説明資料
? 簡単なプログラミングマニュアル



? ユーザポータルを作成してここに各種情報を集約していく予定です(2017/1予定)
  ? PEZYと個別にNDAのやり取りを行い、その後に参加して頂くようになります。
264: >>263 2018/07/30(月) 07:17:26 ID:wOzVCFyH(48/50)調 AAS

Page 53

開発中/予定のソフトウェア

? 物理系シミュレーション
? 開発環境
  ? OpenACC/OpenCL/PUDA(!)・・・
? 量子計算シミュレーション
? メタゲノム解析ツール
? ニューラルネット
  ? Caffe/・・・
? 数値計算ライブラリ
  ? BLAS/FFT・・・
? ・・・

Page 54

ご興味がありましたら
ishikawaATpezy.co.jp
お気軽にご連絡ください
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ アボンOFF

ぬこの手 ぬこTOP 1.698s*