GPT的發布讓AI再次熱了起來,與上次阿爾法狗不同的是,現在人人都可以跟聊上幾句,給它出出難題,還能調戲下。同期英偉達發布了針對AI領域的全新GPU H100,有的童鞋會疑惑,這個英偉達不是做顯卡打游戲的嗎,怎么就跟AI扯上關系了。其實英偉達的顯卡不是簡單的與AI有關系,而是大有關系。GPU的起源確實是基于圖形處理的需求。早期還沒有專門GPU時,我們打游戲所有的邏輯處理都放在CPU執行,CPU的處理能力越來越強,但經不
住游戲畫面增長的更快,這就對圖形處理提出了更高的要求。
而圖形處理的本質其實就是光影的計算,以下圖為例,在屏幕上畫一個圓非常簡單。
但如過要讓這個圓“立體”起來,其實就是要給它加上光影,像下圖這樣。
游戲畫面也是這樣的邏輯,一個畫面優質的游戲一定是有豐富的光影效果,而光影效果的本質其實就是在虛擬的3維空間里,模擬光的照射。屏幕中的畫面其實就是特定角度下,由計算機計算出的,你應該看到的光影效果。
需要特別注意的是,游戲中你會不停的移動,也就是所有光影的效果都需要實時的計算出來。假設屏幕分辨率為1920*1080,即2073600(207.36萬)個像素,游戲中每個像素都需要根據光影參數來計算顯示的顏色和明暗。假設一個常見的Inter I5 CPU主頻為3.2GHz,即最多每秒可做32億次運算。但這里的一次運算只是做了一次簡單的二進制加減法或數據讀取,一個像素的光影計算我們可以假設需要100次運算,即CPU一秒約處理3200萬次像素運算,大概15張圖片,用專業點的說法,這個游戲流暢度大概是每秒15幀的樣子。
那我們能不能繼續提升CPU的主頻呢,可以但是能提升的空間非常有限。所謂主頻本質上其實就是一個節拍器,CPU執行命令時其實是要按照一個特定的節拍來同步其各模塊的操作。可以想象CPU其實就是個工廠流水線,1+1=2的本質其實至少包含了3個步驟:本質上來說,所有的指令操作、圖形計算,最終到達CPU時都會被拆分成類似于1+1=2這樣的加法運算。而每一個節拍又只能執行其中的一步,如果我們可以將節拍打的更快一些,上述3個步驟執行的也就越快,那我們就說CPU的頻率越高。但再往下看,我們打節拍又受到了晶體管開關速度的限制。簡單來說,節拍打的越快,晶體管的開關速度也就更高,這就直接導致了CPU的發熱問題。所以目前高性能CPU的頻率始終被限制在5GHz,可見從CPU頻率上已沒有太多空間可以提升。工程師們就想到“其實任何一個像素的計算與其他像素的計算結果關系不大”,那為啥不多整幾個計算核心“并行”計算呢,于是GPU就出現了。一個典型的顯卡GTX1060,主頻是1.5GHz大概是Inter I5一半左右,但是它具備1280個計算核心。每個計算核心每秒可做15億次運算,1280個核心每秒就是19200億次運算,那一秒可以處理192億次像素計算,大概925張圖片,是CPU計算能力的61倍!但GPU的特性只能應用于圖形計算這種可以并行的任務,若是做普通的串行任務其速度遠遠不如CPU。
那我們能不能把CPU和GPU結合起來,讓他頻率高,核心數量還多呢?還是不得行,上千個核心提升一點點的主頻就會帶來一些列問題,比如撒熱、抖動、穩定性等等。所以內核數與頻率就是不可能三角,CPU與GPU都只能側重于其中一面,在不同的領域發揮作用。AI的本質其實與游戲差不多,也是大量的計算,只是計算的數據量會更龐大。所謂訓練AI,其實就是向神經網絡中投喂大量的數據。比如我想要生成美女圖片,以前的做法是建設一個有足夠素材的庫,讓美女的各個元素(手、腳、嘴巴、眼睛、身材等等)隨機組合在一起,結果可能差強人意。現在則只需要向神經網絡里導入大量的美女圖片,當你導入的圖片數量足夠多時,神經網絡也就“學會”了什么是美女,這樣它就能自動產出美女。相對應的,如果你一直輸入的是猛男,那它也只能生產猛男了。我們知道其實圖片就是像素構成的,比如下面這張圖的像素是8x8(簡化示意),也就是64個像素點,我們可以用1x64這樣的數組來表示它。以下圖這樣的3層神經網絡為例(原本是7個輸入,我們修改為64個輸入),所謂的數據“投喂”其實就是將圖片以64個數字表示,然后輸入到網絡中。具體怎么輸入呢,其實就是以A0(圖片原始數據)為基礎,來計算A1,接著以A1為基礎計算A2、A3及最終結果A4。計算過程遵循以下公式:其中W1\W2\W3\W4、A1\A2\A3\A4的數據量大小由每一層神經元的個數決定,比如我們每一層設置為64個神經元,則W1是一個64x64的數字矩陣,A1則是1x64的數字矩陣(與輸入一樣)。下圖是一個矩陣相乘的示意。
所以對神經網絡的投喂問題就變成了A0與W1兩個數據矩陣的乘法問題,那么每一層神經網絡的計算就需要至少4096次乘法計算,3層網絡就需要至少12288次乘法計算。這還只是64x64像素的圖片,如果是1280x1280的像素,就需要數百萬次計算。我們很容易就能想到也可以用GPU(顯卡)來執行這些計算,因為每一張圖片的輸入都可以獨立運行,那么我們給顯卡的每一個核都輸入一張圖片,那同時就可以有上千張圖片一起在計算,這樣的計算效率自然是杠杠的。綜上所述,AI的發展離不開大量的算力資源,以GPT4來說,每1000字的算力大約需要0.06美元(約0.4元)。在小規模使用時可能還看不出成本的高低,當AI成為基礎設施,比如搜索引擎,每天上億次的搜索頻率,成本可能也會去到上億的數量級,這還只是其中一個應用。所以未來AI的發展離不開算力,英偉達則是在顯卡的基礎上,專門針對AI開發了特殊的GPU以滿足算力需求,但可見的未來還是遠遠不夠的。參考前幾年的數字挖礦,顯卡的價格將迎來一波上漲。除計算性能外,另外還有更大的成本就是電力。所以可以預見的是,國內會出現一批專門做AI芯片設計的公司(參考比特大陸),還會有一批將數據中心建設到大西北以獲取更廉價電力的小團隊(普通人的機會),這些還都是國家大力支持的。所以發財的路子已經有了,諸位加油。作者:布蘭姥爺
來源:面包板社區
https://mbb.eet-china.com/blog/3887969-441194.html
本文已獲授權