糾結著數據分析項目的IT專家們可能從不可能的來源中獲取靈感:即視頻游戲。
出于滿足游戲玩家需求的圖形處理單元(GPU)技術在企業(yè)數據中心中擁有了一個天然優(yōu)勢。451 Research的分析師Jason Stamper表示,他們的并行架構使它們非常適合一些可以受益于GPU加速計算的傳統(tǒng)工作負載。
“由于GPU具有數千個內核,并為在大屏幕上處理圖形的分秒運動而設計,如果將其指向行和列數據,那么在進行分析處理方面的速度就會非常快,”Stamper說。
當CPU時速每兩年翻一番時,對GPU加速計算能力的速度幾乎沒什么要求。但隨著時速的提高,具有高計算需求的用戶開始探索用GPU作為替代,他說。GPU的時速比CPU慢,但他們可以同時處理數千個線程。早期采用者包括科學計算和現實世界建模應用程序,它們必須同時處理多個變量的影響。
數據中心GPU計算部門主管Roy Kim說,“你今天看到的天氣預報,就是在超級計算機的后端計算處理數以千計的并行因素來計算的模型”。
雖然超級計算機架構師和科學研究者是第一個使用GPU進行通用處理的,但是企業(yè)收集和分析的數據量超過了每年CPU的改進。
CPU的SQL續(xù)訂
作為哈佛大學的一名研究生,Todd Mostak為他的論文收集了數億條推文,通過Twitter的鏡頭來檢查。Mostak的目標是分析推文和創(chuàng)建地理空間可視化,但他使用常規(guī)的基于CPU的系統(tǒng)遇到了麻煩。
“我發(fā)現這些過程中的一些任務需要一夜的時間,”Mostak說,“但當我早上醒來,我意識到我做錯了,不得不開始進行分析。”
沮喪之處在于無法訪問能夠處理負載的大型服務器集群,因此Mostak創(chuàng)建了自己的數據庫系統(tǒng),由現成的游戲GPU提供支持。
Mostak現在是MapD Technologies的首席執(zhí)行官,MapD Technologies是一家數據庫軟件平臺公司,基于其研究生階段的原型構建了一個兼容SQL的數據庫軟件平臺。Mostak說,相比于游戲,GPU非常適合加速處理SQL查詢這類相對平凡的任務。
“SQL是一種集合語言,你對集合中的每一行都應用相同的操作,”他說,“這個集合可能是幾十億行,GPU基本上可以并行化,你可以將每一行數據分配給一個核心。”
當然,GPU并不是所有工作負載的救星。應用程序必須重構或專門編寫后才能在GPU上運行。一些進程顯然是并行的,并從GPU中獲益最大。其他進程是高度連續(xù)的,且在CPU上運行得最好。
“那么你會在之間的某個地方遇到更為廣泛的問題,”Mostak說,“他們的并行化并不是微不足道的,不過如果你以正確的方式構建代碼,仍然可以從GPU中獲得巨大的好處。”
MapD和其他方使用的這種方法稱為GPU加速計算。它的目的是將CPU和GPU之間的工作分開。即使大多數應用程序的代碼需要進行順序處理,有時也可能會將該代碼的某些計算密集型進程卸載到GPU上。
隨著企業(yè)收集的數據量的增加,從數據中獲得價值的業(yè)務需求也在增加。這就是為什么GPU加速的數據庫開始升溫,451的Stamper說,“在這個領域我們看到了非常強勁的增長”。
例如,Nike使用支持GPU的服務器和MapD的數據庫軟件來分析歷史銷售數據并預測特定地區(qū)的需求。另一個MapD客戶Verizon使用GPU驅動的系統(tǒng),分析來自跟蹤手機服務器的日志。
MapD在這個新興市場上并不是孤軍奮戰(zhàn)。SQream Technologies也為GPU加速分析提供了一種方法。
“這不僅是關乎海量的數據,也關乎全新的商業(yè)需求,”SQream首席執(zhí)行官Ami Gal說,“Uber是一家破壞出租車行業(yè)的數據公司,而Airbnb是一家破壞租賃系統(tǒng)的數據公司。”
許多主要的云提供商現在提供GPU加速計算的實例,這可以降低公司嘗試分析或可視化項目的成本。然而,一些因素可能會減緩GPU供電分析的增長,Stamper說。由于系統(tǒng)像企業(yè)數據庫平臺一樣龐大、復雜和昂貴,因此需要革新。大多數提供GPU加速數據庫系統(tǒng)的公司都是沒有傳統(tǒng)數據庫巨頭那樣響亮的名號、銷售力量或支持基礎架構的小型初創(chuàng)公司。
“盡管企業(yè)會因沒有達到其想要的速度而頗感沮喪中的沮喪,但好的一面是IT部門不需要花太多的錢在新技術上,也不用增加復雜性,”Stamper說。
即使如此,對于那些希望快速分析大型數據集的公司,原始性能增益也不可忽視。GPU加速的數據庫系統(tǒng)能夠替代整個服務器群集的一些工作負載,他說。
更聰明的方法
單個GPU比基于CPU的服務器集群能更快地處理同時線程,這一能力使GPU成為另一種類型新興工作負載的理想選擇。
“在過去幾年里,我們看到了人工智能和機器學習的大爆炸,這恰是理想的并行工量,”Nvidia的Kim說。
人工智能有幾種方法,但是由于用于通用計算的GPU的出現,得到快速發(fā)展的是深度學習。
AI的深度學習旨在用虛擬神經網絡的計算機節(jié)點模擬人類大腦的神經元陣列。網絡由多個層組成,每個節(jié)點執(zhí)行特定功能。然后對來自每個節(jié)點的輸出數據進行加權,以推導出可能的結果。這個概念是幾十年前的,但直到最近,也只有非常大的集群和超級計算機能夠創(chuàng)建一個健壯的神經網絡。
Nuance Communications公司是語音識別軟件Dragon NaturallySpeaking背后的公司,它依靠由GPU提供的深度學習神經網絡來開發(fā)語言學習模型。
Nuance研究總監(jiān)Nils Lenke說:“我們通過顯示數千個口頭話語作為樣本來訓練一個系統(tǒng)來理解語言。這是一個很大的計算量。 “在這些網絡中,節(jié)點執(zhí)行簡單的計算,并且因為我們有很多節(jié)點需要同時做同樣的事情,GPU可以提供理想的幫助。”
越來越多的應用程序支持GPU加速計算,包括許多頂級的人工智能框架。
雖然horizon對于GPU是有希望的,但這并不意味著它將是取代CPU的唯一技術。英特爾投入巨資,特別是用于收購專業(yè)芯片制造商Altera,并未著眼于GPU,而是在可編程陣列(FPGA)上。與GPU類似,FPGA可以比CPU更快地執(zhí)行某些計算。不是作為通用處理器,而是可以對FPGA進行編程以更有效地執(zhí)行特定的指令集。
Ryft提供了一個FPGA加速的數據庫分析平臺。此外,微軟最近透露,其基于Azure的人工智能服務亦將由Altera FPGA提供支持。
“無論是GPU還是FPGA,顯然加速器實乃大勢所趨,”Nvidia Kim說。