国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[3D數(shù)據(jù)深度學(xué)習(xí)] (PC/服務(wù)器集群cluster)CPU內(nèi)存/GPU顯存限制及解決辦法

這篇具有很好參考價(jià)值的文章主要介紹了[3D數(shù)據(jù)深度學(xué)習(xí)] (PC/服務(wù)器集群cluster)CPU內(nèi)存/GPU顯存限制及解決辦法。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

3D數(shù)據(jù)的深度學(xué)習(xí)目前研究遠(yuǎn)不如2D深度學(xué)習(xí)成熟,其中最大的一個(gè)原因之一就是收到硬件條件的限制。3D數(shù)據(jù)雖說只比2D數(shù)據(jù)增加了一個(gè)維度,但所占據(jù)的內(nèi)存卻是成倍的增長。對于3D數(shù)據(jù)的深度學(xué)習(xí),我們會分析其在CPU內(nèi)存和GPU顯存兩方面的限制,希望大家能夠充分利用自己的資源進(jìn)行深度學(xué)習(xí)。

1. 硬件配置推薦

CPU: 大內(nèi)存,多核(很關(guān)鍵,越多越好)高性能CPU
GPU: 大顯存(24G以上),比如A6000(48G),TeslaV100(32G)
服務(wù)器集群: 每個(gè)節(jié)點(diǎn)多CPU,大內(nèi)存,多卡(GPU)

2. 深度學(xué)習(xí)流程及遇到的問題

[3D數(shù)據(jù)深度學(xué)習(xí)] (PC/服務(wù)器集群cluster)CPU內(nèi)存/GPU顯存限制及解決辦法
在深度學(xué)習(xí)代碼中,以pytorch為例,CPU往往負(fù)責(zé)著數(shù)據(jù)讀取/加載,數(shù)據(jù)增強(qiáng)的部分。而GPU負(fù)責(zé)模型模型的訓(xùn)練。
在CPU上完成數(shù)據(jù)讀取,數(shù)據(jù)增強(qiáng)之后,將數(shù)據(jù)傳到GPU上進(jìn)行訓(xùn)練。所以我們的數(shù)據(jù)要同時(shí)滿足CPU和GPU的限制。在執(zhí)行程序時(shí),我們既不能超過CPU內(nèi)存的限制(否則會發(fā)生線程中斷,程序卡死),也不能超過GPU顯存的限制(否則會發(fā)生OOM)。但同時(shí),我們也希望盡可能最大化的利用內(nèi)存和顯存,提高我們的訓(xùn)練速度,特別對于3D數(shù)據(jù),一般只能使用較小的batch_size, 所以訓(xùn)練時(shí)間往往非常長,正確的參數(shù)設(shè)置可以大大提高我們的訓(xùn)練時(shí)間。下面我會像大家介紹如何在不超過自己內(nèi)存/顯存限制的情況下優(yōu)化參數(shù)配置,加速訓(xùn)練。

3. CPU內(nèi)存限制及參數(shù)設(shè)置

首先我們要知道,在進(jìn)行訓(xùn)練時(shí),我們的cpu并不是每次一讀取batch個(gè)數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)更新,再讀取下一個(gè)batch數(shù)據(jù)進(jìn)行訓(xùn)練。這里有一個(gè)關(guān)鍵參數(shù):num_workers Pytorch dataloader中的num_workers (選擇最合適的num_workers值)

dataloader一次性創(chuàng)建num_worker個(gè)worker,(也可以說dataloader一次性創(chuàng)建num_worker個(gè)工作進(jìn)程,worker也是普通的工作進(jìn)程),并用batch_sampler將指定batch分配給指定worker,worker將它負(fù)責(zé)的batch加載進(jìn)RAM。

num_worker設(shè)置得大,好處是尋batch速度快,因?yàn)橄乱惠喌腷atch很可能在上一輪/上上一輪…迭代時(shí)已經(jīng)加載好了。壞處是內(nèi)存開銷大,也加重了CPU負(fù)擔(dān)(worker加載數(shù)據(jù)到RAM的進(jìn)程是CPU復(fù)制的嘛)。num_workers的經(jīng)驗(yàn)設(shè)置值是自己電腦/服務(wù)器的CPU核心數(shù),如果CPU很強(qiáng)、RAM也很充足,就可以設(shè)置得更大些。

