最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

環(huán)境安裝,BERT、GPT、T5 性能測試,和橫向?qū)Ρ取?00億模型計劃】

2022-08-26 17:56 作者:小清舍  | 我要投稿

幾個常見GPU性能對比

3090ti是目前性價比最高的顯卡

RTX40系列即將要出來了,這個結(jié)論很可能會被推翻

本期針對那些有可能對Bert和GPT不感興趣,有可能對另外的模型感興趣,

教大家怎樣評測一個任務(wù)在實際硬件上的性能

以及怎樣理解你測到的性能和你理論的一個性能的區(qū)別,到底是哪些因素導(dǎo)致你達(dá)不到理論的上線

給大家講的代碼都開源在github上面,大家可以在這個代碼的基礎(chǔ)上修改它來測試自己的任務(wù)和自己的硬件,這樣一方面可以幫助你根據(jù)自己的任務(wù)來選擇合適的硬件,另一方面可以幫助你理解你的任務(wù)里面他的計算瓶頸在什么地方,也許可以通過簡單的調(diào)參使你的性能有大幅度的提升

代碼地址:https://github.com/mli/transformers-benchmarks

本期有兩個任務(wù)

  1. 怎樣接著上期的干凈操作系統(tǒng)怎樣將一些軟件裝上
  2. 講代碼怎樣在Bert、GPT、T5這三種不同的transformer架構(gòu)下的核心的一個層他的性能是什么樣子,以及他跟我們的理論上線的距離到底有多大


假設(shè)你有一個操作系統(tǒng)什么都沒安裝的情況下,有以下三個方法來安裝深度學(xué)習(xí)的框架,這里以Pytorch舉例

  1. 先安裝cuda的大禮包,然后找到對應(yīng)的pytorch版本用pip或conda命令安裝Pytorch就行
  2. 不安裝cuda的大禮包,直接安裝最基本的nvidia驅(qū)動,然后用conda安裝pytorch,然后裝上對應(yīng)的cuda的運行環(huán)境
  3. 也先安裝最基本的nvidia驅(qū)動,然后使用nvidia提供的docker鏡像

第一個方法搜cuda

選操作系統(tǒng)

這里的一個壞處是就算你裝了一個比較流行的linux發(fā)行版ubuntu,假設(shè)使用比較老的版本這里可能就沒有顯示對應(yīng)的cuda版本,使用比較新的Ubuntu這里也不一定提供,所以對于服務(wù)器使用的操作系統(tǒng)來講,最好不要太老也不要太新,用比較好的穩(wěn)定版本就行了,這樣子會使其他你要用的軟件支撐會好一些

接下來會下載一個G的文件大禮包,里面提供了一個nvidia驅(qū)動,以及它cuda的運行環(huán)境和開發(fā)環(huán)境,運行這個基本沒有問題

最后運行這個命令的時候的時候可能會有報錯驅(qū)動安裝失敗,這個時候你可以先去下載nvidia的最新驅(qū)動,然后安裝cuda的時候選不用安裝你的驅(qū)動就行了,

自己安裝驅(qū)動的話一般要比這個515.60這個驅(qū)動版本要高一些,低一些可能會安裝失敗或者兼容性的問題,但一般來說你用比較新的驅(qū)動是沒有問題的

假如你的系統(tǒng)已經(jīng)安裝了一個驅(qū)動的話,你安裝cuda的時候,如果你安裝的驅(qū)動版本比這個515高,也可以在安裝cuda的時候不安裝這個驅(qū)動就行啦

安裝好后就來到了Pytorch的安裝

找到對應(yīng)cuda版本,如果這里剛好有對應(yīng)的版本,選擇好后直接復(fù)制這個命令,安裝大概下載1個G的文件,

有可能你安裝的是11.7,這里只有11.6怎么辦,一個辦法是安裝cuda前來看看pytorch支持cuda有什么版本,一個辦法是雖然這個界面只列了三個版本,你可以去這個URL把cu116改為cu117看看存不存在這個頁面,如果不存在就說明暫不支持

然后可以安裝更前的版本11.6等


不存在cu117


但如果是更老的版本的話,可能是存在的,

