移植性¶
CUDAデバイスコードのコンパイルをclangで有効化¶
clang は、GMX_CLANG_CUDA=ON を設定することで、デバイスコンパイラとして使用できます。CUDA ツールキット (>= 7.0) も必要です。ただし、公式の NVIDIA CUDA コンパイラ (nvcc) でコンパイルされたバイナリと比較して、生成される実行時のパフォーマンスは通常、劣ります。
必要な最も古い CMake、コンパイラ、および CUDA のバージョンを増やしました。¶
現在、gcc-4.8.1、clang-3.3、icc-17.0.1、CUDA-6.5、CMake-3.4.3 を必要とするため、完全な C++11 サポートを利用できます。
CUDAで利用可能なハードウェアとコンパイルされたコードが互換性があることを確認する機能を追加¶
GPUデバイスを使用しようとしている場合に、`:ref:`gmx mdrun`バイナリが、使用しようとしているGPUデバイスと互換性のあるコードを埋め込んでいないか、または、実行時にコンパイルできるPTXコードが含まれていないかを早期に検出するためのチェックを追加しました。
さらに、ユーザーが手動で GMX_CUDA_TARGET_COMPUTE を 20 に設定し、後続の SM または COMPUTE を使用せずに 2.0 以上のハードウェアで実行する場合、誤ったホスト側のコードの前提(たとえば、割り当てられた共有メモリの量またはテクスチャの種類など)に基づいて、実行時にコンパイルされたフェルミカーネルを実行することになります。この変更により、このような状況を防ぐことができます。
修正:2273
短距離インタラクションにおいて、ネイティブなrsqrtイテレーション(ARM Neon)を無効化¶
修正:2261
FTZ (Floating-point exception) が発生する SIMD テストの失敗を防ぐ¶
非常に小さな引数を使用する、FMAをサポートしていないプラットフォームでは、Intelコンパイラのデフォルトのデノрмаル値に対するフラッシュ・トゥ・ゼロの使用により、わずかなずれが生じる可能性があります。これは、ほとんどの場合無視できる範囲であり、FMAをサポートしていないプラットフォームはすでに過去のものなので、FMAをサポートしていないSIMDプラットフォームでは、その閾値の周りの非常に小さな範囲でのテストを避けるだけで十分です。
OpenCLがMac OSでコンパイルできるよう修正¶
Mac OS 10.13.2 (Macbook Pro で Radeon Pro 560 を搭載) で動作を確認。
確認: nvcc/ホストコンパイラの組み合わせが動作することを確認¶
現在、CMakeの実行時に、単純なCUDAプログラムをコンパイルすることで、サポートされていないnvcc/ホストコンパイラの組み合わせやその他の未知のエラーを検出しています。
FFTW SIMD テストに AVX_512 および KNC シンボルを追加¶
それ以外の場合、CMakeコードは、KNCまたはKNLホストでFFTWが加速されていないことを大声で警告する可能性があります。
CMake ポリシー 0068 の実装¶
CMake-3.9 では、OS X における RPATH と install_name のオプションの動作が変更されました。これにより、将来の CMake のバージョンで削除される可能性のある機能への依存を回避できます。