■原文 More bang for your buck: Improved use of GPU nodes for GROMACS 2018, DOI: 10.1002/jcc.26011[1]■翻譯: 劉玉傑; 校對: 李繼存
摘要我們確定了在Linux計算集群上, GROMACS 2018程序運行分子動力學(MD)模擬的最佳硬體. 因此, 我們在各種計算節點上對GROMACS性能進行了基準測試, 並將其與節點成本聯繫起來, 其中的成本可能也包括能源和冷卻成本. 與我們早先使用GROMACS 4.6在2014年的硬體上進行的調查一致, 消費級GPU節點的性價比遠高於CPU節點. 然而, 在GROMACS 2018中, CPU到GPU處理能力的最佳平衡更多地轉向了GPU. 因此, 與針對舊GROMACS版本優化的節點相比, 針對GROMACS 2018及更高版本進行優化的節點具有更高的性價比. 而且, 向GPU處理的轉移使得使用新GPU升級舊節點變得更便宜, 得到的性能與相近的全新硬體基本相同.
結果對GROMACS性能發展的評估圖7: GPU節點上GROMACS 4.6-2018版的性能的演變. 在所有實例中, 短程非鍵相互作用都卸載到GPU, 對於2018版, 也可以將PME網格計算部分卸載到GPU(最頂部的黑條). Tesla V100和GTX 1080 GPU掛載到一個帶有兩個Xeon E5-2620v4處理器(2×8核)的節點上. Tesla K80 GPU掛載到一個帶有兩個Xeon E5-2620v3處理器(2×6核)的節點上.
如圖7所示, 由於前面所述的算法改進和優化, 自我們之前的研究以來, 對4.6和2016版之間的最初四個版本, 在先前的硬體(例如Tesla K80)上模擬性能提高了65%, 在新一點的硬體(例如GTX1080和Tesla V100)是提高達75%-90%. 對在CPU上使用PME的2016和2018版之間, 我們測量得到了6%-9%的性能提升(圖7中的淺藍色條和深藍色條), 這主要歸功於動態修剪算法. 我們預計這種優勢會隨著未來GPU硬體的發展變得更大, 因為計算時GPU卸載越快, 該算法的好處就越大. 對於給定的基準測試系統和伺服器設置, 我們觀察到, 使用最新GPU時額外的PME卸載可以提升35%-84%的性能(見圖7中的黑條). 同時, 在傳統硬體設置上, 卸載到老一代的Tesla K80會導致速度變慢. 為了更好地理解這種性能的改變, 我們下面將探討GROMACS 2018中異構PME卸載代碼的性能特性.
圖8: GROMACS 2018性能與每個GPU使用CPU核心的關係. GTX 1080, RTX 2080和Tesla V100卡安裝在帶有Xeon E5-2620v4處理器(2×8核)的伺服器節點上, 而Tesla K80安裝在帶有兩個E5-2620v3處理器(2×6核)的節點上. 實線表示PME卸載到GPU時的性能, 而帶有較小符號的虛線表示使用CPU計算PME時的性能(水平軸給出核心數目).
我們的評估基準測試是在代表GPU密集設置的伺服器上進行的, 這些伺服器由具有相當適度性能的Xeon CPU和快速加速器組成. 一般而言, 這對GROMACS具有挑戰性, 這可以從性能與所用核心數的強烈依賴關係看到(圖8中的虛線). GROMACS 2018開發的主要性能目標之一是, 在平衡硬體上達到接近先前卸載方案(僅限非鍵)的峰值模擬速度, 但GPU只使用少數CPU核心. 在我們的基準測試硬體設置中, GTX 1080(圖8中的淺綠色曲線)與E5-2620v4的大約12-14個核心相結合可以認為是平衡設置. 對於這兩個系統, 每個GPU只使用四個核, PME卸載功能可以分別達到無卸載峰值的80%和90%.
2016版需要許多快速核心才能在CPU和GPU之間實現良好的負載平衡, 而在2018版中, 在大多數情況下, 像我們的基準測試系統那樣, 只有4-6個較慢(典型伺服器)的核就足以達到>80%的峰值模擬性能(例如使用一個節點的16個核). 工作站的核心通常核心, 但很快. 相比之下, 伺服器通常擁有比工作站更多但更慢的核心. 為了比較兩種節點類型的原始CPU處理能力, 我們考慮"core-GHz", 即核心數目乘以主頻. 我們發現, 使用中到高端GPU, 10-15 "core-GHz"通常足以在典型的生物分子模擬任務(如我們所用的)中接近峰值性能. 但是, 如果在卸載非鍵和PME計算後CPU還有許多剩餘工作要做(例如, 大量的成鍵相互作用或自由能計算設置), 可能需要更多的CPU核心才能實現最佳平衡. 此外, 當可以使用更大更快的GPU時, 這種平衡當然會發生偏移. 例如Tesla V100(或性能相近的GeForce RTX 2080Ti)在性能達到平臺期(紫色線條)之前實際上確實需要大約8-10個核心, 相當於16-20 "core-GHz". 然而, GPU尺寸的增加也為計算帶來了挑戰: 大型設備難以飽和, 無法通過像MEM基準測試等常見工作負載獲得峰值吞吐量, 這就是為什麼Tesla V100的優勢相對於RTX 2080較小, 尤其是與更大的RIB基準測試(圖8中的紫色和深綠色線)進行比較時.
PME卸載的另一個好處是, 可實現的峰值性能也會提高, 並且在使用快速GPU的情況下, 可以實現顯著的性能提升(見圖8中的深綠色和紫色線條), 這在以前使用較慢CPU的情況下是不可能實現的. 相反, 如果使用早期GROMACS版本的最佳CPU-GPU設置, PME卸載可能不會提高性能. 特別是在傳統GPU硬體上, PME卸載通常較慢, 這反映在Xeon E-2620v3 CPU與Tesla K80基準測試中, 其中每個GPU大約使用5-6核心.
總之, 由於動態修剪算法和PME卸載的結合, GROMACS 2018版可以將更少和/或更慢的CPU核心與更快的GPU結合起來使用, 這特別適用於GPU密集型硬體的吞吐量研究. 如果使用的硬體接近2016版的平衡設置, PME卸載並不會帶來顯著的性能提升, 但新代碼為使用進一步加速器升級提供了可能. 作為一個例子, 一個8核工作站的CPU(如AMD Ryzen 7 2700), 大約會與圖8中的10-16個核心一樣快, 當與GTX 1080一起使用時, PME卸載幾乎不會提升性能, 即便使用RTX 2080, 改進也不大(假設工作負載與我們的相似). 但是, 為這樣的工作站添加第二塊GPU幾乎會使性能翻倍.
運行MD的最佳硬體表3: GROMACS 2018單節點性能(兩次運行平均)和相應的性價比. 給出了在具有N個GPU的節點上, N個模擬的整體性能(4R除外, 它表示運行了4次模擬).
U處理器 AMD/Intel插槽×核主頻(GHz)掛載GPUMEM(ns/d)RIB(ns/d)≈淨價(€)性價比 MEM表3和圖9顯示了我們得到的當前硬體排名. 總體而言, 與沒有GPU的同類產品相比, 我們所測試的消費級GPU節點的性價比大致是3-6倍. 具有消費級GPU的新節點的性價比都非常相似; 大多數都小於1.5倍, 因此在雙對數圖中大致分布在一條等值線上(圖9). 注意, 這種相似性來自我們的硬體篩選, 並不意味著任何具有消費級GPU的節點都具有相近的性價比. 有非常多可能的硬體組合我們沒有考慮, 因為一個或多個單獨組件的高成本從一開始就排除了它們性價比的競爭性.
圖9: (整體)模擬性能與節點淨成本的關係. MEM(圓圈)和RIB(星星)根據CPU類型著色. 白色填充符號表示沒有GPU加速的節點; 虛線將GPU節點與對應的CPU連接起來. 灰色: 具有與圖1相同性價比的等值線, 右下方性價比更好. 升級了GPU的表4中的舊節點以黃色(圖例)表示.
具有良好性價比的最便宜節點, 大約從1,400歐元起, 分別是Intel E3-1270v5, E3-1240v6或Core i7-6700K CPU結合GeForce 1070(Ti). 通過將E5-2630v4或Ryzen 1950X CPU與兩個(或可能更多的)RTX 2080 GPU相結合, 能得到最佳性價比(以當前定價算), 起價為3,000歐元. 消費級GPU節點的最佳整體性能為AMD Epyc 24核心節點加四個1080Ti GPU.
考慮到空間要求, 表3中列出的大多數節點類型能夠放到一個高度單位(U)的機架空間中. 一個例外是Ryzen Threadripper 1950X, 它只能在臺式機箱中使用(如果安裝在機架中, 大約會使用4U).
替代方案: 使用最新的GPU升級現有節點如果不願使用新硬體替換老的GPU節點, 一個可能更好的替代方案是只將GPU替換為功能更強大的新型GPU. 與舊版本相比, GROMACS 2018會將更多相互作用的計算卸載到GPU上, 因此GROMACS 2018需要GPU提供更多的計算能力, 但對CPU計算能力的需求更小. 因此, 幾年前的CPU型號通常可以理想地與現代GPU一起使用.
例如, 作為2014年調查的一部分, 對具有兩個K20Xm GPU的雙十核節點, 通過使用最新的RTX 2080 GPU替換舊的GPU, 對於MEM基準測試所得的性能提升為原來的3.5倍. 表4列出了不同升級方案的性能提升. 每一部分的頂行給出了GROMACS 2018在舊節點上的性能, 而下行顯示了升級GPU後的性能提升. 取決於具體的新舊GPU類型, 只需要花費比較低的成本購買GPU而不是整個節點, 就可以輕鬆地將整體性能提升為原來的兩倍. 性能方面, 四個1080Ti GPU與新的EPYC 7401處理器(24核)一起使用, 或與兩個舊的E5-2670v2處理器(2×10核)一起使用, 沒有太大區別. 圖9中的黃色和橙色符號顯示了這些節點的性能與使用現代GPU升級的成本關係.
能源效率為了確定節點在其使用周期內的總成本, 我們確定了其功耗. 假設能源和製冷的淨成本為每千瓦時0.2歐元, 我們計算了所選節點型號的總成本, 即運行五年的硬體和能源成本之和(圖10, 能源和冷卻在五年中每一年的成本). 對於所考慮的節點型號和平均3-5年的壽命, 硬體和能源的成本是相似的. 然而, 一般情況下並非如此, 例如使用專業GPU, 硬體成本可輕鬆高達三倍.
圖10: 選定節點型號的總成本分解圖, 能源和冷卻成本以每千瓦時0.2歐元計, 節點壽命為五年.
圖11顯示了所選節點型號的能源效率與其GROMACS性能的關係. 使用GROMACS 2018, 除模擬性能更高外, GPU節點的每瓦性能是CPU節點的兩倍以上.
圖11: 所選節點型號對RIB測試系統的性能與其能效的關係. 無GPU的節點(白色填充)性能和能效都低, 與GROMACS版本和CPU代數無關. 使用新GPU的GROMACS 2018(黑色和綠色填充符號)具有最佳能效.
通過將硬體和能源成本與生成的軌跡量聯繫起來, 我們得出了在不同節點型號上生成MD軌跡的總成本(圖12). 我們得到了三個主要觀察結果: (1) 在沒有消費級GPU的節點上, 軌跡成本最高(圖中標有星號); (2) 對於使用2014年硬體的GROMACS 4.6, 最佳GPU節點的軌跡成本是單純CPU節點的0.5~0.6倍; (3) 使用GROMACS 2018和當前硬體, 該因子減少到約0.3.
圖12: 假定運行五年情況下, 對RIB基準測試體系所選節點型號的軌跡成本, 包括能源和冷卻成本, 以每千瓦時0.2歐元計. 圖的上半部分展示了2014年使用GROMACS 4.6[16]所得的結果, 下半部分給出了GROMACS 2018在最近的硬體, 使用新GPU升級的舊硬體(最低的三個條形圖)上的結果. 無GPU節點的軌跡生產成本最高(星號).
粗粒化模型我們使用全原子基準測試所用節點型號的一部分運行了Martini體系, 結果如圖13所示. 總體情況與全原子基準測試結果(圖9)非常相似, 但有一些差別.
圖13: (整體)模擬性能與節點淨成本的關係, 類似圖9但基於兩個Martini力場粗粒化基準測試(囊泡和膜)的結果. VES(正方形)和BIG(三角形)符號的顏色表示CPU類型. 白色填充符號表示無GPU加速的節點; 虛線將GPU節點與對應的CPU連接起來. 使用新GPU的舊節點以橙色(圖例)表示.
類似全原子系統, 具有消費級GPU節點的性價比明顯高於CPU節點. 然而, CPU節點和消費級GPU節點之間的差距沒有全原子情況下的那麼明顯. 對於小的VES體系, 性價比倍數大約為2-4, 對於BIG膜, 倍數為1.5-2. 與全原子情形一樣, 使用最新消費級GPU升級的舊節點具有最好的性價比.
雖然Martini粗粒化MD體系的工作量與全原子系統的工作量(粒子密度較低, 無PME網格)有很大不同, 但事實證明, 對於全原子MD而言最佳的節點型號同樣非常適合用於運行粗粒化模擬.
對GROMACS 2018的結論在2014年, 我們發現, 與無GPU的節點或具有專業GPU的節點相比, 具有消費級GPU的節點提供了效果最佳, 因為它們每歐元所產生的軌跡量顯著更高. 對當前硬體, GROMACS 2018也具有相同的結論. 此外, 現有差距已經明顯增大: 考慮到節點的原始價格, 現在使用GROMACS 2018, 消費級GPU節點所產生的軌跡可以增加至三到六倍, 相比之下, 2014年使用GROMACS 4.6可以增加至兩到三倍. 如果包括能源和冷卻成本, 這個倍數從2增加到大約3.
除短距離非鍵相互作用之外, 這種顯著的性能改進可能是因為將PME網格計算卸載到了GPU上. PME卸載使得最佳硬體平衡更傾向於消費級GPU. 通過性價比確定的最佳CPU/GPU組合, 每個1080Ti或2080 GPU大約需要4到8個CPU核心; 一個有用的一般性經驗規則是, 對於類似本文所示的模擬體系, 10-15 "core-GHz"就足夠了, 而升級到15-20 "core-GHz"(或者具有額外CPU計算能力)的機器在將來也是可以的.
此外, PME卸載為特定於舊GROMACS版本的GPU節點提供了廉價升級的可能性. 將舊的GPU替換為目前最先進的型號, 而其他設備保持不變, GROMACS 2018就可以達到最佳CPU/GPU平衡, 這樣對GPU的投資相對較小.
展望因為硬體在不斷發展, 將來可以使用新的組件(CPU, GPU, 裸機, 主板等), 很可能將來會出現比本文所確定的性價比更高的配置. 如果你在使用那些本文未提及的硬體配置, 我們希望你能從https://www.mpibpc.mpg.de/grubmueller/bench下載我們的基準測試輸入文件, 這些文件採用CC許可協議, 你可以使用它們進行自己的基準測試, 這樣我們在更新表格時可以包含你的數據.
值得指出的是, 本文給出的結果確實適用於GROMACS 2019版, 在撰寫本文時它的代碼剛剛發布. 在性能方面, 這個新版本只有適度的提高, 但也有一些值得注意的地方. 新版本可以使用OpenCL支持PME卸載, 這在AMD GPU上特別有用, 特別是考慮到(現在已經是上一代的)Radeon Vega GPU相對於其競爭者的優勢. 當將它們的性價比與Tesla GPU進行比較時, 它們的優勢尤為明顯(見圖3和4).
2019版本的另一個值得注意的附加功能是, 可以使用CUDA卸載(大多數)成鍵相互作用. 但是, 由於GROMACS具有針對成鍵相互作用高度優化的SIMD內核, 因此只有在可用CPU資源較低或模擬系統中包含大量成鍵相互作用的情況下, 成鍵卸載功能才會提升性能. 對於我們的基準測試, 這意味著對於只需幾個核心與快速GPU配對的情況性能會得到改善, 如圖8中紫色和深綠色線在1-3核心範圍內所示.
參考[1] More bang for your buck: Improved use of GPU nodes for GROMACS 2018, DOI: 10.1002/jcc.26011: https://onlinelibrary.wiley.com/doi/full/10.1002/jcc.26011