第一個方法是最老的方法,cuda相對來說不是一個那么好安裝的包,比較大,一旦你安裝成功的話,整個系統(tǒng)層面的就安裝成功了,之后只有找到對應(yīng)的框就行啦,cuda相對來說不需要怎么動就行了,而且這是一個cuda大禮包,安裝了這個就不需要擔(dān)心其他什么沒有安裝了。

但這方法存在兩個問題,一個是當(dāng)你使用比較新的GPU情況下,可能需要是不是的更新cuda版本,這是因為nvidia的GPU是沒有版本兼容性的,每次出來了一個新的架構(gòu)之后,那么它所有的東西都可能跟著變,然后會發(fā)現(xiàn)cuda是不會向前面兼容的,即一個老的cuda版本是不能支持新的GPU,但是在未來,nvidia會針對這個架構(gòu)做性能的提升,所以你需要安裝更新的cuda來獲得更好的性能,所以在你用一個比較新的GPU的時候,當(dāng)升級了cuda之后你會發(fā)現(xiàn)性能得到了很大的提升,那是因為你在系統(tǒng)層面安裝了cuda,導(dǎo)致你每次升級之后會影響后面安裝的一些包。

第二個缺點是,你在系統(tǒng)層面安裝了cuda,后面在安裝包的時候會發(fā)現(xiàn)找不到它對應(yīng)的cuda版本,因為cuda的兼容性做的比較差,最好是你要安裝對應(yīng)cuda版本編譯出來的你后面的包才行

第二個方法

首先安裝nvidia驅(qū)動,比如在Ubuntu系統(tǒng)

先更新包

搜索nvidia driver

nvidia 515是目前最新的版本,裝這個

使用apt get這個方法安裝一般不會有一個驅(qū)動兼容的問題,大概1個G大小

假設(shè)你已經(jīng)安裝好了nvidia

使用以下命令nvidia-smi查看驅(qū)動版本

然后會發(fā)現(xiàn)這里寫了一個cuda的版本,但是并沒有安裝

輸入nvcc 會提示沒有安裝

但是不建議用它推薦的命令去安裝cuda,因為

它給你安裝大量的零散的包,但是它的cuda版本不一定是你想要的,你不好控制它的版本是哪一個,我們還是建議使用conda命令安裝

方法二的優(yōu)點是只要在系統(tǒng)層面把驅(qū)動裝好就行啦,只要這個驅(qū)動夠新,它比你需要的cuda版本要新,那么一般是沒有問題的,再用conda來安裝cudatoolkit,就解決了我的

cudatoolkit和我的后面的包的不兼容性,而且我要安裝一個別的版本,它對應(yīng)的別的cudakit都是安裝在對應(yīng)的一個文件夾里面,它不是一個系統(tǒng)級的安裝,只是在這個環(huán)境里面的安裝,如果我不需要,我可以刪掉他,但壞處也有兩個,其中一個是對應(yīng)每一個環(huán)境它的conda其實都是一個文件夾,它都會去安裝一個cudatoolkit,如果你安裝很多版本的話,你會發(fā)現(xiàn)發(fā)現(xiàn)你的磁盤占用率是挺高的,每個環(huán)境可能幾個GB就沒了。

第二個問題是,通過這樣的方式安裝的cudatoolkit,他只是一個運行的環(huán)境,它會少了很多包,比如nvcc是cuda的編譯器是沒有了,假設(shè)你需要cuda的編譯器來做開發(fā),你需要額外的安裝,甚至有一些包之后要用的deepsbit,它有些kernel其實是需要在實時編譯的,pytorch也提供了一些實時編譯的工具包,那些包都是需要依賴nvcc的,這個時候你就去裝有對應(yīng)nvcc的一個包,但是在conda上面,這樣子的發(fā)布不一定是很及時的

比如在conda里搜cudatoolkit-dev會發(fā)現(xiàn)最新的版本是11.4.0而沒有11.6版本


第三個方法和二個方法類似

先裝nvidia驅(qū)動,再安裝nvidia docker容器,假如你用過容器會發(fā)現(xiàn)挺簡單的,假如沒用過建議大家去試一試,這個在工業(yè)界用的還是非常廣的,

nvidia docker安裝教程放在開源代碼里

如果你使用Ubuntu的話,基本上按照這里面的復(fù)制粘貼運行是沒問題,如果你使用別的操作系統(tǒng)它也有對應(yīng)的教程

