Lua+torch7+cuda8.0+cudnn7.0.5在Ubuntu16.04上的安裝

我的筆記本是聯想Y470 比較老的機子  安裝的bantu

第一步安裝筆記本的顯卡:系統自帶的軟件更新中安裝的。


 第二步,安裝cuda 官網下載的,cuda官網下載,根據系統信息選擇對應的版本,我的是cuda_8.0.61_375.26_linux.run

一大堆條款什麼的,願意看就看吧,不想看直接回車按到底。

輸入accept接受條款。

接下來只有nvidia驅動那裏不要裝,因爲我之前已經裝過了顯卡驅動。其他都選是或者默認就可以。

流程:

輸入n。不裝nvidia驅動。

輸入y。安裝cuda toolkit

回車。 使用默認安裝路徑/usr/local/cuda-8.0

輸入y。安裝指向/usr/local/cuda的鏈接

輸入y。安裝Samples。

回車。 使用Samples默認安裝路徑/home/username

環境變量設置

sudo vim ~/.bashrc

在末尾添加

export CUDA_HOME=/usr/local/cuda-8.0

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

export PATH=/usr/local/cuda-8.0/bin:$PATH

保存退出。

然後刷新。

source ~/.bashrc

動態鏈接庫設置

創建文件:

sudo vim /etc/ld.so.conf.d/cuda.conf

寫入:/usr/local/cuda/lib64

保存之後使其立即生效:

sudo ldconfig 

檢查Cuda版本

nvcc --version

第三步:獲取cuDNN

去官網https://developer.nvidia.com/rdp/cudnn-download下載cuDNN,要註冊NVIDIA賬號。

我選擇的是cuDNN v7.0

安裝cuDNN

下載cuDNN後解壓

cd cuda/include

sudo cp cudnn.h /usr/local/cuda/include #複製頭文件

cd ../lib64

sudo rm -rf libcudnn.so libcudnn.so.7    #刪除原動態文件

sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7  #生成軟鏈接

sudo ln -s libcudnn.so.7 libcudnn.so      #生成軟鏈接

若需要更換cudnn版本,則替換原來的libcudnn*,並重新軟鏈接。

更新鏈接庫:

sudo ldconfig

第四步安裝torch7(此部分轉自他人)

利用快捷鍵Ctrl+Alt+T打開Ubuntu終端

 

第一步:

獲取安裝LuauJIT(C語言編寫的Lua的解釋器)和Torch所必需的依賴包。

代碼如下:

 1 git clone https://github.com/torch/distro.git ~/torch --recursive 

如果提示git還未安裝,在終端輸入命令:

 sudo apt-get install git 

安裝git

 

漫長的等待中。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


 

第二步:

剛纔默認將依賴包下載在當前路徑下的torch文件夾,進入torch文件夾,打開並執行install-deps中的命令。

代碼如下:

cd ~/torch
bash install-deps 

又得等待好久,可以去喝杯咖啡~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 


 

第三步:

執行install.sh文件

輸入命令:

./install.sh

至此,安裝torch需要的依賴已經搞定!!!!!!!!!!!!!!!!!!!!!!!!


 

 

第四步:

將路徑添加到PATH變量中。

source ~/.bashrc
source ~/.zshrc

使用上面兩個命令中任意一個即可。


 

 

第五步:

檢測安裝是否成功。在終端輸入th命令,若出現下圖,表明安裝成功。

 

附加:

利用粗暴刪除來卸載torch:

rm -rf ~/torch

其實就是直接刪除文件夾。


 遇到的問題(轉自https://blog.csdn.net/Geek_of_CSDN/article/details/80461129)

其實不能直接配置CuDNN 7給Torch使用,貧僧在上次博客裏面跳過了測試階段,所以錯過了這個bug(所以說測試還是必不可少的啊)。

閒話少說,直接使用比較新的版本但是沒在~/.bashrc裏面配置好路徑會出現下面這樣的錯誤:

/home/ubuntu/torch/install/bin/luajit: /home/ubuntu/torch/install/share/lua/5.1/trepl/init.lua:389: /home/ubuntu/torch/install/share/lua/5.1/trepl/init.lua:389: /home/ubuntu/torch/install/share/lua/5.1/cudnn/ffi.lua:1603: 'libcudnn (R5) not found in library path.
Please install CuDNN from https://developer.nvidia.com/cuDNN
Then make sure files named as libcudnn.so.5 or libcudnn.5.dylib are placed in
your library load path (for example /usr/local/lib , or manually add a path to LD_LIBRARY_PATH)

Alternatively, set the path to libcudnn.so.5 or libcudnn.5.dylib
to the environment variable CUDNN_PATH and rerun torch.
For example: export CUDNN_PATH="/usr/local/cuda/lib64/libcudnn.so.5"
#注意上面這一行,這是程序推薦的問題解決方法
stack traceback:
        [C]: in function 'error'
        /home/ubuntu/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'
        neural_style.lua:350: in function 'setup_gpu'
        neural_style.lua:53: in function 'main'
        neural_style.lua:601: in main chunk
        [C]: in function 'dofile'
        ...untu/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
        [C]: at 0x00405d50
ubuntu@ip-Address:~/neural-style$

就算是按照上面那樣配置好(其實改了點,例如貧僧使用的是7版,那麼就會改成export CUDNN_PATH="/usr/local/cuda/lib64/libcudnn.so.7),也會出現這樣的錯誤:

Found Environment variable CUDNN_PATH = /usr/local/cuda-9.0/lib64/libcudnn.so.7/home/ubuntu/torch/install/bin/luajit: /home/ubuntu/torch/install/share/lua/5.1/trepl/init.lua:389: /home/ubuntu/torch/install/share/lua/5.1/trepl/init.lua:389: /home/ubuntu/torch/install/share/lua/5.1/cudnn/ffi.lua:1618: These bindings are for CUDNN 5.x (5005 <= cudnn.version > 6000) , while the loaded CuDNN is version: 7003
Are you using an older or newer version of CuDNN?
stack traceback:
        [C]: in function 'error'
        /home/ubuntu/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'
        neural_style.lua:350: in function 'setup_gpu'
        neural_style.lua:53: in function 'main'
        neural_style.lua:601: in main chunk
        [C]: in function 'dofile'
        ...untu/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk

上面的意思是CuDNN版本不對,本來的要求是在5到6之間的版本(但是貧僧用的是7,太新了對於Torch來說) 
最後貧僧終於找到了解決方案,就是在終端運行這個指令:

git clone https://github.com/soumith/cudnn.torch.git -b R7 && cd cudnn.torch && luarocks make cudnn-scm-1.rockspec


 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章