num_worker小了的情況,主進(jìn)程采集完最后一個(gè)worker的batch。此時(shí)需要回去采集第一個(gè)worker產(chǎn)生的第二個(gè)batch。如果該worker此時(shí)沒有采集完,主線程會卡在這里等。(這種情況出現(xiàn)在,num_works數(shù)量少或者batchsize 比較小,顯卡很快就計(jì)算完了,CPU對GPU供不應(yīng)求。

[3D數(shù)據(jù)深度學(xué)習(xí)] (PC/服務(wù)器集群cluster)CPU內(nèi)存/GPU顯存限制及解決辦法
num_works數(shù)量越多,CPU準(zhǔn)備數(shù)據(jù)越快 pytorch dataloader 使用batch和 num_works參數(shù)的原理是什么?
紅線情況:數(shù)據(jù)很大,num_works很少GPU計(jì)算完成后想要拿到下一個(gè)批次的數(shù)據(jù)時(shí)發(fā)現(xiàn)CPU還沒準(zhǔn)備好數(shù)據(jù)。要等待很久才能開始下一次計(jì)算,從而影響到GPU使用率。是3D數(shù)據(jù)訓(xùn)練時(shí)常見到的情況。

最好的情況是紫線這種:GPU計(jì)算的過程中CPU已經(jīng)準(zhǔn)備好數(shù)據(jù)了。等GPU計(jì)算完上一個(gè)批次數(shù)據(jù),直接把下一個(gè)批次數(shù)據(jù)發(fā)給GPU。


由于3D數(shù)據(jù)很大,我們的batch_size因?yàn)轱@存的限制往往只能設(shè)置的很小(比如2,4,6)所以網(wǎng)絡(luò)在收到小batch_size個(gè)數(shù)據(jù)之后往往很快就完成了訓(xùn)練,等待下一批batch數(shù)據(jù)到來。因此,對于體積較大的3D數(shù)據(jù),其時(shí)間限制主要來自于數(shù)據(jù)讀取部分,因此,數(shù)據(jù)的并行讀取比較重要,我們希望使用盡量多個(gè)CPU同時(shí)讀取數(shù)據(jù)。也就是說,在不超過我們的內(nèi)存限制的情況下,num_worker越大越好。

對于PC,首先我們需要查看自己的硬件配置,有多少個(gè)CPU,num_worker不能超過CPU個(gè)數(shù)。
對于服務(wù)器,多個(gè)腳本程序往往在一個(gè)節(jié)點(diǎn)上執(zhí)行,這些程序共享這個(gè)節(jié)點(diǎn)的內(nèi)存和CPU,所以我們要合理安排每個(gè)程序的CPU使用數(shù)量以及內(nèi)存占用率。如果是特別大的3D數(shù)據(jù),建議一個(gè)節(jié)點(diǎn)只執(zhí)行這一個(gè)程序,來充分利用CPU資源

我們可以使用htop命令來查看自己的CPU個(gè)數(shù)以及內(nèi)存使用情況
[3D數(shù)據(jù)深度學(xué)習(xí)] (PC/服務(wù)器集群cluster)CPU內(nèi)存/GPU顯存限制及解決辦法
如圖,我一共有64個(gè)CPU,內(nèi)存最大為188G
理論上說,我的num_worker最大可以設(shè)置為64,但實(shí)際上,當(dāng)64個(gè)CPU同時(shí)加載數(shù)據(jù),很容易超出188G內(nèi)存的限制,如果我們使用服務(wù)器的話,可以使用以下命令對每個(gè)CPU所使用的最大內(nèi)存做出限制:

#SBATCH --mem-per-cpu=3G

180G內(nèi)存/60個(gè)CPU = 3G,當(dāng)每個(gè)CPU只使用3G內(nèi)存,就不會超過最大內(nèi)存了。

然而,當(dāng)我們的數(shù)據(jù)非常大,我們就需要降低num_worker的個(gè)數(shù)來避免超出內(nèi)存,比如說我們的原始數(shù)據(jù)大小為(834,224,834,3),在多個(gè)CPU讀取數(shù)據(jù)時(shí)會占用特別大的內(nèi)存,所以我們要測試num_worker對于不同數(shù)據(jù)的最大值
[3D數(shù)據(jù)深度學(xué)習(xí)] (PC/服務(wù)器集群cluster)CPU內(nèi)存/GPU顯存限制及解決辦法
經(jīng)過測試,對于(834,224,834,3)的3D數(shù)據(jù),num_workers最大值為18,如果再大的話多個(gè)CPU讀取數(shù)據(jù)產(chǎn)生的峰值會超過內(nèi)存限制,從而引起程序中斷

4. GPU顯存限制及參數(shù)設(shè)置

對于3D數(shù)據(jù)訓(xùn)練,超過GPU顯存最大值(OOM)是最常遇到的問題。減小Batch_size是簡單的做法,但是很多情況下Batch_size已經(jīng)很小了,沒法再小。

