• 検索結果がありません。

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

N/A
N/A
Protected

Academic year: 2021

シェア "Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments"

Copied!
33
0
0

読み込み中.... (全文を見る)

全文

(1)

計算機アーキテクチャ第11回

マルチプロセッサ

本資料は授業用です。無断で転載することを禁じます。 名古屋大学 大学院情報科学研究科 准教授 加藤真平

(2)

デスクトップ

ジョブレベル

並列性

(3)

スーパーコンピュータ

並列処理

プログラム

(4)

プログラムの並列化

for (i = 0; i < N; i++) {

x[i] = a[i] + b[i];

(5)

プログラムの並列化

x[0] = a[0] + b[0];

・・・

(6)

逐次処理

計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 時間 シングルコアの世界 ・コアの周波数を上げる for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { . . . } }

繰り返し処理も逐次的にひたすら高速処理する

(7)

並列処理

計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 時間 シングルコアの世界 ・コアの周波数を上げる 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 時間 コア数 マルチコアの世界 ・コアを数個並べる ・コアの周波数は上げない ・プログラムを並列化する 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 計算 ブロック 時間 コア数 メニーコアの世界 ・コアを数百から数千個並べる ・コアの周波数は下げる ・プログラムを並列化する

(8)

津波シミュレーション

(9)

交通流

核融合プラズマ

(10)

共有記憶型マルチプロセッサ(

SMP)

Processor Processor

・・・

Processor

Cache Cache Cache

Interconnect

(11)

クラスタ型マルチプロセッサ

・・・

Processor Cache Main Memory Processor Cache Main Memory Processor Cache Main Memory Processor Cache Main Memory

Interconnect

(12)

マルチコア(チップマルチプロセッサ)

Processor

Cache

Interconnect

Main Memory I/O

Processor Core Processor

(13)

マルチスレッディング

Processor

・・・

Cache

Interconnect

Main Memory I/O

(14)

マルチスレッディング方式

スレッドA

スレッドB

スレッドC

スレッドD

命令発行スロット

(15)

マルチスレッディング方式

粗粒度 マルチスレッディング 命令発行スロット 時間 細粒度 マルチスレッディング 同時 マルチスレッディング

(16)

SISD, MIMD, SIMD

• SISD = Single Instruction stream, Single Data stream

• MIMD = Multiple Instruction stream, Multiple Data stream • SIMD = Single Instruction stream, Multiple Data stream

(17)

主流はマルチコア

Memory L3 Cache Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 高々10個程度のCPUコアが、1つの共有メモリに、均一的にアクセスする。  1つのOSカーネルで済む  開発環境が整っている  並列化の性能が出やすい ソフトウェア的視点

(18)

メニーコアの時代へ

L2 Cache L1 L1 L1 L1 L1 L1 L1 L1 Memory Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 Memory Memory Memory Memory

(19)

Graphics Processing Unit (GPU)

2008 2010

2012

3000コア 500コア 250コア

2014

Tesla Fermi Kepler Maxwell Next Gen. C言語 C++ Java 5000コア

(20)

Graphics Processing Unit (GPU)

Host Memory L3 Cache Core L1 L2 Core L1 L2 Core L1 L2 Core L1 L2 I/Oバス Host CPU GPU

(21)

GPUによる並列処理

Grid = (2, 2)

Block = (3, 3)

(22)
(23)

GPUによる並列処理

(24)

GPUによる並列処理

(25)

CUDAプログラミング

void multiply(double *a, double *b, double *c, int n)

{

double product = 0.0;

int row = blockIdx.y * blockDim.y + threadIdx.y;

int col = blockIdx.x * blockDim.x + threadIdx.x;

int i, idx;

for (i = 0; i < n; i++)

product += a[row * n + i] * b[i * n + col]; c[row * n + col] = product;

}

ほとんどC言語と変わらないが複数のジョブが並列実行 していることを意識してプログラミングする必要がある。

(26)
(27)

性能トレンド

単精度浮動小数点性能 電力性能 8800 GTX 9800 GTX GTX 285GTX 480 GTX 580 GTX 680 GTX Titan GTX Titan Black X7350 X7460 X7560 E7-8870 E7-8890 0 1000 2000 3000 4000 5000 6000 2006 2008 2010 2012 2014 G FL O PS RELEASE YEAR

Single Precision Performance

NVIDIA GTX Intel Xeon 8800 GTX 9800 GTX GTX 285 GTX 480GTX 580 GTX 680 GTX Titan GTX Titan Black X7350 X7460 X7560 E7-8870 E7-8890 0 5 10 15 20 25 2006 2008 2010 2012 2014 G FL O PS/W A TT RELEASE YEAR

Performance per Watt

NVIDIA GTX Intel Xeon

(28)

CMD_HtoD CMD_HtoD CMD_LAUNCH CMD_DtoH GPU Code Input Data Host Memory GPU Code Input Data Device Memory GPU Code Input Data Host Memory GPU Code Input Data Device Memory GPU Code Input Data Host Memory GPU Code Device Memory GPU Code Input Data Host Memory Device Memory

General Purpose Computing on

GPUs (GPGPU)

GPU Code Output Data Output Data copy Input Data copy Output Data copy

(29)

GPGPUの実行

Start Code Upload Mem Alloc Data Upload Data Download End

CPU

I/O

GPU

ParallelExecution

Host

Memory Device Memory

(30)

10 100 1000 10000 100000 1000000 100 1K 10K 100K 1M Simula tion t ime (ms)

The number of agents

GPU (simple)

GPU (data optimized) GPU (fully optimized) CPU

1000x

GTX 560 Ti (192 cores)

(31)

期末試験

• 7月24日4限

– 資料の持ち込みなし

• 出題範囲

– 本講義で習った全範囲

– 教科書(上下巻)

• 出題形式

– 必須問題3問

– 選択問題2問

(32)

レポート

• 「なぜ計算機アーキテクチャが大事なのか」を

自分なりに4000~5000字でまとめて提出

– 締切:7月23日23時59分

– 書式自由(Word、LaTex等)

[email protected]

宛にメールで添付して提出

– 件名は「計算機アーキテクチャ講義レポート」とし

てください

– 本文に氏名と学籍番号を記載してください

(33)

計算機アーキテクチャの応用

(研究紹介)

参照

関連したドキュメント

 「時価の算定に関する会計基準」(企業会計基準第30号

⑥ニューマチックケーソン 職種 設計計画 設計計算 設計図 数量計算 照査 報告書作成 合計.. 設計計画 設計計算 設計図 数量計算

小林 英恒 (Hidetsune Kobayashi) 計算論理研究所 (Inst. Computational Logic) 小野 陽子 (Yoko Ono) 横浜市立大学 (Yokohama City.. Structures and Their

 当図書室は、専門図書館として数学、応用数学、計算機科学、理論物理学の分野の文

『国民経済計算年報』から「国内家計最終消費支出」と「家計国民可処分 所得」の 1970 年〜 1996 年の年次データ (

料金算定期間 前回検針計量日 ~ 9月4日 基本料金 前回検針計量日 ~ 9月4日 電力量料金 前回検針計量日 0:00 ~ 9月4日

Ⅰ.連結業績

越欠損金額を合併法人の所得の金額の計算上︑損金の額に算入