1. 程式人生 > >legacy啟動下ubuntu16.04+cuda8.0+cudnn6.0配置

legacy啟動下ubuntu16.04+cuda8.0+cudnn6.0配置

一、Ubuntu16.04安裝

在ubuntu16.04之前,我已經是win10的系統。然後在網上搜索了大量的帖子,都說裝雙系統要看電腦是哪種啟動方式,BIOS(Iegacy)+MBR 和 UEFI+GPT,可以簡單的理解為EFI是新一代的BIOS,GPT是新一代的分割槽方式。基本上目前市面上的新機器,都是以UEFI+GPT構架為主。需要注意的是,對於 UEFI韌體,一般還是沿用之前的稱呼:BIOS,在查詢相關資料的時候需要注意,可能BIOS指的就是UEFI。(出自:簡書,https://www.jianshu.com/p/c0f3a503df69

檢視方式就是按Win+R開啟執行,輸入msinfo32,回車檢視系統資訊。在BIOS模式中如果顯示“傳統”,表示系統啟動方式為Legacy BIOS;如果為UEFI,則顯示UEFI

當然,我的電腦啟動方式就是Iegacy。其實legacy啟動方式安裝ubuntu16.04並不是很難,安裝完畢後只需要在windows下安裝一個EasyBCD軟體來新增啟動項就是了

1.原料

這個比較難下載,反正就是這個名字,去百度即可

2.安裝過程

前期準備

1.使用ultraiso軟碟通,講Ubuntu16.04刻錄到u盤,詳情見百度

2.分割槽。這裡我給ubuntu16.04劃分的大小是222G,它原先是windows中的F盤,這裡刪除卷即可。也就是要把Ubuntu放在哪個卷,就把那個卷刪除就是了,後期安裝系統時,刪除的卷會以空閒卷的形式顯示出來。

3.第三步網上很多就是,開機進入bois關掉快速啟動,同時關掉Security Boot。我是華碩x99的板子,基本上啥都沒改。

4.上述步驟完畢之後,重新啟動電腦,華碩是按住F2進入bois,插上u盤,這時候就可以看到,可以從u盤啟動了

具體安裝

按照正常的步驟一步步來就是了(借圖說明)。

選擇其他,不要選擇與windows共存

主要講一下分割槽,ubuntu主要分割槽為以下:

(1)/home:這個相當於你的個人資料夾,類似Windows裡的User,如果你是個娛樂向的使用者,我建議最好能分配稍微大點,因為你的圖片、視訊、下載內容基本都在這裡面,這些東西可不像在Win上面你想移動就能移動的。這裡我分配了近65G,後來覺得應該更多才對,在如果是做深度學習建議100G以上。

        新分割槽的型別:邏輯分割槽
        新分割槽的位置:空間起始位置
        用於:EXT4日誌檔案系統
        掛載點:/home

(2)/usr:這個相當於你的軟體安裝位置,Linux下一般來說安裝第三方軟體你是沒辦法更改安裝目錄的,系統都會統一地安裝到/usr目錄下面。因為想到以後下載的軟體比較多,同時參考了其他做深度學習的分配方式,這個分配了90G後來覺得分配多了,應該給home的

        新分割槽的型別:邏輯分割槽
        新分割槽的位置:空間起始位置
        用於:EXT4日誌檔案系統
        掛載點:/usr

(3)/:因為除了home和usr還有很多別的目錄,但那些都不是最重要的,“/”就把除了之前你掛載的home和usr外的全部雜項囊括了。這裡我分配了40G左右

        新分割槽的型別:邏輯分割槽
        新分割槽的位置:空間起始位置
        用於:EXT4日誌檔案系統
        掛載點:/

(4)/boot:這個是ubuntu系統啟動引導檔案所在的地方。不需要特別大,這裡我給了512M

        新分割槽的型別:邏輯分割槽
        新分割槽的位置:空間起始位置
        用於:EXT4日誌檔案系統
        掛載點:/boot        這裡需要注意點,因為我電腦的啟動方式是legacy方式,因此這裡需要建立boot分割槽,掛載/boot。

(5)swap:很多教程都是首先分swap分割槽的,雖然先分哪個區並沒有什麼影響。但是可能是一塊磁碟最多有四個主分割槽吧,由於swap的分割槽型別是主分割槽, 如果我先分swap分割槽的話,就沒辦法再分其他區域了。因此我最後分了swap區域。大小給了8G。網上的教程一般是至少是電腦的實體記憶體,我的電腦實體記憶體是32G,因為已經足夠大了,所以就分的小了點。

        新分割槽的型別:主分割槽
        新分割槽的位置:空間起始位置
        用於:交換空間

分完之後就是這樣:

有一點特別需要注意,上圖的下方有安裝啟動引導器的裝置,這一項一定要選擇我們剛剛建立的/boot分割槽,也就是選擇/dev/nvme0n1p5

之後就是按照步驟來安裝即可,其中電腦的名稱不要起太長,要不然以後進入linux輸入命令會看起來很長不舒服,另外密碼也要設計相對簡單,因為輸入命令可能經常要用。

後續

安裝完成後重啟電腦,發現此時並沒有可以進入ubuntu16.04的引導。因此我們需要進入window在網上下載一個EasyBCD安裝,然後建立ubuntu的引導。這個網上教程很多,搜尋即可。

進入ubuntu16.04系統後,搜尋-軟體和更新,更新服務源,我選的阿里的伺服器,也可以根據自己的網速看哪個快選那個。

補充

上面都是在計算機啟動方式是Legacy情況下進行的,若是UEFI的啟動形式其實安裝的過程也差不多,主要有下面三個區別:(參考:UEFI下ubuntu系統的安裝

(1)在u盤啟動進入ubuntu的安裝程式之前,要關閉Secure Boot(安全啟動)和fast boot(快速啟動) (有的部落格中說也可以不關閉,但是為了保險期間還是關閉吧)

(2)分的所有區都可以是主分割槽,因為在GPT硬碟格式下其實是沒有什麼主分割槽和邏輯分割槽區別的

(3)與legacy的boot分割槽相對應,UEFI則是EFI系統分割槽,如下圖,同時引導器的裝置也選擇EFI系統分割槽

二、Nvidia顯示卡驅動的安裝

跑深度學習當然就是要使用cuda8.0加速,cuda 的前提就是要安裝nvidia下卡驅動,這裡主要講兩個方法

方法一:直接在軟體更新中下載驅動器,更新完畢後,重啟。

方法二:從官網上下載驅動,安裝

1.從官網上檢視我們所需要的驅動版本,下載。

2.遮蔽ubuntu自帶的nouveau驅動

(1)在【/etc/modprobe.d/】下新建一個檔案【blacklist-nouveau.conf】

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

(2)在其中寫入:

blacklist nouveau 
options nouveau modeset=0

(3)更新: 

sudo update-initramfs -u

3.按下 ctrl+alt+F1 進入文字介面 (tips:ctrl+alt+F7返回圖形介面)

最好在進入文字介面之前把資料夾改成英文,因為文字介面識別不了中文,會出現亂碼的情況。

(1)關閉x-service(安裝驅動需要)

sudo service lightdm stop

(2)cd到驅動下載目錄,給驅動run檔案賦予執行許可權:

sudo chmod a+x NVIDIA-Linux-x86_64-390.25.run

(3)進行驅動的安裝,注意引數

sudo sh NVIDIA-Linux-x86_64-390.25.run –no-x-check –no-nouveau-check –no-opengl-files

–no-x-check:安裝驅動時關閉X服務

–no-nouveau-chec:安裝驅動時禁用nouveau

–no-opengl-files:只安裝驅動檔案,不安裝OpenGL檔案(經測試,如果安裝了opengl,雖然成功但是重啟後會出現無線登入的情況,那麼如果出現迴圈登入咋辦呢?這時候就進入文字介面,然後解除安裝nivida驅動)

接下來會有些報錯資訊:

A:報錯the distribution-providedpre-install script failed!不必理會,繼續安裝。

B:提示32位相容問題,不用理會。

C:安裝時選擇不啟用Xorg.conf服務

(4)安裝完畢後開啟x-service:

sudo service lightdm start

 4.安裝完畢後在終端輸入nvidia-smi出現下圖說明驅動安裝成功:

5.補充:如果安裝有誤,則進入文字介面,依次輸入下面指令即可:

sudo service lightdm stop
sudo apt-get remove --purge nvidia*
sudo /usr/bin/nvidia-uninstall
sudo service lightdm start

第三條指令會有選擇,選擇no

三、cuda8.0+cudnn6.0的安裝

跑深度學習當然就是要使用cuda8.0加速呀

1.原料

選擇cuda8.0-2017年2月版本,進入下載介面如下:

2.安裝cuda8.0

1.安裝相關庫(可以跳過該步驟)

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

2.cd到cuda8.0安裝包的位置,輸入指令,安裝

sudo sh cuda_8.0.61_375.26_linux.run

按q鍵可以跳過說明

之後便是:

Description

This package includes over 100+ CUDA examples that demonstrate
various CUDA programming principles, and efficient CUDA
implementation of algorithms in specific application domains.
The NVIDIA CUDA Samples License Agreement is available in
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
 [ default is /home/c302 ]:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...
Installing the CUDA Samples in /home/c302 ...
Copying samples to /home/c302/NVIDIA_CUDA-8.0_Samples now...
Finished copying samples. 

安裝完成後還沒新增環境變數,因此在終端輸入nvcc -V會說指令不存在

3.新增環境變數

(1)編輯計算機資料夾下的/etc/profile(可以在終端使用以下命令列開啟):

sudo su

gedit /etc/profile

(2)在檔案末尾加入CUDA環境變數,儲存。

PATH=/usr/local/cuda/bin:$PATH

export PATH

(3)儲存後在終端執行以下命令使其生效:

source /etc/profile

(4)進入到/etc/ld.so.conf.d/資料夾下,新建了一個cuda.conf檔案

cd /etc/ld.so.conf.d/

sudo gedit cuda.conf

(5)在檔案中寫入,並儲存:

/usr/local/cuda/lib64

(6)儲存後使其生效:

sudo ldconfig

4.檢驗

(1)進入usr/local/cuda/samples/1_Utilities/deviceQuery,然後build,命令如下:

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make

之後會進行編譯,其中可能會出現warn,但是不要緊

(2)接著輸入

./deviceQuery

 看到以下內容則說明配置成功

3.配置cudnn6.0

(1)cd到cudnn6.0所在資料夾,解壓,解壓後會在同目錄下生成cuda資料夾,進入cuda資料夾下,並執行相關檔案的拷貝

tar -zxvf cudnn-8.0-linux-x64-v6.0.tgz
cd cuda
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/

(2)更新軟連線:

cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6    #刪除原有動態檔案
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6  #生成軟銜接
sudo ln -s libcudnn.so.6 libcudnn.so      #生成軟連結
sudo ldconfig