パフォーマンスの改善¶
デフォルトでGPUを使用します¶
mdrun -update auto は、サポートされている場合はデフォルトで GPU を使用します。これにより、単一の MPI ランクで大幅なパフォーマンス向上が実現されます。
デフォルトのT-およびP-カップリング間隔を増加¶
デフォルトの最大値である温度と圧力のカップリング間隔は、10から100ステップに増加しました。これらの値は、mdpファイルでデフォルト値-1が指定され、より正確な統合のために低い値が使用される場合に適用されます。これにより、GPUでの実行と並列実行の両方のパフォーマンスが向上します。
グローバルな通信頻度は、nstlist に依存しません。¶
グローバルな通信頻度は、nstlistに依存しなくなりました。これにより、特にGPUを使用したシミュレーションにおいて、パフォーマンスが向上する可能性があります。
CUDA および SYCL バックエンドを使用した PME 分解のサポート¶
CUDA および SYCL バックエンドで PME 分解のサポートが追加されました。PME を GPU にオフロードすることで、PME のランク数を -npme オプションを使用して設定できるようになりました(以前は 1 に制限されていました)。この実装には、GPU に対応した MPI と、CUDA ビルド構成で GROMACS をビルドするか、または CUDA または SYCL ビルド構成で cuFFTMp を使用する必要があります。
GPUベースのPME分解のサポートは、まだ十分なテストが行われていないため、現在のリリースでは実験的な機能として含まれています。そのため、慎重にご使用ください(単一のPME GPUを使用した同等の実行結果と比較してください)。この機能は、``GMX_GPU_PME_DECOMPOSITION``環境変数を設定することで有効にできます。|Gromacs|の開発チームは、この機能を成熟させるために、皆様からのフィードバックを歓迎します。
GPU上で実行されるステップ用のCUDAグラフ¶
新しいCUDA機能が導入され、各ステップでGPUアクティビティを単一のCUDAグラフとして実行できるようになりました。これにより、複数のアクティビティを複数のCUDAストリームにスケジュールする必要がなくなります。この機能は、すでにGPU上で実行可能なステップ(すべてのフォースとアップデート計算がGPUで高速化されている場合)にのみ適用されます。これにより、CPUとGPUの両方のスケジュールオーバーヘッドを削減し、特に小規模なケースにおいて、パフォーマンス向上の効果が期待できます。この機能は、オプションで``GMX_CUDA_GRAPH``環境変数を使用して有効にできます。
VkFFT のサポート¶
AMD GPU の場合、VkFFT が統合され、パフォーマンスが向上します。このライブラリを使用するには、すべての非分解された PME シミュレーション(単一ランクまたは単一分離された PME ランク)でサポートされており、AdaptiveCpp (hipSYCL) を使用する場合は、-DGMX_GPU_FFT_LIBRARY=VKFFT オプションで有効にできます。