如何判斷面向GPU的數(shù)據(jù)庫(kù)是否適合你的大數(shù)據(jù)項(xiàng)目?
譯文GPU承諾會(huì)徹底改變大數(shù)據(jù)分析領(lǐng)域,但是它并不是適合每種應(yīng)用的***選擇。
Hadoop很酷,Spark很快,但有時(shí)候你需要經(jīng)過(guò)優(yōu)化的硬件,處理越來(lái)越龐大的數(shù)據(jù)工作負(fù)載。這正是Kinetica基于的前提,這種內(nèi)存中數(shù)據(jù)庫(kù)充分發(fā)揮了大規(guī)模分布式圖形處理單元(GPU)的強(qiáng)大功能:有望將實(shí)時(shí)分析性能提升100倍至1000倍。
考慮到如今可用的一堆大數(shù)據(jù)分析方案,這種承諾讓人有點(diǎn)犯暈。但它有點(diǎn)樂(lè)觀了,因?yàn)镚PU非常擅長(zhǎng)處理依賴高度并行化矩陣數(shù)學(xué)的工作負(fù)載,但是未必適合一系列更廣泛的大數(shù)據(jù)應(yīng)用。
至少現(xiàn)在是這樣。
GPU在大數(shù)據(jù)領(lǐng)域的崛起
Kinetica(前身是GPUdb)問(wèn)世已有好幾個(gè)年頭了,由于它可以在大規(guī)模部署環(huán)境取代甲骨文及其他行業(yè)巨頭,因而屢獲獎(jiǎng)項(xiàng)。首先,美國(guó)政府使用跟蹤恐怖分子的數(shù)據(jù)庫(kù)來(lái)跟蹤和擊斃恐怖分子。***,美國(guó)郵政服務(wù)部門(mén)部署了Kinetica,以減少欺詐、簡(jiǎn)化運(yùn)營(yíng)。
取得了什么樣的效果?不妨考慮這一點(diǎn):2015年投遞了1500多億封郵件,行駛里程卻減少了7000萬(wàn)英里,因而省下了700萬(wàn)加侖燃油。在這一切的同時(shí),從213000多個(gè)掃描設(shè)備獲取數(shù)據(jù),美國(guó)各地的郵局和處理中心有15000多個(gè)并發(fā)用戶,另外結(jié)合了地理空間數(shù)據(jù)來(lái)預(yù)測(cè)實(shí)時(shí)事件。順便說(shuō)一下,相比美國(guó)郵政服務(wù)部門(mén)一直使用的關(guān)系數(shù)據(jù)庫(kù),這將性能提升了200倍。
雖然看似不一樣,但這種工作負(fù)載恰恰發(fā)揮了GPU的長(zhǎng)處,正如MapD公司的創(chuàng)始人兼***執(zhí)行官托德·莫斯塔科(Todd Mostak)所寫(xiě):“GPU擅長(zhǎng)處理需要大量數(shù)學(xué)密集型運(yùn)算的任務(wù),比如視覺(jué)模擬、超快數(shù)據(jù)庫(kù)事務(wù)、計(jì)算視覺(jué)和機(jī)器學(xué)習(xí)等任務(wù)。”
搞清楚GPU適合的地方
如此說(shuō)來(lái),關(guān)鍵在于搞清楚將面向GPU的數(shù)據(jù)庫(kù)運(yùn)用在何處,因?yàn)樗鼈儾⒉煌瑯舆m用于所有大數(shù)據(jù)應(yīng)用。
正如內(nèi)存數(shù)據(jù)庫(kù)公司MemSQL的***技術(shù)官兼聯(lián)合創(chuàng)始人尼基塔·沙姆古諾夫(Nikita Shamgunov)告訴我:“毫無(wú)疑問(wèn),GPU為某些工作負(fù)載提供了優(yōu)勢(shì),尤其是深度學(xué)習(xí)之類的應(yīng)用。GPU之所以非常適合深度學(xué)習(xí),是因?yàn)閱?wèn)題可以分解成許多小的操作單位,每一個(gè)小小的操作單位可以同時(shí)在大批核心上加以執(zhí)行。”
除此之外,VMware的高級(jí)工程主管賈里德·羅索夫(Jared Rosoff)告知我:“單單一個(gè)GPU就有上千個(gè)針對(duì)矩陣數(shù)學(xué)運(yùn)算經(jīng)過(guò)優(yōu)化的核心。深度學(xué)習(xí)涉及大量的超并行化矩陣數(shù)學(xué)。”如此一來(lái),“像計(jì)算機(jī)圖形這種深度學(xué)習(xí)依賴非常適合GPU的大量并行化矩陣數(shù)學(xué)”,也就不足為奇了。
然而,除了深度學(xué)習(xí)和數(shù)據(jù)可視化之類的應(yīng)用外,久經(jīng)考驗(yàn)的面向CPU的數(shù)據(jù)庫(kù)常常是更好的選擇,沙姆古諾夫繼續(xù)說(shuō):
就深度學(xué)習(xí)之外的領(lǐng)域而言,關(guān)于使用GPU相比CPU的總體成本/效益仍存在著爭(zhēng)論。英特爾等公司在以低成本封裝CPU能力方面非常高效。而圍繞CPU的行業(yè)基礎(chǔ)設(shè)施仍讓GPU方面的任何相似基礎(chǔ)設(shè)施相形見(jiàn)絀。
換句話說(shuō),利用CPU往往成本更低,生產(chǎn)力開(kāi)銷(xiāo)極小,而且行業(yè)對(duì)CPU的支持力度要大得多。另外,大數(shù)據(jù)的一些方面完全更適合CPU。
沙姆古諾夫說(shuō):“比如說(shuō),數(shù)據(jù)處理查詢的其他方面以join和shuffle等操作為主,比如跨集群根據(jù)不同的鍵對(duì)數(shù)據(jù)重新分區(qū)。這些操作在CPU上來(lái)得極其高效。”
羅索夫也對(duì)此發(fā)表了意見(jiàn),表示“大多數(shù)軟件無(wú)法充分利用這種程度的并行化,也無(wú)法用GPU有限的指令集來(lái)處理”,因而讓它成為非常適合深度學(xué)習(xí)這類應(yīng)用的理想解決方案,但是不太適合其他工作負(fù)載。
當(dāng)然,隨著時(shí)間的推移,我們可能會(huì)看到企業(yè)結(jié)合這兩種方法,將GPU用在它擅長(zhǎng)的地方,將CPU用在其余每個(gè)地方。隨著GPU變得更普遍,數(shù)據(jù)庫(kù)也可能會(huì)開(kāi)始加大支持GPU的力度。