下面是三種解決辦法,根據(jù)不同的情況選擇:

  1. DataParallel: 模型不算很大,batch_size 較小時(shí)能夠運(yùn)行沒有OOM,但效果不好,希望增大batch_size進(jìn)行訓(xùn)練??梢允褂媚P筒⑿袛U(kuò)大batch_size, 使用4張卡同時(shí)訓(xùn)練的話可以將batch_size擴(kuò)大4倍。
  2. Model parallel:模型非常大,一張卡放不下,可以將模型的不同部分放到不同卡上進(jìn)行訓(xùn)練。適用于多支路網(wǎng)絡(luò),將不同支路放到不同卡上,不會對訓(xùn)練時(shí)間造成太大影響。若是單支路網(wǎng)絡(luò)使用模型并行,訓(xùn)練時(shí)間會變長。
  3. Gradient checkpointing:模型非常大,一張卡放不下,但是只有一張卡。將模型分段保存,在訓(xùn)練時(shí)會分段進(jìn)行訓(xùn)練,會明顯增長訓(xùn)練時(shí)間,預(yù)算有限的情況下可以使用。

服務(wù)器集群上的DataParallel詳情見我之前的教程:[pytorch] 分布式訓(xùn)練 Distributed Data-Parallel Training (DDP)
模型并行Model parallel的教程會在以后發(fā)

因?yàn)閎atch_size很小,所以各種加速訓(xùn)練的技巧表現(xiàn)都不是很好,我們只討論OOM的解決辦法文章來源地址http://www.zghlxwxcb.cn/news/detail-497013.html

