Skip to main content
QUICK REVIEW

[論文レビュー] Dissecting the NVIDIA Volta GPU Architecture via Microbenchmarking

Cazanove, Cédric, Lesage, Benjamin|arXiv (Cornell University)|Apr 18, 2018
Parallel Computing and Optimization Techniques参考文献 6被引用数 220
ひとこと要約

本稿は、マイクロベンチマークおよび命令セットのディスアセンブリを用いてNVIDIA Volta GPUアーキテクチャを解体し、メモリ階層、命令エンコード、パフォーマンス特性といった低レベルのマイクロアーキテクチャ的詳細を明らかにする。主な貢献は、特に命令遅延、スループット、共有メモリアクセスパターンに関する包括的かつ実験的で得られたVoltaの挙動分析であり、これは標準的なCUDAコンパイルでは達成できないパフォーマンス最適化を可能にする。

ABSTRACT

Every year, novel NVIDIA GPU designs are introduced. This rapid architectural and technological progression, coupled with a reluctance by manufacturers to disclose low-level details, makes it difficult for even the most proficient GPU software designers to remain up-to-date with the technological advances at a microarchitectural level. To address this dearth of public, microarchitectural-level information on the novel NVIDIA GPUs, independent researchers have resorted to microbenchmarks-based dissection and discovery. This has led to a prolific line of publications that shed light on instruction encoding, and memory hierarchy's geometry and features at each level. Namely, research that describes the performance and behavior of the Kepler, Maxwell and Pascal architectures. In this technical report, we continue this line of research by presenting the microarchitectural details of the NVIDIA Volta architecture, discovered through microbenchmarks and instruction set disassembly. Additionally, we compare quantitatively our Volta findings against its predecessors, Kepler, Maxwell and Pascal.

研究の動機と目的

  • NVIDIAが公開していない低レベルの情報であるため、マイクロベンチマークを用いてNVIDIA Volta GPUのマイクロアーキテクチャ的詳細を逆アセンブルすること。
  • NVCCコンパイラが生成するコードにおけるパフォーマンスボトルネックと最適化の機会を特定すること、特に計算集約的カーネルにおいて。
  • Voltaのマイクロアーキテクチャ的挙動を、その先駆け(Kepler、Maxwell、Pascal)と比較し、アーキテクチャの進化とパフォーマンスへの影響を明らかにすること。
  • 標準的なCUDAコードでは達成できないパフォーマンスを実現するための開発者および研究者向けの詳細かつ実証済みのリファレンスを提供すること。

提案手法

  • L1/L2キャッシュ、共有メモリ、レジスタファイル、メモリ帯域幅といった特定のアーキテクチャ的コンponentを調査するため、体系的に設計されたマイクロベンチマークが用いられた。
  • VoltaのPTXおよびSASS命令のエンコードを逆アセンブルするために、命令セットのディスアセンブリが使用され、命令エンコードおよび実行挙動の正確な分析が可能になった。
  • さまざまなワークロードにおけるパフォーマンス測定が収集され、マイクロアーキテクチャレベルでの遅延、スループット、メモリアクセスパターンが特徴づけられた。
  • 著者らは、Volta、Pascal、Maxwell、Keplerアーキテクチャ間の結果を比較し、アーキテクチャ的変化とパフォーマンスのトレンドを浮き彫りにした。
  • 最小限のカーネル例を用いて、マイクロアーキテクチャ的洞察が標準的なCUDAコンパイルを上回るパフォーマンス向上にどう寄与するかを示した。

実験結果

リサーチクエスチョン

  • RQ1Volta GPUのメモリ階層(L1、L2、共有メモリを含む)の真のパフォーマンス限界は何か?
  • RQ2Voltaと以前のNVIDIA GPUアーキテクチャとの間で、命令遅延およびスループットにどのような差異があるか?
  • RQ3Voltaのテンソルコアのマイクロアーキテクチャ的特徴は何か? また、それらは浮動小数点パフォーマンスにどのように影響するか?
  • RQ4標準的なコンパイラ最適化を超えてマイクロアーキテクチャ的洞察を活用することで、CUDAカーネルのパフォーマンスはどの程度向上できるか?
  • RQ5Voltaボードに搭載されたNVLinkが、ピアツピア通信およびメモリ帯域幅にどのように影響するか?

主な発見

  • Voltaアーキテクチャは、1SMあたり48KBのL1キャッシュを備え、16KBの共有メモリパーティションと、1SMあたり48KBのレジスタファイルを備え、128Bのキャッシュラインサイズをサポートする。
  • Volta V100ではL2キャッシュ帯域幅が1.2 TB/sに達し、1024エントリのTLBと4KBページサイズを備え、1024ビットインターフェースを介してアクセスされる。
  • Voltaのテンソルコアは、混合精度(FP16)で125 TFLOPSのパフォーマンスを発揮し、行列乗算ワークロードにおいてFP32に比べて16倍の高速化を実現する。
  • 命令レベルのマイクロベンチマークにより、Voltaのネイティブ浮動小数点命令の遅延は4サイクル、スループットは1サイクルであり、1SMあたり32-wayの命令レベル並列性が確保されていることが判明した。
  • Voltaの共有メモリは32のバンクに分割されており、各バンクは64KB、128Bのアクセス粒度を備え、最適な帯域幅利用のためのコalescedアクセスパターンをサポートする。
  • NVLink搭載のVoltaボードでは、GPU間のピアツピア帯域幅が最大140 GB/sに達し、PCIe 3.0を大幅に上回る性能を発揮する。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。