0
本文作者: 三川 | 2017-03-13 16:08 |
英偉達(dá)在 2016 年的強(qiáng)勢崛起,GPGPU (GPU 通用計算)功不可沒。
有許多原因使 2016 稱得上是 GPU 之年。但事實上,除了在核心領(lǐng)域(深度學(xué)習(xí)、VR、自動駕駛),為什么把 GPU 用于通用計算仍然很模糊。
搞清楚 GPU 的作用,要先從 CPU 開始。大多數(shù)人對計算機(jī) CPU 并不陌生,這可能要歸功于英特爾——作為在事實上壟斷了 PC、服務(wù)器平臺 CPU 近十年的供應(yīng)商,英特爾的巨幅廣告支出,直接導(dǎo)致每個人都或多或少聽說過英特爾從筆記本到超算的各層級產(chǎn)品。
CPU 的設(shè)計用途,是對多種應(yīng)用進(jìn)行低延遲處理。CPU 非常適合用于多功能任務(wù),比如電子表格、文字處理、 Web 應(yīng)用等等。于是,傳統(tǒng)上 CPU 是絕大多數(shù)企業(yè)的首選計算方案。
過去,當(dāng)公司的 IT 部門經(jīng)理說要訂購更多計算設(shè)備、服務(wù)器,或者增強(qiáng)云端的性能,他們一般想的是 CPU。
雖是個多面手,一枚 CPU 芯片能承載的核心數(shù)量卻有很大限制。大多數(shù)消費級芯片只有八核。至于英特爾的企業(yè)級產(chǎn)品線,除了為并行計算而設(shè)計的 Xeon Phi 這個“怪胎”,主流至強(qiáng)產(chǎn)品(E3、E5、E7 系列)最多只有 22 核。
CPU 從單核發(fā)展到今天的多核用了幾十年。對 CPU 這么復(fù)雜的芯片進(jìn)行擴(kuò)展有極高的技術(shù)難度,并且需要綜合多個方面:比如縮小晶體管體積、降低發(fā)熱和優(yōu)化功耗等。今天的 CPU 在性能上所取得的成績,很大程度上要歸功于英特爾和 AMD 工程師的多年努力探索。而至今全球未有第三家足以與其 競爭的 PC CPU 供應(yīng)商,在側(cè)面說明了他們的技術(shù)積累,以及研發(fā) CPU 的技術(shù)難度。
用 FLOPS 來衡量,CPU 每年大約有 20% 的性能提升(雷鋒網(wǎng)注:此處有爭議)。而這是對于高度優(yōu)化的代碼而言。
隨著 CPU 性能提升的放緩(雷鋒網(wǎng)注:尤其近幾年來芯片制程工藝進(jìn)步緩慢。硅基芯片的極限大約在 7nm,而替代硅的新技術(shù)尚未成熟),其數(shù)據(jù)處理能力越來越跟不上數(shù)據(jù)增長的速度。做個簡單對比:IDC 估算,全世界數(shù)據(jù)增長的速度大約是 40%,并在不斷加快。
簡單來說,摩爾定律目前已終結(jié),而數(shù)據(jù)卻在指數(shù)級增長。
英特爾 Skylake、Kabylake、Coffelake 路線圖
數(shù)據(jù)增長速度超過 CPU 性能提升速度帶來的后果是:人們不得不利用各種技巧來避免計算性能瓶頸,比如降采樣、索引(indexing),或者采用昂貴的 scale-out 戰(zhàn)術(shù)來避免長時間等待系統(tǒng)回應(yīng)。
我們現(xiàn)在面對的數(shù)據(jù)單位是 exabytes,并正在邁向 zetabytes。而曾經(jīng)顯得無比龐大的 TB,在消費者領(lǐng)域已經(jīng)十分常見。企業(yè)級 Terabyte 存儲的定價已降到個位數(shù)(美元)。
在這個價格,企業(yè)把所有獲取的數(shù)據(jù)保存起來,這過程中,我們生成了足以淹沒 CPU 級別數(shù)據(jù)處理能力的工作集。
這跟 GPU 有什么關(guān)系呢?
GPU 的架構(gòu)與 CPU 很不一樣。首先,GPU 并不具備多功能性。其次,與 消費級 CPU 個位數(shù)的核心數(shù)目不同,消費級的 GPU 通常有上千個核心——特別適合處理大型數(shù)據(jù)集。由于 GPU 在設(shè)計之初有且只有一個目的:最大化并行計算。每一代制程縮減直接帶來更多的核心數(shù)量(摩爾定律對于 GPU 更明顯),意味著 GPU 每年有大約 40% 的性能提升——目前來看,它們尚能跟上數(shù)據(jù)大爆炸的腳步。
CPU 與 GPU 的性能增長對比,用 TeraFlops 橫梁
在 90s 年代,一批工程師意識到:在屏幕上進(jìn)行多邊形圖像渲染,本質(zhì)上是個能并行處理的任務(wù)——每個像素點的色彩可以獨立計算,不需要考慮其它像素點。于是 GPU 誕生,成為比 CPU 更高效的渲染工具。
簡而言之,由于 CPU 在圖像渲染方面的能力不足,GPU 被發(fā)明出來分擔(dān)這部分工作,此后就成了專門搞這方面的硬件。
有了上千個更加簡單的核心,GPU 能高效地處理讓 CPU 十分吃力的任務(wù)。只要有合適的代碼配合,這些核心就能處理超大規(guī)模的數(shù)學(xué)運算,實現(xiàn)逼真的游戲體驗。
但有一點需要指出:GPU 的強(qiáng)大性能,不只來源于增加的核心數(shù)量。架構(gòu)師們意識到,GPU 的處理性能需要有更快的內(nèi)存相配合才能發(fā)揮。這讓研究人員不斷研發(fā)更高帶寬版本的 RAM 內(nèi)存。今天,GPU 的內(nèi)存帶寬相比 CPU 已經(jīng)有數(shù)量級上的領(lǐng)先,比如前沿顯存技術(shù) GDDR5X,HBM2,還有開發(fā)中的 GDDR6。這使得 GPU 在處理和讀取數(shù)據(jù)上都有巨大優(yōu)勢。
有這兩大優(yōu)勢,GPU 在通用計算領(lǐng)域有了立足點。
GPU 與 CUDA
事實證明,高端游戲玩家和計算機(jī)科學(xué)家在硬件需求上有不少交集。計算機(jī)科學(xué)家們逐漸發(fā)現(xiàn),利用 GPU 的大量核心執(zhí)行復(fù)雜數(shù)學(xué)運算,在 HPC 領(lǐng)域有巨大應(yīng)用前景。但是,寫出能高效運行于 GPU 的代碼極度困難。想要駕馭 GPU 計算性能的研究人員,必須把相關(guān)運算“黑進(jìn)”圖形 API,讓顯卡以為要處理的計算任務(wù)和游戲一樣:決定像素色彩的圖像渲染計算。
但一切在 2007 年發(fā)生了變化。這一年,英偉達(dá)發(fā)布了 CUDA(Compute Unified Device Architecture)。 它支持 C 語言環(huán)境的并行計算。對于那些靠 C 語言發(fā)家的程序猿,他們可以直接開始寫基礎(chǔ)的 CUDA 代碼,一系列運算任務(wù)從此可以很容易地并行處理。
CUDA 誕生的結(jié)果是:似乎在一夜之間,地球上的所有超級計算機(jī)都采用了 GPU 運算。深度學(xué)習(xí)、自動駕駛以及其他 AI 領(lǐng)域開始煥發(fā)光芒。
并行計算是發(fā)揮 GPU 性能的關(guān)鍵。這意味著你可以同時處理運算,而不是一步步進(jìn)行。復(fù)雜問題可被分解為更簡單的問題,然后同時進(jìn)行處理。并行計算適用于 HPC 和超算領(lǐng)域所涉及的許多問題類型,比如氣象、宇宙模型和DNA 序列。
并不是只有天體物理學(xué)家和氣象學(xué)家才能充分利用并行計算的優(yōu)點。事實證明,許多企業(yè)應(yīng)用能從并行計算獲得超出尋常比例的好處。這包括:
數(shù)據(jù)庫查詢
密碼學(xué)領(lǐng)域的暴力搜索
對比不同獨立場景的計算機(jī)模擬。
機(jī)器學(xué)習(xí)/深度學(xué)習(xí)
地理可視化
你可以聯(lián)想一下你們公司所面臨的數(shù)據(jù)問題——那些數(shù)據(jù)量和復(fù)雜程度極高,你以前連想都不敢去想怎么處理,但深層次分析很有可能會有助于解決的問題。我懷疑這樣的問題是可并行計算的——而 CPU 層次的計算解決不了,不代表 GPU 也不行。
作為小結(jié),GPU 在以下方面有別于 CPU:
一枚 GPU 芯片有幾千個核心。通常意義的 CPU 最多只有 22 個。
GPU 為高度并行的運行方式而設(shè)計。CPU 為一步步的連續(xù)計算而設(shè)計。
GPU 的內(nèi)存帶寬比 CPU 高得多。
CPU 適合于文字處理、運行交易數(shù)據(jù)庫、網(wǎng)絡(luò)應(yīng)用等場景。 GPU 適用于 DNA 排序、物理建模、消費者行為預(yù)測等任務(wù)。
上文中,我討論了問什么 GPU 代表著計算的將來。但它的商用價值如何呢?
GPU 在經(jīng)濟(jì)成本上其實占優(yōu)勢。首先,一個完整的 GPU 服務(wù)器比一個完整的 CPU 服務(wù)器要貴很多。但兩者之間難以直接對比。一個完整的 8 路 GPU 服務(wù)器,成本可達(dá)八萬美元。但一個中等的 CPU 服務(wù)器配置大約只需要 9000 刀。當(dāng)然,RAM 和 SSD 的使用量對價格有很大影響。
咋看之下,CPU 好像比 GPU 劃算多了。但請注意,250 個這樣的“中等” CPU 服務(wù)器在并行計算性能才相當(dāng)與一臺如上所說的 GPU 服務(wù)器(雷鋒網(wǎng)注:只是作者個人的估算,以支撐他的觀點,大家看看就好)。
很明顯,如果你要做的只是并行計算,選擇 GPU 服務(wù)器要劃算多了。極端情況下,如果硬要上 250 臺 CPU 服務(wù)器,加上電費、場地費、網(wǎng)費、溫控、維護(hù)管理費,最終價格會是天文數(shù)字。因此,如果并行計算占了公司工作量的大部分,從投資回報率的角度,GPU 是正確的選擇。
在延遲對數(shù)據(jù)分析的影響方面,我已經(jīng)寫了很多。我的基本論點是:當(dāng)一個開發(fā)者需要等待幾分鐘才能得到查詢結(jié)果,人的行為會發(fā)生變化。你開始找捷徑,你開始用更小的數(shù)據(jù)集執(zhí)行查詢操作,你只會執(zhí)行不耗費時間的查詢,你不再探索——執(zhí)行幾個查詢就把這當(dāng)做是方向。
提高計算機(jī)響應(yīng)速度對生產(chǎn)力的提升很難衡量。但你可以想一想,寬帶時代和撥號時代的生產(chǎn)力差別。
最后,在云時代,與其建立自己的 GPU 服務(wù)器, 租用 GPU 云計算服務(wù)對于很多客戶來講十分劃算。GPU 計算的門檻已經(jīng)無限降低。
via mapd
相關(guān)文章:
英偉達(dá)的芯片之路:從智能手機(jī)的落敗到智能汽車的崛起
英偉達(dá)GTX 1080 Ti發(fā)布:11GB顯存,性能超Titan X,售價699美元
英偉達(dá) CEO 黃仁勛:AI、VR、自動駕駛以及 GPU 的發(fā)展前景
登上CES主舞臺,英偉達(dá)等到了GPU計算的爆發(fā) | CES 2017
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。