More Related Content
Similar to Boost study14 (20)
Boost study14
- 5. 魔導書 Vol.3 出ました!!
• OpenACCの話を書きました
– あまり込み入った話はありません
• OpenACC とは
– アクセラレータ向けの言語仕様
– C/C++/Fortranのコードにpragmaを挿入することで
コンパイラに指示をする
– GPUだけに限定される仕様ではない
– CPU向けコードも作れる
#pragma acc kernels
for (int i = 0; i < 100; ++i) {
a[i] = a[i] + b[i];
}
5
- 6. 魔導書 Vol.3 出ました!!
• OpenACCに関する詳細は魔導書を参照してく
ださい
• ちょっと微妙なネタ選択だった気もする
– 無料で使える実装がない
– 商用コンパイラの体験版程度
– GCCがサポートする計画がある様子
– 仕様書は公開されており、誰でも読めます
6
- 9. 汎用?
特化
• 昔のGPU
• NIC
• 動画のエンコーダ
• RAIDカード
決められた事しか出来ない
汎用
• 最近のGPU
• Intel Xeon Phi
• (Cell)
ある程度自由に
プログラミングできる
9
- 10. 汎用?
特化
• 昔のGPU
• NIC
• 動画のエンコーダ
• RAIDカード
決められた事しか出来ない
今回のターゲットは
こちら側
汎用
• 最近のGPU
• Intel Xeon Phi
• (Cell)
ある程度自由に
プログラミングできる
10
- 13. イマドキのアクセラレータ
• スモールコア ・ メニーコア
– (CPUと比べると) 遅くて
– (CPUと比べると) 小さくて多数のコアがある
– (CPUと比べると) メモリ帯域重視
– データ並列向け
• 増設カードの形で提供されている
– アクセラレータ単体では動かせない
13
- 20. SIMD
• Single Instruction
Multiple Data
– 1つの命令で複数のデータ
に対して演算を行う
– MMX, SSE, AVX, Altivec,
NEON等
– 各データに対して同じ演
算しか出来ない
10
20
30
40
1
2
3
4
11
22
33
44
• 性能とのトレードオフ
– 256bit=8float, 4double
– 512bit=16float, 8double
20
- 21. SIMT
• K40は2880 CUDA Coreを持つが、2880のコア
が自由自在に動けるわけではない
– 32スレッドが協調動作する
– 32-wayのSIMDのような動作をする
• NVIDIAはこのような動作をSIMT (Single
Instruction Multiple Thread) と表現している
21
- 25. プログラミング
• CUDA C, C++ (NVIDIA)
– C/C++ベースに、若干の独自構文の追加
• Intel C, C++, Fortran (MIC)
– MICのための各種サポート
• OpenCL
– 汎用の仕様, C99ベースの言語で記述する
• OpenACC
– 汎用の仕様, pragmaの挿入で記述する
25
- 32. APU
• AMDがAPUという製品を出している
– コードネーム Kaveri, A10-7850K等
– Kaveriは3世代目APU (Triniry, Richland)
– (PS4, XboxもAPUであるが、詳細は非公開)
• AMDのCPUとAMDのGPUを密に結合したもの
– ようやく、CPUとGPUのメモリ統合を実現 (hUMA)
– CPUで扱っているポインタをそのままGPUに渡して
データアクセスが可能
32
- 34. Hyper Memory Cube (HMC)
• メモリ周辺が厳しいのは、カード型も同じ
• 次世代のメモリ規格 HMC
– メモリを積み重ねてCPUの近くにおくことで帯域を
確保
• NVIDIA GPUの次の世代 Volta で採用すると
NVIDIAが表明
– 2015年っぽい?
34