為什么AI大模型訓(xùn)練離不開GPU?
大家好呀,我是飛魚。
一般說到顯卡,大多人的第一反應(yīng)是,這不是給打游戲的用的嗎?
其實(shí)顯卡的GPU還可以作為AI芯片使用的。
在GPU火之前,提到最多的就是CPU,那么二者有什么區(qū)別呢?
GPU的計(jì)算單元數(shù)量比CPU多得多。
以英偉達(dá)H100 GPU為例,它包含超過1.8萬個(gè)核心,而頂級(jí)的Intel I9 CPU只有24個(gè)核心,GPU的核心數(shù)是CPU的700多倍。
所以,CPU 擅長(zhǎng) 快速完成單個(gè)運(yùn)算,適合需要逐一執(zhí)行的程序。
GPU 擅長(zhǎng) 并行處理大量運(yùn)算,即使單個(gè)運(yùn)算速度較慢,但可以同時(shí)處理多個(gè)任務(wù)。
相當(dāng)于請(qǐng)兩個(gè)專家寫一萬份小學(xué)作業(yè)和請(qǐng)一萬個(gè)小學(xué)生寫一萬份作業(yè)的區(qū)別。
那AI訓(xùn)練為什么用GPU而不用CPU呢?
因?yàn)锳I訓(xùn)練任務(wù)通常具有簡(jiǎn)單、重復(fù)和計(jì)算量大的特點(diǎn),而GPU可以并行運(yùn)算,可充分釋放計(jì)算效率。
講得更專業(yè)一點(diǎn)就是:
- CPU是基于數(shù)據(jù)流的串行計(jì)算,GPU是基于多變量的矩陣運(yùn)算,后者更適合神經(jīng)網(wǎng)絡(luò)算法為基礎(chǔ)的AI計(jì)算。
為進(jìn)一步加快訓(xùn)練速度,處理更大AI模型(例如ChatGPT)。
研發(fā)者可將許多數(shù)據(jù)中心GPU匯集到一起形成超級(jí)計(jì)算機(jī)。
或者創(chuàng)建一個(gè)非常大規(guī)模的加速器。
最近賣顯卡的英偉達(dá)NIVDIA超越蘋果、微軟成為世界市值最高的公司,背后是全世界對(duì)AI的算力競(jìng)賽。
微軟,買了48.5萬張GPU,全球第一買家。
字節(jié)跳動(dòng),買了23萬張GPU,全球第二買家。
騰訊,大約買了23萬張GPU,全球第三買家。
英偉達(dá)幾乎壟斷電腦領(lǐng)域的顯卡后,在AI領(lǐng)域又幾乎達(dá)到全球壟斷級(jí)別。
有啥其他補(bǔ)充的內(nèi)容,歡迎在評(píng)論區(qū)留言討論。
每日一題
題目描述
統(tǒng)計(jì)字符串中的單詞個(gè)數(shù),這里的單詞指的是連續(xù)的不是空格的字符。
請(qǐng)注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
輸入: "Hello, my name is John"
輸出: 5
解釋: 這里的單詞是指連續(xù)的不是空格的字符,所以 "Hello," 算作 1 個(gè)單詞。
解題思路
我們可以從前往后處理字符串 s
并進(jìn)行計(jì)數(shù),對(duì)于是空格的字符進(jìn)行跳過(不計(jì)數(shù))。
而對(duì)于非空格字符,則在遍歷完一個(gè)完整單詞(連續(xù)一段)后進(jìn)行一次計(jì)數(shù)。
代碼實(shí)現(xiàn)
Java
代碼:
class Solution {
public int countSegments(String s) {
int n = s.length();
int ans = 0;
for (int i = 0; i < n; ) {
if (s.charAt(i) == ' ' && i++ >= 0) {
continue;
}
while (i < n && s.charAt(i) != ' ') {
i++;
}
ans++;
}
return ans;
}
}