 內(nèi)存 算力 CPU GPU名詞區(qū)分)
數(shù)據(jù)流向硬盤(pán)-內(nèi)存-顯存一、核心名詞定義 相互關(guān)系面向模型訓(xùn)練 / 本地部署先一句話(huà)總覽CPU通用計(jì)算總管適用于復(fù)雜的邏輯運(yùn)算GPU并行計(jì)算加速器跑模型主力適用于簡(jiǎn)單的并行計(jì)算例如矩陣計(jì)算內(nèi)存 (RAM)CPU 使用的臨時(shí)空間存放數(shù)據(jù)集、代碼、模型元信息顯存VRAMGPU 專(zhuān)屬內(nèi)存存放神經(jīng)網(wǎng)絡(luò)權(quán)重、中間張量訓(xùn)練最吃它硬盤(pán)永久存儲(chǔ)放數(shù)據(jù)集、模型文件、環(huán)境安裝包讀寫(xiě)速度影響加載快慢算力GPU 每秒能做的浮點(diǎn)運(yùn)算數(shù)量決定前向 / 反向傳播計(jì)算快慢類(lèi)比 CPU 餐廳店長(zhǎng)什么雜活都能干但一次處理任務(wù)數(shù)量少 GPU 一大批后廚廚師每個(gè)人只做簡(jiǎn)單重復(fù)操作適合大批量并行運(yùn)算 內(nèi)存 店長(zhǎng)手邊操作臺(tái)顯存 廚師面前的案板 硬盤(pán) 倉(cāng)庫(kù)算力 廚師團(tuán)隊(duì)總干活速度。1顯存 VRAM深度學(xué)習(xí)最容易瓶頸的硬件,RTX2060 6G歸屬只屬于 GPUCPU 不能直接訪(fǎng)問(wèn)作用模型權(quán)重、輸入圖片 / 張量、梯度、優(yōu)化器參數(shù)全部要放在顯存里才能用 GPU 加速影響場(chǎng)景? 訓(xùn)練顯存不夠 →Out of Memory(OOM)直接報(bào)錯(cuò)。模型越大、batch size 越大占用顯存越高? 推理本地部署只需要模型權(quán)重 輸入張量不需要存梯度顯存消耗遠(yuǎn)小于訓(xùn)練舉例一個(gè) 7B 大模型FP16 精度權(quán)重就要占用約 13GB 顯存如果你顯卡只有 8G 顯存訓(xùn)練直接 OOM推理也要做量化才能跑。2內(nèi)存 RAM電腦主內(nèi)存雙8G歸屬CPU 使用作用存放數(shù)據(jù)集、預(yù)處理數(shù)據(jù)、python 代碼、操作系統(tǒng)。當(dāng)顯存不夠有人會(huì)把數(shù)據(jù)丟到內(nèi)存但是速度會(huì)暴跌影響內(nèi)存太小數(shù)據(jù)集加載階段會(huì)卡如果內(nèi)存爆掉程序直接被殺掉。舉例你有 10 萬(wàn)張圖片數(shù)據(jù)集訓(xùn)練時(shí)一次性全部讀進(jìn)內(nèi)存內(nèi)存不夠直接崩潰。一般做法是分批讀取。3硬盤(pán)SSD / HDD,512G閃存1T機(jī)械作用永久保存文件數(shù)據(jù)集、模型權(quán)重、CUDA、代碼區(qū)別SSD 固態(tài)硬盤(pán)速度遠(yuǎn)快于機(jī)械 HDD影響只影響數(shù)據(jù)加載速度不影響模型訓(xùn)練計(jì)算速度。舉例HDD 讀取圖片很慢訓(xùn)練時(shí) GPU 算完一批要等硬盤(pán)讀下一批GPU 空閑等待叫IO 瓶頸。SSD 可以緩解這個(gè)問(wèn)題但不能解決顯存不足。4算力TFLOPS含義GPU 浮點(diǎn)運(yùn)算能力衡量 GPU 做矩陣乘法神經(jīng)網(wǎng)絡(luò)本質(zhì)就是大量矩陣乘有多快注意算力高≠一定能訓(xùn)練大模型。顯存是門(mén)檻算力是速度。舉例一張顯卡算力很強(qiáng)但顯存只有 4G。大模型根本塞不進(jìn)顯存算力再高也沒(méi)法訓(xùn)練。 通俗理解案板顯存太小放不下食材廚師算力再多也沒(méi)法開(kāi)工。5CPU深度學(xué)習(xí)任務(wù)里職責(zé)讀取硬盤(pán)數(shù)據(jù)、做數(shù)據(jù)預(yù)處理圖像增強(qiáng)、轉(zhuǎn)張量調(diào)度任務(wù)把張量送到 GPU 顯存控制訓(xùn)練循環(huán)、日志記錄短板并行能力弱不適合大規(guī)模矩陣運(yùn)算只用 CPU 訓(xùn)練模型會(huì)慢幾十上百倍。場(chǎng)景CPU 太差會(huì)出現(xiàn)GPU 空閑一直在等 CPU 處理數(shù)據(jù)也就是數(shù)據(jù)預(yù)處理瓶頸。6GPU深度學(xué)習(xí)主力神經(jīng)網(wǎng)絡(luò)前向傳播、反向傳播更新權(quán)重全部交給 GPU 并行計(jì)算。限制受制于顯存大小。二、硬件之間互相制約關(guān)系重點(diǎn)課程訓(xùn)練 / 部署必看顯存是訓(xùn)練第一道門(mén)檻顯存不夠 → OOM程序直接崩顯存充足才輪到看算力決定訓(xùn)練快慢。內(nèi)存不能遠(yuǎn)小于顯存 內(nèi)存太小數(shù)據(jù)集加載失敗如果內(nèi)存 顯存也容易爆內(nèi)存。硬盤(pán)速度只影響數(shù)據(jù)加載不影響模型計(jì)算速度CPU 性能弱會(huì)拖慢數(shù)據(jù)預(yù)處理造成 GPU 等待GPU 利用率上不去GPU 利用率看 nvidia-smi理想訓(xùn)練硬件搭配 足夠顯存的 GPU 匹配大小內(nèi)存 SSD 硬盤(pán) 中端 CPU 即可不需要頂級(jí) CPU。三、訓(xùn)練 vs 本地部署硬件關(guān)注點(diǎn)差異模型訓(xùn)練階段優(yōu)先級(jí)顯存容量 GPU 算力 內(nèi)存大小 硬盤(pán)速度 CPU需要保存梯度、優(yōu)化器參數(shù)顯存開(kāi)銷(xiāo)巨大需要源源不斷讀取數(shù)據(jù)集對(duì) IO 有要求模型本地部署推理階段優(yōu)先級(jí)顯存 GPU 算力不需要計(jì)算梯度顯存占用大幅下降很多場(chǎng)景還可以量化FP16→INT8進(jìn)一步降低顯存占用低配顯卡也能跑。四、常見(jiàn)坑舉例顯卡算力很高但顯存小可以跑小模型訓(xùn)練大模型只能推理無(wú)法訓(xùn)練。顯存足夠但機(jī)械硬盤(pán)訓(xùn)練時(shí) GPU 經(jīng)??臻e速度慢但不會(huì) OOM。顯存足夠內(nèi)存很小讀取大數(shù)據(jù)集直接內(nèi)存報(bào)錯(cuò)。顯存、內(nèi)存、硬盤(pán)都很好CPU 很差數(shù)據(jù)預(yù)處理跟不上GPU 利用率低訓(xùn)練速度上不去。五、快速一句話(huà)總結(jié)GPU 負(fù)責(zé)核心計(jì)算顯存是 GPU 的臨時(shí)工作臺(tái)內(nèi)存是 CPU 的工作臺(tái)硬盤(pán)是倉(cāng)庫(kù)算力是 GPU 計(jì)算速度。 訓(xùn)練模型首先看顯存夠不夠放下模型 梯度其次看算力快慢本地部署顯存壓力小很多