更快的機器學習即將來到 Linux 內核
一項開發了很久的內存管理技術將會給機器學習和其它 GPU 驅動的程序很大幅度的提升,而它也將在接下來的幾個版本中進入 Linux 內核。
異構內存管理(HMM)可以允許設備驅動為在其自身內存管理下的進程鏡像地址空間。正如紅帽的開發者 Jérôme Glisse 所解釋的,這讓像 GPU 這樣的硬體設備可以直接訪問進程內存,而不用花費複製帶來的額外開銷。它還不違反現代操作系統提供的內存保護功能。
一類會從 HMM 中獲益最多的應用是基於 GPU 的機器學習。像 OpenCL 和 CUDA 這樣的庫能夠從 HMM 中獲得速度的提升。HMM 實現這個的方式和加速基於 GPU 的機器學習相似,就是讓數據留在原地,靠近 GPU 的地方,在那裡直接操作數據,儘可能少地移動數據。
像這樣的加速對於 CUDA(英偉達基於 GPU 的處理庫)來說,只會有益於在英偉達 GPU 上的操作,這些 GPU 也是目前加速數據處理的主要硬體。但是,OpenCL 設計用來編寫可以針對多種硬體的代碼——CPU、GPU、FPGA 等等——隨著這些硬體的成熟,HMM 能夠提供更加廣泛的益處。
要讓 Linux 中的 HMM 處於可用狀態還有一些阻礙。第一個是內核支持,在很長一段時間裡都受到限制。早在 2014年,HMM 最初作為 Linux 內核補丁集提出,紅帽和英偉達都是關鍵開發者。需要做的工作不少,但是開發者認為代碼可以提交上去,也許接下來的幾個內核版本就能把它包含進去。
第二個阻礙是顯卡驅動支持,英偉達一直在自己單獨做一些工作。據 Glisse 的說法,AMD 的 GPU 可能也會支持 HMM,所以這種特殊優化不會僅限於英偉達的 GPU。AMD 一直都在嘗試提升它的 GPU 市場佔有率,有可能會將 GPU 和 CPU 整合到同一模具。但是,軟體生態系統依然更青睞英偉達;要使其兌現,還需要更多的像 HMM 這樣的中立項目,以及讓 OpenCL 提供和 CUDA 相當的性能。
第三個阻礙是硬體支持,因為 HMM 的工作需要一項稱作 可重現頁面故障 的硬體特性。只有英偉達的帕斯卡系列高端 GPU 才支持這項特性。從某些意義上來說這是個好消息,因為這意味著英偉達只需要提供單一硬體的驅動支持就能讓 HMM 正常使用,工作量就少了。
一旦 HMM 到位,對於提供 GPU 實例的公有雲提供商就會面臨壓力,他們需要支持最新最好一代的 GPU。這並不是僅僅將老款的開普勒架構顯卡換成最新的帕斯卡架構顯卡就行了,因為後續的每一代顯卡都會更加優秀,像 HMM 這樣的支持優化將提供戰略優勢。
(題圖:Thinkstock)
作者:Serdar Yegulalp 譯者:alim0x 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive