centos 7 筆記本 Intel nvidia 雙顯卡 安裝nvidia驅(qū)動并成功安裝cuda

這是一篇介紹如何在筆記本上使用centos 7 系統(tǒng)安裝nvidia驅(qū)動和cuda 的文章。

本篇還會介紹清晰的安裝思路。

探索了三天才完成,最后才搞懂思路,中間其實遇到了一個正確的教程,但是沒有思路,所以一直沒成功,這里先介紹一下前兩天發(fā)生的坑。

事情是這樣發(fā)生的,一天下午下了班,我想在linux下開發(fā)和研究神經(jīng)網(wǎng)絡(luò)模型,我通過gpuz發(fā)現(xiàn)我的筆記本nvidia顯卡是支持cuda的,那為何不用呢?所以我產(chǎn)生了一個需求,使用nvidia跑caffe模型。

這個需求在windows下是不好完成的,因為我跑得東西在docker 鏡像里,在docker想使用gpu加速,還需要安裝nvidia-docker插件,這個插件,我不想再windows下安裝,所以我選擇linux,而首選的是centos。實際上ubuntu的桌面體驗比centos還好點,而且根據(jù)網(wǎng)上的教程,也更順利,但是我還是選擇了cetnos。

所以我必須要在centos上安裝nvidia驅(qū)動,cuda,docker,nvidia-docker。

一開始我以為事情很簡單。

我就直接搜索 centos 7 安裝 nvidia 驅(qū)動 。

這是第一種方法:

類似的教程有這些:

http://blog.csdn.net/alex_my/article/details/44705663

https://www.linuxidc.com/Linux/2017-03/141644.htm

https://www.cnblogs.com/snake553/p/7159376.html

還有很多,換湯不換藥,我甚至還找到了這些安裝思路的原版國外教程:

http://www.advancedclustering.com/act_kb/installing-nvidia-drivers-rhel-centos-7/

這些教程的思路是這樣的:

檢查電腦是否支持cuda,是否有nvidia顯卡,需要什么驅(qū)動

禁用開源的nvidia驅(qū)動,安裝官方驅(qū)動

重啟成功

安裝cuda?

? 有思路也有套路,既有手動安裝,也有yum安裝,我都試過,對于我來說都失敗了,根本就沒進行到安裝cuda。因為我安裝完成之后,電腦無法進入桌面環(huán)境,只能進命令行模式,期間辛虧早已開啟ssh,用另一臺電腦ssh鏈接,嘗試了很多次,但最終都失敗。最后成功的時候,至重啟一次,一直在圖形界面都成功了。

為什么不成功,以上針對部分電腦能成功,主要針對只有主板集顯和nvidia獨顯的電腦,或者Intel核顯和vga的nvidia獨顯,如果你是這種電腦,可能很容易的就安裝成功,并且進入桌面環(huán)境。

不過我的筆記本電腦不是,我的筆記本電腦是vga intel 核顯和 nvidia獨顯,nvidia不支持vga,就是不支持直接屏幕輸出,我了解到一種新的主板設(shè)計,我不搞硬件,第一次聽說:現(xiàn)在很多筆記本都采用 NVIDIA??Optimus? 技術(shù),摘自官網(wǎng)的介紹:NVIDIA??Optimus? 技術(shù)聰明地將您的筆記本電腦 PC 提升到絕佳狀態(tài),提供出色的圖形性能,并在需要時延長電池續(xù)航時間,使您能夠更長時間地享受視覺盛宴。

官網(wǎng)鏈接:? http://www.nvidia.cn/object/optimus_technology_cn.html

大體的意思是說,這些筆記本有兩個顯卡,一個intel ,負責顯示,一個nvidia,負責解鎖高難度姿勢,比如3D渲染,cuda等等。工作原理:把一些高難度姿勢交給nvidia,nvidia計算完成,交給intel,Intel顯示給用戶。

比如這樣:

這是筆記本右鍵彈出的菜單,我也是才知道有這個操作。

這是在linux下檢測硬件顯示的,其中帶有VGA的只有intel的圖形處理器。

這樣就明顯了,前面的那種安裝nvidia驅(qū)動或者cuda的方法是錯誤的。因為前一種安裝方法針對兩個顯卡都是nvidia切都可以直接vga輸出的。因為第一種方法,只能讓nvidia驅(qū)動開啟并且會是xorg服務(wù)(linux的圖形桌面服務(wù))使用nvidia驅(qū)動開啟,但是并不能,因為nvidia不能直接輸出到屏幕,頂多nvidia計算資源,將結(jié)果交給intel,Intel顯示到屏幕,所以還是需要在intel上啟動xorg,

這個思路是我自己嘗試的,網(wǎng)上沒有具體的教程,是我看相關(guān)的介紹才想出來的,但是配置xorg老是出問題還是沒有解決,不過方向是對了。

這個時候我已經(jīng)快要放棄了,但是我也意識到,或許是對的方向,所以我就安裝Bumblebee(大黃蜂),什么是大黃蜂?

"Bumblebee 致力于使 NVIDIA Optimus 在 GNU/Linux 系統(tǒng)上可用,實現(xiàn)兩塊不同的供電配置的顯卡同時插入使用,共享同一個 framebuffer。"

原文鏈接:

https://wiki.archlinux.org/index.php/Bumblebee_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

這個軟件就是linux 上的?Optimus技術(shù),只是在需要的時候啟用nvidia來計算,正是這個思路。

第二個方法出現(xiàn)了,在centos上安裝Bumblebee

相關(guān)教程如下:

https://www.linuxidc.com/Linux/2012-09/70418.htm

https://www.linuxidc.com/Linux/2012-09/70418.htm

http://leenux.lofter.com/post/165224_54b752

項目地址:

https://github.com/Bumblebee-Project/Bumblebee/wiki

arch wiki地址:(arch的wiki真心好)

https://wiki.archlinux.org/index.php/Bumblebee_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

但是我參照上面的方法包括官網(wǎng),都沒有成功,這我就不太清楚了,可能是因為期間我又自己安裝了nvidia顯卡驅(qū)動的原因,不過我有一個猜想,就是上面的方法,只是安裝了大黃蜂,但是并沒有安裝bumblebee-nvidia驅(qū)動,或者內(nèi)核不夠高,或者內(nèi)核錯誤,總之,上面的教程都是關(guān)閉圖形界面,進入命令行,禁用開源nvidia驅(qū)動(禁用nouveau驅(qū)動)等等,但是最終我都沒有成功,最后在一片國外文章上安裝,期間只是跟著復制命令,重啟,最后成功了,終于進入教程部分,請大家跟著我做:

你也可以直接去這個頁面:

https://linuxhint.com/install-nvidia-drivers-centos/

截圖所示的大體意思就是很多電腦的設(shè)計是用了nvidia optimus技術(shù),如何安裝的,跟著我做,等等。

我就模仿這篇文章寫一下教程:

檢查pci設(shè)備

need-to-insert-img

lspci?|?grep?-i?"vga\|nvidia"??

如果你有兩個顯卡,并且有一個是nvidia顯卡,再去官網(wǎng)查一下這個型號是否支持cuda,如果支持,最終能安裝cuda。

在安裝之前,一定要進入bios,關(guān)閉安全啟動選項。

添加elrepo 源

need-to-insert-img

這個源是linux上的硬件驅(qū)動源,就跟驅(qū)動精靈差不多。

sudo?rpm?--import?https://www.elrepo.org/RPM-GPG-KEY-elrepo.org??

sudo?rpm?-Uvh?http://www.elrepo.org/elrepo-release-7.0.3.el7.elrepo.noarch.rpm??

具體的安裝方法去官網(wǎng),第二個鏈接可能有誤:

官網(wǎng)地址:http://elrepo.org/tiki/tiki-index.php

添加epel源

need-to-insert-img

sudo?yum?install?epel-release??

安裝大黃蜂

need-to-insert-img

sudo?yum?-y?--nogpgcheck?install?http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/rhel7/noarch/bumblebee-release-1.2-1.noarch.rpm??

這個安裝途徑和上面提到的第二個方法的教程所示都不一樣,我也不知道問什么,可能是因為那些教程采用的是ubuntu的套路吧。

安裝另一個東西,也跟大黃蜂有關(guān)

need-to-insert-img

sudo?yum?-y?--nogpgcheck?install?http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/rhel7/noarch/bumblebee-nonfree-release-1.2-1.noarch.rpm??

說真的,我也不知道這為什么不一樣,直接從原教程拿過來的,原教程還有結(jié)果截圖,可以去看看。

升級cetnos內(nèi)核

need-to-insert-img

sudo?yum?--enablerepo=elrepo-kernel?install?kernel-ml??

sudo?yum?--enablerepo=elrepo-kernel?install?kernel-ml-devel??