它首先干的事是安裝docker

用curl命令安裝,但是這要求你的Ubuntu系統(tǒng)不能太舊,


安裝好后找到這個頁面去到pytorch的鏡像

nvidia里提供了很多鏡像

?
16:57
?

我們要的pytorch


安裝好了Pytorch后運行命令

?
17:49
?

假設(shè)你的系統(tǒng)裝好了nvidia驅(qū)動和docker

復(fù)制這個命令運行到命令行

然后運行nvidia-smi

再運行Jupyter notebook

這樣你在docker里也運行了一個jupyter因為做了映射

把hostname改為localhost復(fù)制就可以在主機上打開并使用,但運行的環(huán)境在docker的里面


總結(jié)方法三的優(yōu)點,很明顯,用起來比較簡單,當(dāng)系統(tǒng)安裝好nvidia驅(qū)動,和nvidia docker,后面的應(yīng)用相對來說不用關(guān)心所有的安裝了,基本上下載下來就可以運行,出錯的概率并不大。

第二個好處是相對方法二而言,這里裝上了所有要的包,它也是大禮包的安裝,不像之前一樣只裝運行環(huán)境,這里基本上所有的開發(fā)工具已經(jīng)裝好了,不僅nvcc,包括其他庫的優(yōu)化也裝好了,這樣后面就不用關(guān)心太多。

第三個好處來自你的容器內(nèi)部運行的是ubuntu,對于外部的操作系統(tǒng)來講就可能不重要了,甚至你裝的windows也是能跑

壞處,第一個是比較占磁盤,因為他每次下載下來6個GB 的文件就沒了,如果下載網(wǎng)速慢的話也很耗費時間,解壓后,實際占有可能10GB就沒了,意味著如果你換一個鏡像或者換一個版本號都有可能給你帶來很多GB的穩(wěn)健增長

?
21:00
?

第二個問題是使用體驗,在長時間運行特別是測這個一會是out of memory,一會出錯的情況下,好像運行一陣子之后docker里面的驅(qū)動會出一點問題,會發(fā)現(xiàn)找不到GPU了,這時需要把docker重啟,所以你進(jìn)了docker之后,在安裝了一些別的包或者干了一些別的事情的時候,這個東西除非你把它保存下來,否則可能就回到了一個原生的情況了,這時需要重新安裝

第三個問題,在容器里面運行會不會帶來一個性能的問題,通常在docker里面運行系統(tǒng)指令的時候,會有一定的額外開銷,比如有些安全性的檢查,但是就算對于非常密集的系統(tǒng)調(diào)用可能也就帶來5%或者10%的開銷,但這里是用python來跑機器學(xué)習(xí),感覺是問題不大,因為Python本身是很慢的語言,每一次的調(diào)用它的額外開銷都是非常大的,另外如果你是在nvidia的機器上跑東西的話,主要開銷在于運行這些cuda的kernel,所以這里不用太擔(dān)心docker帶來的性能損失


總體如果關(guān)心算法做開發(fā)的話選擇方法二比較好,如果關(guān)心性能,要做相對來說比較低層的一些調(diào)參或者開發(fā)的話,方法三是個不錯的選擇,由于現(xiàn)在cuda更新很快如果用第一個方法,包也要對應(yīng)的時不時更新,這個時候多了一個額外匹配的過程,相對來說就不那么推薦一些了


評測代碼


環(huán)境安裝,BERT、GPT、T5 性能測試,和橫向?qū)Ρ取?00億模型計劃】的評論 (共 條)

分享到微博請遵守國家法律
湟源县| 秭归县| 南皮县| 陇川县| 民乐县| 阜宁县| 秦皇岛市| 阿坝| 延长县| 灌南县| 华池县| 闸北区| 廉江市| 红河县| 抚宁县| 镇赉县| 大田县| 龙岩市| 武宁县| 新干县| 浮梁县| 平和县| 仪征市| 柳林县| 仁寿县| 宁波市| 法库县| 龙州县| 安达市| 吴堡县| 溧阳市| 定襄县| 郑州市| 师宗县| 东丰县| 华宁县| 榆社县| 固镇县| 金华市| 大埔区| 舞钢市|