既然Linux對顯示卡的支援如此差,為什麼還有人在用Linux系統訓練人工智慧模型呢?如何做到?

時間 2021-05-05 22:59:16

1樓:傑林修

就算玩遊戲,linux下也不算糟糕啊。

我在linux下玩過對顯示卡要求最高的是塵埃拉力,不算低配置遊戲吧?

沒什麼問題啊……

2樓:肝之鍊金術師

17年的飛行堡壘,Ubuntu20,nvidia gtx1050m。win10有的Linux都有,可以獨顯玩遊戲,可以執行時雙顯示卡切換,跑的了模型(win10時,後來沒需求,裝cuda用來嘗試挖礦了),挖得了礦(散熱不行,改耕地了),開蘋果外的安卓,win,Linux虛擬機器也可以顯示卡加速(其實mac不加速也不卡)。別裝錯驅動版本就行,公升級核心後相關依賴庫版本可能會亂。

3樓:張輝

一般做人工智慧訓練的都是英偉達的高階顯示卡和伺服器顯示卡,一般用到CUDA CUDNN來做深度學習訓練,而Linux閉源驅動英偉達都提供,所以只要會安裝閉源驅動就可以了,他和在window下的效能區別不大,而在Linux下有gcc環境和py環境穩定易部署,易編譯等,支援的工具庫等在Linux下也比較全面一些,所以使用linux做訓練也是個不錯的選擇,當然win下也可以滿足,只是比如我個人多少會對win缺少安全感。

4樓:chadui123

那麼你認為哪個作業系統對「顯示卡」的支援好呢?還有你知道人工智慧用顯示卡是用來顯示呢還是做準平行計算呢?進一步人工智慧是怎樣的運算為主呢?

所以這些都沒明白還是回頭了解一下基礎哈。幾點提示是,第一所有作業系統都可以執行所有計算,所以作業系統無關。第二因為人工智慧演算法(神經網)如果有並行運算的硬體加持則效率高很多(訓練和執行),所以才用顯示卡其實是上面的圖形處理器GPU,英偉達老大,所以才在伺服器裡裝備一些。

而比GPU更好的並行性是更加專用的人工智慧晶元TPU等,也已經鋪開使用。無論GPU還是*PU都需要一些中間的計算框架如CUDA等,它們都支援一系列晶元,而作業系統只是表層控制流程的方便寫指令碼的環境而已,不是關鍵。除了硬體,軟體上另外乙個關鍵是人工智慧的演算法庫,目前主流有谷歌的tensorflow等,都開源,這個是搭建人工智慧系統最重要的,當然工程師要能夠理解因為都比較複雜,呼叫這些現成的演算法庫也仍然要理解大部分基本演算法的原理和操作。

然後就是你自己的資料和智慧型功能的定義了。

5樓:雅楓

你怕是開啟方式不對,在我這裡跑3d benchmark(nvidia顯示卡),跑分顯然linux下小勝。

你大概率沒裝好linux驅動

6樓:周瑞建

其實差不是效能,主要是麻煩,但其他工具鏈齊全,相容性好,只要把顯示卡驅動這一件麻煩事搞定了,其他的就比較順利了,window是驅動官方支援,很順利,其他坑一堆

7樓:

事實上「Linux對顯示卡支援差」和「用Linux訓練人工智慧模型」這倆並不矛盾。

前者的顯示卡是做系統顯示支援元件用的,你只要裝圖形介面那Linux下的顯示卡驅動就能玩死你。

後者顯示卡只是個專用計算單元並不參與顯示功能,顯示器都是插在機架上的亮機卡(例如AST2500)上用的,而且這些計算節點一般都是裝個只有shell的系統(無GUI)。在shell下安裝老黃給的驅動、CUDA toolkit和對應的計算框架(tensorflow or Pytorch)就可以用了,你可以認為顯示卡就是個掛在PCIE匯流排上的帶風扇的大號計算器而已... ...

8樓:別踩我鞋子

訓練不依賴 UI 介面,SSH 終端就足夠了

另外,編譯和開發環境管理上 Linux 比 Windows 方便很多,可以節省不少時間

9樓:

先表明我是在 Linux (具體來說是 Ubuntu)下面煉丹的,為什麼用 Linux 發行版煉丹?我那個機器上就用來煉丹,連 GUI 介面都沒,別的什麼事情都不幹,執行的好好的一點事情都沒,執行的非常理想,這不就足夠了?無所謂它支援全不全,能把我要的部分支援了就足夠。

Linux 這個東西我就一直覺得這個東西不適合乙個系統下面打算把什麼事情都幹了。

順帶有些回答挺有意思的,除了這個除了那個除了這個除了那個,然後支援是不差的,不好意思,你這麼說下來就叫做支援差

10樓:Bluebear

第二列linux,第三列windows,速度一目了然。無論方便編譯各種自定義ops和開啟nccl之類。

補充下:

linux比windows深度學習優勢:

1,保留視訊記憶體小

2,訓練速度快

3,自定義op編譯開發方便

4,支援nvdocker部署方便

5,支援nccl等庫分布式/並行方便

6,不用花錢買系統。

11樓:丁一帆

因為window是智障

