良書 「GPUを支える技術 超並列ハードウェアの快進撃[技術基礎]」を読む
目的
「GPUを支える技術 超並列ハードウェアの快進撃[技術基礎]」
(2017年7月13日 初版第1刷発行, 発行所 株式会社技術評論社)
この書籍は、かなりいい書籍だと思います。
しばらく、手元においておきたい書籍です。
パラパラと何度か眺めていて、気づいたこと、補足できることなどをここに記します。
また、発行(2017/7/13)以来、時間が経過しているので、その後の状況とかも記載したいと思います。
この記事で多少役立つ可能性がある項目は、以下。
- p.207 『メモリアクセスを効率化する』
※構成の悪い記事だな。。。。(ため息)
この書籍の良いところ
この書籍の良いところは、以下。
- 参照している文献が参考になる。
→ この書籍をキーとして、参照している文献等で、知識を広げられる。
意外と重要だと思う項
GPUの構造
p121の「4.2GPUの構造」にて、GPUの構造の説明がある。
GPUには、同じような構成要素が沢山あることが知られているが、まず、SM(Streaming Multiprocessor)というのが、基本となる構成要素である。これが、例えば、GP100の場合、56個ある。このSMの中に、更に、コア(CUDAコア)が各々64個ある。
(出典: https://images.nvidia.com/content/pdf/tesla/whitepaper/pascal-architecture-whitepaper.pdf )
GPUの構成から演算性能を計算する
P130あたりに記載されている演算性能の計算方法を示す。単純です。
コアとDPユニットはA×B+という積和演算を実行するので積と和が各1演算で、ピーク演算性能は2演算/クロックということになります。
GP100チップの場合、
32ビット単精度の積和演算機の数は、64CUDAコア×56個SMで、3,584個
GPUのクロック周波数は、1,480MHz(ターボブースト時)なので、
→ ピーク演算性能は、
3,584 × 1,480 × 2 → 単位を換算して、 10.6 TFlops となります。
p.207 『メモリアクセスを効率化する』
p.207に『メモリアクセスを効率化する』という項がある。
CPUにしても、GPUにしても、これが重要であることは、理解できる。1演算あたりのメモリバンド幅の例が、以下のように示されている。この値の逆数、「Flop/Byte」で計算される算術強度(arithetic intensity ※)を横軸にしたルーフラインモデルの説明もされている。
※operational intensityという言葉も代わりによく使われる。
かなり飛躍するが、高いレベルでメモリ効率を上げるのためには、高度に完成されたライブラリ等の使用が必要だと思う。この書籍では、ライブラリの話はあまりでませんが。。。
装置 | メモリバンド幅(Byte/Flop) |
---|---|
スパコン「京」 | 0.5 |
NVIDIA K80 GPU | 0.165 |
NVIDIA P100 GPU | 0.136 |
気づいたこと、補足できること、整理できること
処理速度と消費電力の情報
処理速度と消費電力の情報を本文から拾う
装置 | 処理速度 | 消費電力 | 記載ページ/備考 |
---|---|---|---|
NVIDIA Drive PX2 |
20TOPS | 80W | p.262 Pascal GPU他 |
NVIDIA Xavier(エグゼビア) |
20TOPS | 20W | p.262 ワンチップ |
NVIDIA GPU
NVIDIA GPUの製品カテゴリ
製品カテゴリは、以下のとおり。
カテゴリ | 説明 |
---|---|
GeForce | デスクトップパソコンやノートパソコン向け |
Quadro | プロフェッショナル向けでワークステーションに搭載 |
Tesla | スーパーコンピュータ向けの演算専用プロセッサ ※1 |
Tegra | 携帯電話やスマートフォン・タブレット端末向けのSoC(システム・オン・チップ)※2 |
(情報元(引用元):https://ja.wikipedia.org/wiki/NVIDIA)
※1
NVIDIA Tesla はNVIDIAのHPC向けGPU製品シリーズ。GeForceやQuadroをベースとしており、NVIDIA初のGPGPU専用製品である。
(出典:https://ja.wikipedia.org/wiki/NVIDIA_Tesla)
高性能計算、ハイ・パフォーマンス・コンピューティング(high-performance computing、HPC)は、計算科学のために必要な数理からコンピュータシステム技術までに及ぶ総合的な学問分野である。
(出典:https://ja.wikipedia.org/wiki/高性能計算)
※2
NVIDIA Tegra(エヌビディア テグラ)は、NVIDIAによるARM系の省電力統合型プロセッサのシリーズ。スマートフォンやタブレット型コンピュータ、Nintendo Switch、nVidia Shield TV、自動車のインフォテインメントシステムなどに使用されている。
(出典:https://ja.wikipedia.org/wiki/NVIDIA_Tegra)
NVIDIA GPUアーキテクチャ
GPUアーキテクチャの世代の呼び名は、以下のとおり。古い順。
Tesla
Fermi(2009年)
Kepler
Maxwell
Pascal
Volta(2017年)
Turing
※最初を、Teslaというかは、微妙。審議中。
※世代というレベルにしては、細々、速すぎるペースで次のものが定義されている。
CUDAの数学ライブラリ
p.183に『CUDAの数学ライブラリ』という項があります。ここで示されているNVIDIAのライブラリ等が、実際に、GPUの性能を出す上では重要となると思われます。
ライブラリ名 | 機能 |
---|---|
cuBLAS | マトリクスやベクトルの演算 |
cuSPARSE | 疎行列の演算 |
cuFFT | 高速フーリエ変換 |
cuDNN | ディープラーニングの演算 |
OpenMP4.0規格
OpenMPに関して補足する。
OpenMPは、CPUでの並列化のイメージが強いが、以下の引用(p.215)のとおり、4.0ではGPU等も想定に入っている。
これに対してOpenMPは、GPUなどのアクセサリーが使えるように大幅な改修が加えたOpenMP4.0規格がリリースされたのは2013年7月になりました。
引用 https://en.wikipedia.org/wiki/OpenMP
Version 4.0 of the specification was released in July 2013. It adds or improves the following features: support for accelerators; atomics; error handling; thread affinity; tasking extensions; user defined reduction; SIMD support; Fortran 2003 support.
発行後の状況で補足できること
Microsoft BrainWave
GPUを説明する本書において、対抗する?FPGAの例として、Microsoftの取り込むが示されている。それに関連する、BrainWaveに関して補足する。
本書の注記で示されているMicrosoft Catapultをベースとしたもの。
引用 https://www.itmedia.co.jp/pcuser/articles/1708/29/news100.html
Project BrainWaveについては、Microsoft Researchのブログで8月22日(米国時間)に紹介されている。もともとは同日に米カリフォルニア州クパチーノで開催された半導体業界の「Hot Chips」カンファレンスでの発表をベースとしており、ここではIntelの14nm製造プロセスを使った「(旧Alteraの)Stratix 10」というFPGA(Field Programmable Gate Array)によるBrainWaveのデモストレーションが披露されている。
引用 https://eventmarketing.blob.core.windows.net/mstechsummit2018-after/DA22_PDF_TS18.pdf
BrainWave(FPGA)の位置づけは、以下のように整理されている。
+------------------------------------+
+----+ +----+ | DNN Processing Unit | +----+
|CPU | |GPU | | +------------+ +--------------+ | |ASIC|
+----+ +----+ | |Soft DPU | | Hard DPU | | +----+
| | (FPGA) | | | |
| +------------+ +--------------+ |
+------------------------------------+
←←柔軟性 効率性→→
+------------+ +--------------+
|BrainWave | |Cerebras |
|Baidu SDA | |Google TPU |
|Deephi Tech | |Graphcore |
|ESE | |Grop |
|Teradeep | |Intel Nervana |
|Etc | |Movidus |
| | |Wave Computing|
| | |Etc |
+-----------+ +--------------+
まとめ
この書籍は、気に入っています。
関連(本人)
文献『From Model to FPGA: Software-Hardware Co-Design for Efficient Neural Network Acceleration』を読む
文献『AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS』を読む。
今後
また、何か関連する検討ができれば。
コメントなどあれば、お願いします。
Author And Source
この問題について(良書 「GPUを支える技術 超並列ハードウェアの快進撃[技術基礎]」を読む), 我々は、より多くの情報をここで見つけました https://qiita.com/enoughspacefor/items/31e9461b6a07b484b643著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .