分子模擬榨乾GPU性能的參數建議

顯卡加速自從在分子模擬開始使用以來,大大加速了分子力學的模擬速度,引sob大提到的觀點“一個家用高端四核處理器加上一張消費級顯卡(如RTX2060)就可以超過20核雙路服務器”。

這裏給出一些關於分子模擬如何最大化使用顯卡加速的建議。搬運自amber官網(http://ambermd.org/gpus12/),原則上只適用於amber的pmemd,不過分子模擬的算法大多類似,也可以遷移到gromacs之類的軟件

1、避免使用較小的NTPR,NTWX,NTWV,NTWE和NTWR值。 過於頻繁地寫入到輸出、重啓和軌跡文件會損害在CPU運行時的性能,這對於GPU加速模擬來說更爲嚴重,因爲向GPU複製數據和從GPU複製數據需要大量成本。通過在儘可能多地在GPU上計算,僅在絕對必要時複製回CPU內存則可以實現性能最大化,也就是所謂CPU到GPU內存同步的最小化 。 同時這也保證了僅在絕對必要時才計算能量,從而減少計算開銷,反之將NTPR或NTWE設置爲低值將導致過多的能量計算。 最好不要將這些值中的任何一個設置爲小於100的數(除了用0以禁用它們的情況),並且理想情況下使用500或更多的值,比如 NTWR> 100000是一個理想的設定。
2、避免設置ntave / = 0。設置打印運行平均值意味着需要計算每一步的能量和力,這對純CPU計算來說代價還不太大,但在GPU上運行時這可能導致性能損失8%或更多。 類似的,你也應該將ene_avg_sampling的值設置爲較小的值。
3、儘可能避免避免使用NPT系綜(NTB = 2)。 幾種系綜的模擬速度一般爲NVE≈NVT> NPT。 然而,對於顯式溶劑模擬,我們始終需要運行至少一些NPT以使密度平衡。不過一旦完成密度平衡,通常可以切換回NVT進行模擬。
4、除非需要,否則應避免在隱式溶劑GB模擬中使用GBSA。 GBSA關鍵字是在CPU上計算的,因此在每個MD步驟上GPU和CPU的內存之間需要進行同步。關閉此選項的話只有在每個NTPR或NTWX步驟才需要進行內存同步。
5、使用Berendsen恆溫器(ntt = 1)或Anderson恆溫器(ntt = 2)代替Langevin恆溫器(ntt = 3)。 Langevin模擬需要非常大量的隨機數,這會略微降低性能。
6、不要認爲對於小型系統GPU總是會更快。 通常,對於少於150個原子的GB模擬和少於9,000個原子的PME模擬,CPU版本在單個節點上的性能優於GPU版本的情況並不罕見。 一般來說GPU和CPU運行之間的性能差異將隨着原子數的增加而增加。此外,使用的非鍵截斷越大,GPU相對純CPU計算性能的提升就越好。 -
7、跨多個GPU並行運行時,不要嘗試共享節點互連。 例如,你應該避免在單個節點上運行2個單獨的MPI作業。假設你有2個節點,每個節點都有一個QDR IB卡,1個C2050和1個C1060,如果你嘗試在2個C2050上運行雙GPU作業,在另外2個C1060上運行第二個雙GPU作業,則性能可能會非常差。 在並行運行時混合不同型號GPU也是不可取的。 在這種情況下,建議將兩張C2050放在一個節點中,兩張C1060放在另一個節點中。
8、並行運行以獲得最佳性能時,應使用最新的互連技術。 在撰寫本文時,最新的技術是第2代QDR IB。你還應確保設置GPU Direct支持(Mellanox IB卡),取決於計算作業,這通常會提高10%到25%的性能。理想情況下,你還應確保所有GPU卡和infiniband卡都在完整的x16插槽中,這意味着它們將作爲x16插槽進行電氣連接,而不是那種看上去是物理x16但實際上分成多個插槽以兼容x8或x4插槽的接口。(提防像戴爾8路break out boxes這樣的垃圾)
9、關閉ECC糾錯(C2050 and later)。ECC可能會使性能損失高達10%並且會損害並行擴展。 你應該在嘗試之前驗證你的GPU是否正常工作,並且沒有給出ECC錯誤。 你可以在Fermi(或更高)架構的顯卡上關閉此功能,然後以root身份爲每個GPU ID運行以下命令,然後重新啓動:
nvidia-smi -g 0 --ecc-config=0 (repeat with -g x for each GPU ID)
我們已經在各種硬件上對AMBER進行了廣泛的測試,證明了ECC對AMBER分子模擬的可靠性幾乎沒有任何好處,這也是我們推薦在GeForce遊戲顯卡上進行AMBER分子模擬的部分原因。 -
10、如果你的顯卡支持,打開GPU Boost。NVIDIA的新款GPU如K40支持GPU Boost,如果供電和散熱允許,可以提高顯卡頻率。 打開GPU Boost的命令:
sudo nvidia-smi -i 0 -ac 3004,875 它將設備0置於最高升壓狀態。
返回正常狀態: sudo nvidia-smi -rac
在沒有root權限下打開Boost: nvidia-smi -acp 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章