windows現在無論是Server還是window10都會有乙個嚴重問題,自帶的dx12會自動切掉輸出口*0.5的視訊記憶體備用,也就是你買了3080,可用視訊記憶體往往不超過8g,這就導致了大部分大模型都是沒法用的,3090不是誰都買得起8塊的。然而window Server2012r2現在不支援30系顯示卡驅動,CUDA裝不上。

你說不用Linux用什麼?

12樓:

linux只是拿顯示卡跑流行的遊戲差而已。

一堆超算都是以GPU為主要算力,CPU只負責排程,上面的系統是Linux。

當你確實需要Linux和顯示卡良好地配合工作的時候,他們可不會含糊。

13樓:

不知道誰說的支援很差,您怕不是只是嫌它玩不了遊戲吧。。。。。。

linux上各種環境都更好搭建,而且跑起來效率更高,在linux上即使有圖形介面,空載時顯示卡視訊記憶體占用基本不到10MB,要跑程式整張顯示卡可以滿血開動 windows未必可以做到

14樓:

但發現Linux對顯示卡驅動支援很差,但好像又有人用Linux訓練模型,這是怎麼做到的?

你這話說的……一步一步來吧……

1,linux對顯示卡驅動支援很差?

是,也不是

的確,linux系統手動更新一下顯示卡驅動版本,很容易把系統炸了,然後重新裝系統

不過,只要你安裝好系統+顯示卡驅動,不去動它,穩定性很不錯2,用linux訓練模型

訓練模型有2大關鍵,1是linux,2是N卡,這兩者缺一不可,你看到很多人都在用是因為他們已經走了太多配製系統環境的坑,所以可以做到配置穩定的環境

15樓:

說乙個trick:不要給深度學習的機器(特別是使用30系顯示卡的機器)安裝圖形介面(比如Xorg)

這樣公升級驅動之後可以不用重新啟動

(或許還需要滿足一些我不小心滿足的條件,但如果你的電腦上執行著Xorg,你大概必須重啟一次)

煉丹幾近半年把風扇練壞了兩個的筆記本表示不服

筆記本linux唯一的好處就是跑得快。

對我的筆記本的GTX 1060

cuda10.2下,mxnet與pytorch的效能,大概都是wide resnet 16-4用40~50s跑乙個epoch

cuda11.0下,mxnet用時大概是73s

windows下,mxnet用時大概是73s(cuda 10.2,原因未知),但載入速度(import mxnet as mx)緩慢(小於30s的話可以燒香的)

windows下pytorch計算速度慢於mxnet(用時已經忘了)

如果windows下,比如wsl-ubuntu,或者某個神奇版本的windows server,訓練速度是linux的110%——我會立刻dd if=/dev/zero of=/dev/sda 乾掉我的linux轉投windows陣營(哪怕windows server要錢……畢竟3090的錢已經掏過了,windows沒道理比3090還貴的)

問題是,windows訓練神經網路就是慢的要死(與之相比的,有個叫mfaktc的程式,在windows下跟linux下效能幾乎無差距)

原因未知,但這大概是為什麼礦工有時候會用windows挖礦的緣故。

雖然mfaktc不是挖礦的,但道理大概是一樣的

windows對深度學習的支援顯然不好。

16樓:

先問是不是再問為什麼

以NVIDIA顯示卡為例,沒聽說linux下面支援有什麼問題。3D加速有opengl,高畫質編碼有nvenc,高畫質解碼有vdpau,GPU計算有cuda(你問的人工智慧模型就是用這個),電源管理多屏顯示都是標配,實在想不到有什麼是linux下做不了的。NVIDIA除了造消費級顯示卡還造專業的計算卡(有興趣可以了解一下titan顯示卡最初是怎麼來的),不支援linux除非不打算賣了。

AMD/Intel稍微差點,無非是cuda換成opencl,vdpau換成vaapi之類,專業領域用得少,個人用沒有本質不同。

除非你打算在筆記本上裝linux,那是確實沒轍,廠家沒考慮這麼小眾的應用

為什麼Linux桌面環境往往對顯示卡支援不好而各個顯示卡廠商 發行版廠商不為Linux開發驅動呢?

以為 Mac OS X 只需要支援有限的幾款硬體,稍微舊一點的就直接放棄,根本不提供公升級,而 Linux UNIX 不行,只要有幾種支援不好使用者就會叫喚,更何況現在的情況。驅動 資料豐富的往往是社群使用者用得多的硬體。更何況,對於使用 Linux UNIX 使用者而言,尤其是經過使用者的篩選培養...

怎麼在linux中控制程序對視訊記憶體 顯示卡核心占用(利用率)

cms42 首先眾所周知的,nice cpulimit和cgroups等等顯然沒有什麼幫助,docker更加。如果能修改源程式,這是一件很簡單的事情,因為Tensorflow Keras等主流框架都提供了相關的功能 如tf的gpu options.per process gpu memory fra...

為什麼Linux或者BSD支援很多架構的處理器,而Windows僅僅移植到ARM上都要微軟費很大力氣?

Wei Tang 首先我不確定微軟有沒有很費勁。其次以我估計,Windows是作為一整個系統來交付的,要考慮到ARM的效能,如果把完整的Windows直接放到ARM上,可想而知效能一定很捉雞。再次,Linux BSD的開發是各管一攤,各個開發組織負責自己的事,本身就有大量的人在做移植工作,而Wind...