パフォーマンス改善

AdaptiveCpp でビルドする際に、デフォルトで即時送信モードが有効になります。

GROMACS 2024 では、AdaptiveCpp のインスタントサブミッションモードをビルド時に手動で有効にする必要がありました (-DSYCL_CXX_FLAGS_EXTRA=-DHIPSYCL_ALLOW_INSTANT_SUBMISSION=1)。現在はデフォルトで有効になっており、GPU で実行する場合にパフォーマンスを最大 20% 向上させ、SYCL/AdaptiveCpp バックエンドを使用する場合に CPU の使用量をわずかに削減します。

より高度な OpenMP 並列化

OpenMPマルチスレッドが、位置制約、GPU LINCSの初期化、ドメイン分割の状態ベクトルのソート、およびいくつかの他の場所で使用されるようになりました。これは、特に、高速なGPUがDDやその他のCPUタスクによってボトルネックになっている場合に重要です。

Issue 5100

GPUバッファ操作がデフォルトで有効化

これは、最新のGPUでは通常、より高速ですが、非常に小さなシステムでは、数パーセントのパフォーマンス低下を引き起こす可能性があります。この場合、古い動作を復元するには、環境変数 GMX_GPU_DISABLE_BUFFER_OPS=1 を設定します。

NVSHMEM を有効にした PP Halo における力と座標の交換

導入されました:データ転送を有効にしたNVSHMEMを使用した、パーティクル間(PP)のハロー交換のためのパック/アンパックカーネル。これにより、すべてのシミュレーション入力タイプでのパフォーマンスが最適化されます。この機能は、NVSHMEMの低オーバーヘッド、非同期通信の能力を活用することで、スケーラビリティを向上させます。NVIDIA Voltaおよびその後のアーキテクチャでサポートされています。この機能を使用するには、ビルド時にNVSHMEMを有効にする(-DGMX_NVSHMEM=ON)必要があり、また、実行時に``GMX_ENABLE_NVSHMEM=1``環境変数を明示的に指定する必要があります。これは初期の実装であり、この機能のパフォーマンス改善は、今後のリリースで計画されています。

Issue 5103