到了這里,關(guān)于[3D數(shù)據(jù)深度學(xué)習(xí)] (PC/服務(wù)器集群cluster)CPU內(nèi)存/GPU顯存限制及解決辦法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 深度學(xué)習(xí)GPU服務(wù)器環(huán)境配置

    組里面分配了臺gpu服務(wù)器,讓我負(fù)責(zé)管理,需要先配置一些深度學(xué)習(xí)環(huán)境,記錄一下。 一些linux服務(wù)器常用命令:https://blog.csdn.net/qq_51570094/article/details/123949910 首先需要了解linux系統(tǒng)信息 通過 cat /proc/version 查看包含gcc的版本信息 通過 hostnamectl 命令查看系統(tǒng)信息,這個(gè)命令是

    2024年02月01日
    瀏覽(29)
  • (深度學(xué)習(xí))PyCharm 連接配置服務(wù)器

    (深度學(xué)習(xí))PyCharm 連接配置服務(wù)器

    需要 Pycharm 專業(yè)版 以 2022 版的 PyCharm 為例: 1. 連接服務(wù)器 File ---- Settings ---- Python Interpreter ---- Add Interpreter ---- On SSH 輸入服務(wù)器的 Host、Port 和 Username ---- Next 輸入密碼 ---- Next Next 可以選擇虛擬環(huán)境,我個(gè)人習(xí)慣選擇下面那個(gè) System Interpreter 選擇本機(jī)項(xiàng)目地址和對應(yīng)的服務(wù)器同

    2024年02月11日
    瀏覽(21)
  • 服務(wù)器上運(yùn)行跑深度學(xué)習(xí)代碼(一)

    服務(wù)器上運(yùn)行跑深度學(xué)習(xí)代碼(一)

    我準(zhǔn)備復(fù)現(xiàn)的是Point2roof的代碼。這是第一次復(fù)現(xiàn)論文代碼,所以記錄一下^ _ ^。 從GitHub找到他的項(xiàng)目point2roof項(xiàng)目。 先把工程down下來 ^ _ ^ 。 看他工程里面提供的README。 這篇里面提到他的數(shù)據(jù)集,我也順便下載下來了。目前只是想跑一下代碼,好像沒必要下載數(shù)據(jù)集? 接下

    2024年02月11日
    瀏覽(22)
  • 電子取證之服務(wù)器取證,本人第一次從pc取證到服務(wù)器,這里有一套例題分享給大家,所有解析我都盡可能全面具體,希望與各位同仁一起學(xué)習(xí)。(二次修改)

    電子取證之服務(wù)器取證,本人第一次從pc取證到服務(wù)器,這里有一套例題分享給大家,所有解析我都盡可能全面具體,希望與各位同仁一起學(xué)習(xí)。(二次修改)

    話不多說,先上鏈接,這個(gè)包含一個(gè)2G的服務(wù)器鏡像和題目,原題是弘連公司的,致謝,此處純粹分享解法供大家學(xué)習(xí)。 第二次做題目,發(fā)現(xiàn)寶塔新版已經(jīng)不支持,所以題目意義減少,還是歡迎手搓與小白來看看 鏈接: https://pan.baidu.com/s/1p8T7Fez_VlnSqdzvptARRw?pwd=ybww 提取碼: ybww

    2024年02月07日
    瀏覽(27)
  • 深度學(xué)習(xí)服務(wù)器(Linux)開發(fā)環(huán)境搭建教程

    深度學(xué)習(xí)服務(wù)器(Linux)開發(fā)環(huán)境搭建教程

    當(dāng)你拿到一臺服務(wù)器的使用權(quán)時(shí),最頭疼的莫過于登陸服務(wù)區(qū)并配置開發(fā)環(huán)境。本文將從0開始,講述一臺剛申請的服務(wù)器遠(yuǎn)程登陸并配置開發(fā)環(huán)境的全過程。希望對你有所幫助 打開MobaXterm軟件,創(chuàng)建一個(gè)新的Session,選擇SSH登陸。其中Remote host填服務(wù)器的IP地址,Specify userna

    2024年02月05日
    瀏覽(20)
  • 如何在服務(wù)器使用GPU跑深度學(xué)習(xí)代碼

    如何在服務(wù)器使用GPU跑深度學(xué)習(xí)代碼

    每個(gè)人都有他們偏好的工具和工作流程。就我個(gè)人而言,我喜歡使用 PyCharm Professional Edition 作為我的集成開發(fā)環(huán)境,選擇使用 HengYuan Cloud\\\'s OSS.exe 和 FileZilla 進(jìn)行文件傳輸,并且我傾向于使用 Xshell 來處理命令行操作。這些工具的組合滿足了我的所有需求,并使我的工作效率最

    2024年04月12日
    瀏覽(22)
  • 使用vscode 連接服務(wù)器 進(jìn)行深度學(xué)習(xí)代碼調(diào)試

    使用vscode 連接服務(wù)器 進(jìn)行深度學(xué)習(xí)代碼調(diào)試

    博主本來在Win上已經(jīng)配好環(huán)境了,但是在跑代碼的過程中,因?yàn)閠ensor拼接得太大了,導(dǎo)致筆記本內(nèi)存不足,因此需要到服務(wù)器上跑 為什么選擇vscode? 如果直接用xshell連接服務(wù)器,在命令行運(yùn)行py文件,不是很直觀,也不能debug,還不能直接輸出圖片。 pycharm連接服務(wù)器好像要

    2024年02月22日
    瀏覽(17)
  • Linux服務(wù)器下配置深度學(xué)習(xí)環(huán)境(PyTorch)

    Linux服務(wù)器下配置深度學(xué)習(xí)環(huán)境(PyTorch)

    一.?安裝anaconda 二. 創(chuàng)建虛擬環(huán)境 三. 安裝PyTorch 在配置環(huán)境前,需要遠(yuǎn)程連接服務(wù)器,我選擇使用MobaXterm,具體操作詳見: 使用MobaXterm連接Linux服務(wù)器 Anaconda ,中文大蟒蛇,是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng)。 1.?下載anaconda 在官網(wǎng)

    2024年02月06日
    瀏覽(88)
  • Linux服務(wù)器集群-大數(shù)據(jù)基礎(chǔ)環(huán)境搭建指南

    Linux服務(wù)器集群-大數(shù)據(jù)基礎(chǔ)環(huán)境搭建指南

    本文將構(gòu)建三臺Linux服務(wù)器(node1、node2、node3),通過相關(guān)配置,搭建出一個(gè)Linux服務(wù)器集群環(huán)境適用于大數(shù)據(jù)的開發(fā)學(xué)習(xí)。 本文使用的VMware版本為:VMware16; 本文環(huán)境搭建使用到的Linux發(fā)行版本為:CentOS7; 本文的電腦操作環(huán)境為:windows11。 首先,需要根據(jù)之前發(fā)文中的流程

    2024年02月07日
    瀏覽(27)
  • Windows Server 2019服務(wù)器遠(yuǎn)程桌面服務(wù)部署+深度學(xué)習(xí)環(huán)境配置教程

    Windows Server 2019服務(wù)器遠(yuǎn)程桌面服務(wù)部署+深度學(xué)習(xí)環(huán)境配置教程

    實(shí)驗(yàn)室需要將Win10的系統(tǒng)改裝為Server系統(tǒng)供多人以遠(yuǎn)程桌面的方式使用,同時(shí)配置Tensorflow+Pytorch的深度學(xué)習(xí)環(huán)境,遂記錄一下大概步驟。 和安裝其他Windows系統(tǒng)的步驟差不多,也是插入U(xiǎn)盤后進(jìn)BIOS然后根據(jù)引導(dǎo)分區(qū)創(chuàng)建管理員等等,可以參考:windows server 2019安裝教程 如果裝完

    2024年02月04日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包