我的筆記本是聯想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