這時候內(nèi)核已經(jīng)是4.XX了,并且在啟動時不會自動引導這個選項,還是默認3.xx的,我還沒調(diào)整,回頭在搜搜看怎么調(diào),在這里記住,之后重啟時,一定要選擇4.xx的內(nèi)核

如果是32位系統(tǒng),就不要運行上面的第二條命令,而是輸入下面這條,我是上面的第二條

sudo?yum?install?bumblebee-nvidia?bbswitch-dkms?VirtualGL.x86_64?VirtualGL.i686?primus.x86_64?primus.i686?kernel-devel??

添加用戶,用戶組

need-to-insert-img

sudo?usermod?-aG?bumblebee?YOUR_USERNAME??

像我添加了root,和

sudo?usermod?-aG?bumblebee?root??

sudo?usermod?-aG?bumblebee?augushong??

重啟,記住,在4.XX的內(nèi)核啟動

need-to-insert-img

原文運行了nvidia setting,是圖形界面,我沒運行,就算了。

至此,安裝結(jié)束。

運行檢查

bumblebee-nvidia?--check??

應該會出現(xiàn)成功的界面

如果有問題,就運行:

sudo?bumblebee-nvidia?--debug?--force??

可以多運行幾次,或者重啟在運行,然后在運行檢查,理論上,都能正常了。

卸載:

sudo?yum?remove?bumblebee-nvidia?bbswitch-dkms?primus?kernel-devel??

sudo?yum?remove?kernel-ml?kernel-ml-dev??

使用

need-to-insert-img

原文沒有介紹,我在第二天就遇到這篇文章,但是當時的思路還是第一種方法的思路,而且對交火顯卡技術(shù)和正確安裝大黃蜂后的使用方式不明確,所以第三天才轉(zhuǎn)過來彎。這里介紹一下。

如果你的電腦配置一般,現(xiàn)在進入圖形界面,已經(jīng)能感覺拖動窗口不如之前那么流暢了。

運行所有命令,都是走cpu和intel,跟nvidia沒什么關(guān)系,比如運行

glxspheres64??

這是個3D圖幀速檢測,或許是,反正是檢測顯卡的。

optirun?glxspheres64??

這個是通過nvidia加速運行這個程序,明顯運行的畫面更快。

在命令前面加上 optirun,就相當于文章開頭在windows下右鍵使用高性能XXXXX運行一樣。

安裝cuda

need-to-insert-img

可以參考其他教程,不過我感覺挺亂的,而且只有命令,沒有思路介紹,估計只是從國外教程搬過來的,如果你已經(jīng)有好的教程,那么可以直接去參照安裝了,

我的安裝方法,去官網(wǎng)檢查顯卡是否支持cuda

https://developer.nvidia.com/cuda-gpus

下載cuda,一定下載run安裝包,不要試圖用yum,

安裝時,會閱讀協(xié)議,可以看看,最后

(不截圖了,自己走走看就知道了。。。。只介紹下思路吧,命令其他教程都爛大街了)

開始輸入accecpt,同意

然后會提示是否安裝驅(qū)動,一定輸入n

接下來是安裝cuda toolkit,安裝y

安裝案例smaple,安裝y

接下來是目錄等,一路回車或者自己看

最后,安裝成功,注意,安裝成功會最下面幾行信息是警告,說是有東西沒安裝,不用管,不要怕,沒有問題。

在這些信息上面,有兩三行這樣的東西

PATH xxxxx

LD_LABRARY_XX xxxx

xxx是我忘了,意思是說把這兩個加到環(huán)境變量里,

具體的操作可以去搜,這里只介紹思路。

之后去運行一個案例,自己去搜

會讓你編譯一個例子,然后讓你運行,你直接運行會報錯,說你沒有相關(guān)設(shè)備

你只要在運行的命令前面加上optirun就行,像這樣,應該是這個命令沒錯

optirun?deviceQuery??

安裝docker更簡單,去搜教程,都能用,

不過想要用顯卡加速,還要安裝nvidia-docker,繼續(xù)搜。

開啟docker服務(wù)正常

開啟nvidia-docker不正常,就是說運行systemctl? start nvidia-docker.service

我通過大黃蜂運行nvidia-docker 好像也不行,估計是docker鏡像得對大黃蜂支持才行,唉,還是有很長的路要走啊。

回頭試試不用docker,直接搭建環(huán)境行不行。

?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容