Version 20.11
Release Notes原文
当ページは原文の意訳となっております。
1. 新機能について
NVIDIA HPC SDKはCPU, GPU, インターコネクトといったHPCプラットフォーム全体のプログラム開発を可能にするコンパイラとライブラリの包括的パッケージです。
NVIDIA HPC SDK for Linux 20.11のリリースでの新しい主な機能は、以下の通りです。
- nvc++, nvc, nvfortranにおいてOpenMP target offload機能のベータサポートが開始されました。-mp=gpuコンパイラオプションで、x86ベースのシステム上のNVIDIA GPU用にtarget offload機能を利用できます。
- nvfortranでDO CONCURRENT構文のGPU並列化機能が提供されるようになりました。-stdparオプションによりデフォルトで有効化されます。
- nvlamath Fortranライブラリを使用し、標準BLASインターフェイスを介してGPUで高速化されたBLASルーチンにアクセス可能になりました。
- CUDA toolchain 11.1をサポートしました。
- SDKに含まれる各ライブラリと開発ツールのコンポーネントを最新版に更新しました。
- SUSE Linux Enterprise Server用のRPMパッケージがダウンロード可能になりました。
- nvc++コンパイラにおけるデフォルトの言語規格がC++11になりました。
- GCCとの互換性向上のため、各コンパイラに新しいコマンドラインオプションがいくつか実装されました。
- -f[-no]exceptions: 例外のハンドリングの有効・無効を切り替え
- -x: 後続の入力ファイルの言語を明示的に指定、-x noneで無効化
- -Wshadow: ある変数が別の変数を隠している場合に警告を出力
- -Wstrict-prototypes: C言語のみ、引数の型を指定せずに関数が宣言または定義された場合に警告を出力
- -Wno-long-long: long long型を使用した場合に発生する警告を非表示
- -Wundef: 初期化されていない変数に対する警告を出力
- -fpie: 位置に依存しない実行ファイルを生成、-pieと同義
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.11はCUDA toolchainとして以下のバージョンをインストールし、standaloneでサポートします。
- CUDA 10.2
- CUDA 11.0
- CUDA 11.1
20.11から10.1のstandaloneサポートが外れていますのでご注意ください。NVIDIA HPC SDKはサポートするCUDA Toolkitの最も新しいバージョンと古い2バージョンの合計3バージョンをstandaloneサポートします。
NVIDIA HPC SDKの各HPCコンパイラでCUDA toolchainのバージョンを切り替えて使いたい場合、各コンパイラのユーザーガイドを参照ください。
4. 制限事項
- 既知の問題として、CUDA 11.1とGNU toolchain version 4.xでNVIDIA HPC SDKの各コンパイラオプション-gpu=timeの組み合わせに問題が有り、-gpu=timeでビルドされたプログラムは実行時にクラッシュする可能性があります。
- Intel Skylakeアーキテクチャ用にコンパイルを行う場合には、ターゲットプロセッサのコンパイラオプションとして-tp skylakeを指定することをお勧めします。リンク時に-tp skylakeを指定するかはオプションです。
- cuda-gdbデバッガにおいて、一定でない境界を持つFortran配列は正しく処理されず、値を問い合わせた場合に誤った結果を表示します。CUDA FortranおよびOpenACCカーネルのステップ実行は部分的にサポートされていますが、正しくない行番号が表示されます。cuda-gdbの追加の一般的な制限についてはドキュメントを参照してください。
- コンパイラオプション-stdparを使用してC++ Parallel algorithmを高速化する場合、各アルゴリズムは仮想関数や関数ポインタ、C++の例外は使用できず、ヒープを指すポインタのみを使用することができ、かつランダムアクセスイテレータでなければいけません。イテレータとしては生ポインタが最適に機能します。
- UCX 1.9.0でビルドされたOpen MPI 4.0.5はベータ版機能で、MOFED 5.0をサポートしています。それ以前のバージョンのMOFEDを使用しているシステムでは、互換性問題が発生する可能性があります。