Version 21.7

Release Notes原文
当ページは原文の意訳となっております。

1. 新機能について

NVIDIA HPC SDK 21.7にようこそ。NVIDIA HPC SDKはCPU, GPU, インターコネクトといったHPCプラットフォーム全体のプログラム開発を可能にするコンパイラとライブラリの包括的パッケージです。
 本リリースではいくつかの新しい変更が含まれています。

  • HPC SDK 21.7は NVIDIA Arm HPC Developper Kitのフルサポートを含みます。
  • Arm CPUの性能が、追加されたintrinsicsおよび最適化された数学関数とベクトル化などの様々な強化により改善されました。
  • CUDA Fortranの”cuf kernels”のリダクションが ユーザから明に指定することができます。詳細はCUDA Fortran Programming Guide を参照ください。
  • NVCと NVC++において、-Mint128コマンドラインオプションにより、拡張された整数型 __int128 と unsigned __int128がサポートされます。GPUコードやOpenMPおよびOpenACCでは 128ビット整数型は サポートされないことにご注意ください。将来のリリースでは、128ビット整数型はデフォルトで有効となる予定です。
  • NVC++の -Minfo オプションに新規のサブオプション stdpar が追加されました。-stdpar -Minfo=stdpar オプションでコンパイルすることにより、コンパイラは実行ポリシーを指定した C++ 標準アルゴリズムの呼び出しが、並列化されるかどうかを報告します。さらに、-stdpar を指定してコンパイルした場合に、コンパイラは 並列実行ポリシーを指定した標準アルゴリズムの呼び出しが、並列化されない場合には警告します。
  • NVIDIA HPC SDKは CUDA toolchain 11.4, 11.0, 10.2を含みます。
  • ieee_arithmeticモジュールの ierrr_next_after(x,y) ランタイムライブラリルーチンは、Fortran規格と他の実装と整合するように更新されました。
  • 新しいオプション -gpu=[no]implicitsections が、データ節の配列要素参照を暗黙にアレイセクションとして扱う(扱わない)ように追加されました。このリリースの挙動は、以前のリリースの挙動と同じですが、将来のリリースでは挙動が変わる予定です。さらなる情報は、HPC Compilers User Guide または manpage を参照ください。
  • すべてのターゲットに対して、-O3 は 2つの浮動小数点の最適化を含み、結果として精度が低下する場合があります。これには以下が含まれます:
    • 浮動小数点除算を近似乗算に書き換えることがあります(x/y => x*1/y)。この動作は -M[no-]recip-div により有効化または無効化することができます。
    • 数式の最適化のための浮動小数点型の式の因数分解。この動作は -M[no-]factorize により有効化または無効化することができます。
      factorization of floating point types for increased symbolic cancelation. This behavior can be enabled or disabled by -M[no-]factorize.
  • Arm において、-O3 と -Mfprelaxed は FMA による最適化を強化しました。
  • Arm と x86において、-Mfprelaxed は浮動小数点をより最適化します。
  • Fortranコードにおいて、 -Minline がインライン展開の機会を増やすよう改善されました。

2. リリースに含まれる各コンポーネントのバージョン

各コンポーネントについて、バージョン番号が記載されております。各バージョンについて詳細を確認したい場合は原文の表をご確認ください。

3. サポートされるプラットフォーム

3.1. プラットフォーム要件

詳細は原文の表をご確認ください。

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コマンドが利用できます。

NVIDIA HPC SDK 21.7は以下のtoolcainを含みます。

  • CUDA 10.2
  • CUDA 11.0
  • CUDA 11.4

CUDA driverのバージョンの最小要件はSection 3.1を参照ください。

4. 制限事項

  • cuda-gdbデバッガがこのバージョンに含まれます。固定境界でないFortran配列のデバッグ情報を正しく扱うことができず、値を参照した場合に誤った結果となります。CUDA fortranとOpenACCカーネルのステップ実行は部分的にサポートされていますが、誤った行番号が表示されます。cuga-gdbの一般的な制限事項についてはcuda-gdbのドキュメントを参照ください。
  • C++の並列アルゴリズムを高速化するために-stdparを利用する場合、アルゴリズムの呼び出しにおいて、仮想関数呼び出しや、関数ポインタによる関数呼び出し、C++例外を含むことができません。ヒープを指すデリフェレンスポインタのみを利用し、ランダムアクセスイテレータを利用する必要があります(通常のポインタをイテレータとするのが最善です)。
  • 並列コードの生成に、nvc++ -stdpar=multicoreを使用した場合に、同じ翻訳単位においてOpenMP pragmaが有効化されます。

5. 廃止事項

  • 現在のデフォルトの-gpu=implicitsectionsは将来のリリースでOpenACC仕様に従って-gpu=noimplicitsectionsに変わります。
  • NVIDIA HPC SDK 21.5からNVC++とNVFORTRANの-cudaオプションはNVIDIA GPU数学ライブラリを自動的にリンクしません。-cudalibオプションを参照ください。
  • NVIDIA HPC SDK 21.3からNVIDIA GPUのKeplerアーキテクチャのHPCコンパイラサポートは廃止されました。
  • NVIDIA HPC SDK 21.3からNVIDIA HPC SDKのKNLアーキテクチャサポートは廃止されました。

Notices

原文をご確認ください。

前の記事

Version 21.5

次の記事

Version 21.9