Andy Patrizio Charles
為什么原本用于電腦游戲的圖形處理芯片在企業計算中變得越來越重要了呢? 答案可能在芯片之外。
很少有處理器能在其所設計應用的領域之外獲得巨大成功,而圖形處理單元(GPU)正是如此。一款最初旨在加速游戲圖形的芯片,現在它的應用幾乎包羅萬象——從Adobe Prime和數據庫到高性能計算(HPC)和人工智能(AI),等等。
幾乎所有OEM大廠和外包供應商的服務器上現在都有GPU,但它們并非用于圖形加速。這是因為GPU本質上是一個巨大的數學協處理器,現在被用來執行從3D仿真到醫療成像,直至金融建模等計算量非常大的工作。
GPU與CPU
由于GPU設計用途單一,所以GPU的內核要比CPU的內核小得多,因此,GPU有數千個內核,而CPU最多只有32個。對于一項任務而言,有5000個內核可用,因此,這種設計非常適合于大規模并行處理。
Jon Peddie研究公司的主要業務針對圖形市場,其總裁Jon Peddie指出,對于任何需要并行處理的應用程序,都是GPU計算的用武之地。
他說:“過去,并行處理是由x86這樣大量的處理器來完成的,因此成本非常高,而且很難編程。GPU作為一種專用的單用途處理器,其計算密度更高,已經被用于很多數學加速任務中。”
支持GPU的應用程序
GPU在數據中心中的應用開始于本地開發的應用程序,這得益于Nvidia開發的一種名為CUDA的語言。CUDA使用類似C語言的語法來調用GPU,而不是CPU,它不是一次調用,而是能夠并行執行數千次。
隨著GPU性能的提高,以及處理器能夠應用于非游戲任務,越來越多的打包應用程序都開始支持GPU。這包括Adobe Permieri等桌面應用程序,還有服務器端的應用程序,包括SQL數據庫。GPU非常適合用于加速SQL查詢處理,因為SQL在指令集中的每一行都執行相同的操作(通常是搜索)。GPU可以通過把一行數據分配給一個內核來并行處理這一過程。
Brytlyt、SQream Technologies、MapD、Kinetica、PG-Strom和Blazegraph都在他們的數據庫中提供了GPU加速分析功能。甲骨文公司曾披露正在與Nvidia合作,但迄今為止似乎還沒有任何進展。微軟在SQL服務器上不支持GPU加速。
GPU與高性能計算(HPC)
GPU在HPC上也得到了應用,仿真、金融建模和3D渲染等很多任務在并行環境中運行得非常好。據市場研究公司Intersect 360對HPC市場的調查數據,50個最受歡迎的HPC應用軟件包中有34個提供GPU支持,包括所有排在前面的15個HPC應用程序。
這包括化學應用程序GROMACS、Gaussian和VASP,用于流體動力學的ANSYS和OpenFOAM,用于結構分析的Simulia Abaqus和用于天氣/環境建模的WRF等等。
分析師們在報告中說:“我們相信GPU計算在HPC市場上已經開始從量變到質變,這將鼓勵開發者們不斷優化應用程序。”
GPU計算實例
GPU快速興起的市場是人工智能和機器學習,兩者都是大規模并行問題。硬件供應商Supermicro的GPU服務器部門的產品管理主任Sarosh Irani說:“很多企業和首席信息官都在研究怎樣利用深度學習來解決自己的問題。有些人只是涉獵;而有的人則深入其中。而深度學習的應用是非常全面的,人們認識到深度學習能夠幫助他們,他們需要一臺GPU服務器。”
如果你想在某項工作上變得聰明起來,只要有足夠多的樣本,人工智能就能讓你心想事成。人工智能系統學習識別某些東西,例如,癌細胞看起來是什么樣的,但是要做到這一點需要大量的數據,處理好這些數據,才能區分好壞。當發現相關性時,可以建立算法,進行分析。
例如,意大利能源公司Eni和美國的Stone Ridge科技能夠在不到一天的時間內處理完油礦模型,而不是10天。使用3200個NVIDIA Tesla GPU和Stone Ridge的ECHELON軟件進行基于GPU的油礦仿真,在大約15.5個小時內就能處理了10萬個油礦模型,每一個模型平均在28分鐘內就能仿真了油礦15年的生產量。如果使用傳統的硬件和軟件,完成這項任務需要10天的時間。
油礦建模并非易事。通過從地球表面反射的聲波,尋找表明儲油量的回波來發現油礦。然后,反射波數據被轉換成圖像,地球科學家利用這些圖像來確定油礦是否含有碳氫化合物,以及碳氫化合物在圖像中的位置。這就決定了是否值得開采這一油礦。所有這些都需要繁重的數學處理,而這是GPU所擅長的。
GPU制造商:Nvidia和AMD
與CPU一樣,GPU市場也有兩家參與者——Nvidia和AMD。據Jon Peddie研究公司稱,在消費類游戲領域,競爭相當激烈,兩家公司的市場份額分別為60%和40%,Nvidia處于領先地位。
然而,在數據中心,兩家的差距非常大。Peddie報道說,Nvidia占有90%的市場份額,而AMD只占10%。這是因為Nvidia在這一領域深耕了20多年,支持GPU在數據中心以及其他非游戲類的應用。
GPU與CUDA編程
在21世紀初,一些斯坦福大學的研究人員開始深入研究GPU的可編程和并行特性。Nvidia公司聘請這些研究人員開發了CUDA編程語言,支持開發人員采用C++編寫應用程序,通過GPU進行加速。
Peddie評論說:“我非常信任Nvidia。他們資助了全世界的數百所大學來教授CUDA。因此,當一名學生畢業時,他們成為經過預培訓的CUDA開發人員,為CUDA進入我們目前所熟知的行業奠定了基礎。”
CUDA團隊有一名斯坦福教授Ian Buck,現在成為Nvidia加速計算業務部的副總裁。他表示,CUDA的目的是便于學習和使用。他說:“任何知道C語言或者Fortran語言的人,我都能在一天內教會他CUDA。我們早就意識到,我們不應創造一種要求人們去學習新東西的全新的編程語言。”
因此,已經在CPU上運行的應用程序能夠相對快速地進行并行化處理。CUDA的主要變化在于不再像排序例程那樣只調用一次函數,而是調用數千次,每個內核執行一次。但是CUDA只適用于Nvidia GPU。要對AMD GPU編程,必須使用一個稱為OpenCL的庫,CUDA完全不支持它。
GPU與能耗
GPU在基本性能上是CPU強有力的替代者,但是性能和功耗之間有直接關系,所以兩者還保持著聯系。GPU的最大功率為300瓦。雖然Xeons的新一代版本Skylake功耗達到了200瓦,但CPU功耗平均低于100瓦。
最終,GPU因其規模而彌補了它的不足。因為它們可以完成幾十個CPU的工作,所以需要更少的GPU來進行同樣工作量的工作。Nvidia公司表示,進行同樣的工作,新的DGX-2 GPU服務器系統的功耗只是傳統CPU HPC集群的1/8。
對于Supermicro來說,這意味著它必須從頭開始設計一款使用GPU的產品。Irani說:“如果我把一個300瓦的GPU放在系統中,那么可能沒有足夠的功率容量或者散熱能力來支持它。8個GPU,絕對不可能。所以我需要一個定制的機架。”
如果數據中心的功率有限,那這就是個問題。并不是每個人都能夠奢侈地建造足球場那么大的數據中心,而且旁邊必須有一條河,用于水力發電和冷卻。David Rosenberg是彭博(Bloomberg)首席技術官辦公室的數據科學家,他非常喜歡使用GPU來減輕計算工作,CPU需要一年的時間,而GPU一個周末就完成了。
但他也經常有這樣的情況,整個機柜只有一兩個GPU機架,因為它們消耗了機柜所能提供的全部功率。
他說:“我們一直在關注功耗問題。如果我們把500個GPU放到一個數據中心里,那就不能再放其他計算機了。與CPU相比,GPU所提供的計算能力更強。只是它們做的計算比CPU多得多,所以才占用了大量的功率。”
Andy Patrizio是南加州的一名自由撰稿人,20多年來一直從事計算機行業,他所擁有的每一臺x86個人計算機都是他自己組裝的,不包括筆記本計算機。
原文網址
https://www.networkworld.com/article/3271077/servers/gpus-designed-for-gaming-now-crucial-to-hpc-and-ai.html