Version 20.7
Release Notes原文
当ページは原文の意訳となっております。
1. 新機能について
NVIDIA HPC SDKはCPU, GPU, インターコネクトといったHPCプラットフォーム全体のプログラム開発を可能にするコンパイラとライブラリの包括的パッケージで、20.7は最初のリリースです。
NVIDIA HPC SDK for Linux 20.7 GA (= Stable) の主な機能は以下のとおりです。
- FP16, TF32, FP64 tensor coresを搭載したNVIDIA AmpereアーキテクチャGPU、NVIDIA Volta tensor coresのサポート
- Compute Capability 3.5以上でのCUDA 11.0, 10.2, 10.1のサポート
- x86-64, OpenPOWER, Armのサーバー向けマルチコアCPUにおけるクロスプラットフォームサポート
- STL parallel algorithmのGPU加速、OpenACC、OpenMPをサポートするISO C++17対応nvc++コンパイラ
- Array intrinsicsのGPU加速、CUDA Fortran、OpenACC、OpenMPをサポートするISO Fortran 2003対応nvfortranコンパイラ
- OpenACC、OpenMPをサポートするISO C11対応nvcコンパイラ
- NVIDIA CUDA C++を提供するnvccコンパイラ
- GPUで加速された各ライブラリ
- BLASライブラリcuBLAS
- 密行列・疎行列のDirect SolverライブラリcuSOLVER
- 高速フーリエ変換ライブラリcuFFT
- Tensor線形代数ライブラリcuTENSOR
- 乱数生成ライブラリcuRAND
- C++ parallel algorithmとデータ構造ライブラリThrust
- CUDA計算カーネルプログラム開発のためのユーティリティおよびスレッドブロック内協調計算のためのプリミティブを提供するCUB
- オプトインで機能するHegerogeneous CUDA C++ standard library libcu++
- マルチGPU、マルチノードにおける高速なCollective通信を提供するNCCL
- OpenSHMEM互換の高速GPUメモリ転送ライブラリNVSHMEM
- GPU-aware機能を有したMPIライブラリOpen MPI
- HPCアプリケーションの性能プロファイラNVIDIA Nsight Systems
- GPU計算カーネルの性能プロファイラNVIDIA Nsight Compute
- GPU計算カーネルのデバッガNVIDIA cuda-gdb
- メモリの安全性をチェックするためのNVIDIA compute sanitizer
2. リリースに含まれる各コンポーネントのバージョン
各コンポーネントについて、バージョン番号が記載されております。各バージョンについて詳細を確認したい場合は原文の表をご確認ください。
3. サポートされるプラットフォーム
3.1. プラットフォーム要件
Linuxディストリビューション、gcc/glibcの最低バージョン、CUDAドライバの最低バージョンが記載されております。
詳細は原文の表をご確認ください。
3.2. サポートされるCUDA Toolkitのバージョン
NVIDIA HPC SDKは、NVIDIA GPUを用いたプログラムをビルドする場合にCUDA Toolchainの機能を使用します。すべてのNVIDIA HPC SDKは必要なCUDAコンポーネントをインストールディレクトリにインストールします。インストール先のパスは [install-prefix]/[arch]/[nvhpc-version]/cuda です。
GPU用にコンパイルされたプログラムを実行するためには、GPU搭載システムにNVIDIA CUDA GPUデバイスドライバのインストールが必要です。NVIDIA HPC SDKにはCUDAドライバは含まれませんので、適切なCUDAドライバをNVIDIAからダウンロードする必要があります。
システムにインストールされたCUDAドライバのバージョンを確認するためにnvaccelinfoコマンドが利用できます。nvaccelinfoはドライババージョンを最初の行に出力します。
NVIDIA HPC SDK 20.7 GAはCUDA toolchainとして以下のバージョンをインストールし、standaloneでサポートします。
- CUDA 10.1
- CUDA 10.2
- CUDA 11.0
NVIDIA HPC SDKの各HPCコンパイラでCUDA toolchainのバージョンを切り替えて使いたい場合、各コンパイラのユーザーガイドを参照ください。
4. 制限事項
- 計算性能が異なる複数のGPUが搭載されているマシンで-stdparコンパイルオプションを使う場合、コンパイル時にユーザーがターゲットとなるGPUを選択する必要があります。この制限はバージョン20.9において緩和される予定です。
- cuda-gdbデバッガにおいて、一定でない境界を持つFortran配列は正しく処理されず、値を問い合わせた場合に誤った結果を表示します。CUDA FortranおよびOpenACCカーネルのステップ実行は部分的にサポートされていますが、正しくない行番号が表示されます。cuda-gdbの追加の一般的な制限についてはドキュメントを参照してください。
- コンパイラオプション-stdparを使用してC++ Parallel algorithmを高速化する場合、各アルゴリズムには仮想関数や関数ポインタは使用できず、ヒープを指すポインタのみを参照することができ、かつランダムアクセスイテレータでなければいけません。イテレータとしては生ポインタが最適に機能します。