
繼上一篇的硬體組裝,以及作業系統安裝 ,今天要開箱GPU測試過程。
1. 測試前安裝一下nvidia-cuda-toolkit(佔用 2,007 MB 的磁碟空間):
sudo apt install nvidia-cuda-toolkit

2. 安裝好檢查:

3. 如果這邊無法看到裝好的nvcc版本,首先,查看cuda的bin目錄是否有nvcc:

4. 有的話,請將路徑加入系統路徑中:
nano ~/.bashrc
5. 增加下列訊息:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
6. 注意到,如果你有不同的CUDA目錄:

一定要指定到nvcc檔案的那一個
--------------------------------------------------------------------------------------------------------
7. 上步驟會有許多人失敗,解決不了的情況下請手動安裝驅動程式:






8. 之後找到該驅動對應的CUDA版本進行下載:


開始安裝它:



9. 完成後順便檢查一下卡片狀況:

10. 如果安裝過程中版本對不起來可能會讓你系統運作怪怪的(甚至運作不起來喔)
11. 上面步驟完成驅動程式以及CUDA TOOLS,接著安裝 CuDNN
首先先下載:
https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/
安裝:
sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.2_amd64.deb
注意到,跟你的CUDA版本要匹配
12. 沒問題後接著安裝TensorRT
sudo apt-key add /var/nvinfer-runtime-trt-repo-5.0.2-ga-cuda10.0/7fa2af80.pub
sudo dpkg -i nvinfer-runtime-trt-repo-ubuntu1804-5.0.2-ga-cuda10.0_1-1_amd64.deb
13. 安裝anaconda
sudo apt install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6
wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
sha256sum /tmp/Anaconda3-2020.02-Linux-x86_64.sh
bash /tmp/Anaconda3-2020.02-Linux-x86_64.sh
source ~/.bashrc
14. 建立虛擬環境
我們故意建立3.6的版本來對應舊版的tensorflow
conda create -n gputest36 python=3.6
15. 啟動虛擬環境
conda activate gputest36
16. 安裝tensorflow等等等的相關服務進行簡單測試
pip install tensorflow-gpu==1.15
pip install keras
pip install matplotlib
pip install pandas
pip install jupyter
python -m ipykernel install --user --name gputest36
17. 啟動jupyter notebook
18. 先看看有沒有抓到GPU


19. 簡易測試一下CPU/GPU效能吧


/gpu:0 size= 0 Time: 0.000536727905273
/cpu:0 size= 0 Time: 0.06526756286621094
----------------------------------------------------------------------------------------------------
/gpu:0 size= 1000 Time: 0.07515811920166016
/cpu:0 size= 1000 Time: 0.14328646659851074
----------------------------------------------------------------------------------------------------
/gpu:0 size= 2000 Time: 0.017438650131225586
/cpu:0 size= 2000 Time: 0.0789041519165039
----------------------------------------------------------------------------------------------------
/gpu:0 size= 3000 Time: 0.017871618270874023
/cpu:0 size= 3000 Time: 0.21936392784118652
----------------------------------------------------------------------------------------------------
/gpu:0 size= 4000 Time: 0.040592193603515625
/cpu:0 size= 4000 Time: 0.45297980308532715
----------------------------------------------------------------------------------------------------
/gpu:0 size= 5000 Time: 0.03450465202331543
/cpu:0 size= 5000 Time: 0.6990058422088623
----------------------------------------------------------------------------------------------------
/gpu:0 size= 6000 Time: 0.04923081398010254
/cpu:0 size= 6000 Time: 1.1312360763549805
----------------------------------------------------------------------------------------------------
/gpu:0 size= 7000 Time: 0.07115960121154785
/cpu:0 size= 7000 Time: 1.858928918838501
----------------------------------------------------------------------------------------------------
/gpu:0 size= 8000 Time: 0.0996253490447998
/cpu:0 size= 8000 Time: 2.8014204502105713
----------------------------------------------------------------------------------------------------
/gpu:0 size= 9000 Time: 0.13735628128051758
/cpu:0 size= 9000 Time: 3.7534072399139404
----------------------------------------------------------------------------------------------------
/gpu:0 size= 10000 Time: 0.17871403694152832
/cpu:0 size= 10000 Time: 4.951266288757324
----------------------------------------------------------------------------------------------------
/gpu:0 size= 11000 Time: 0.22140908241271973
/cpu:0 size= 11000 Time: 6.701673984527588
----------------------------------------------------------------------------------------------------
/gpu:0 size= 12000 Time: 0.28014397621154785
/cpu:0 size= 12000 Time: 8.391860961914062
----------------------------------------------------------------------------------------------------
/gpu:0 size= 13000 Time: 0.361297607421875
/cpu:0 size= 13000 Time: 10.389846086502075
----------------------------------------------------------------------------------------------------
/gpu:0 size= 14000 Time: 0.44246649742126465
/cpu:0 size= 14000 Time: 13.142382621765137
----------------------------------------------------------------------------------------------------
/gpu:0 size= 15000 Time: 0.5497150421142578
/cpu:0 size= 15000 Time: 15.8779938220977787
----------------------------------------------------------------------------------------------------
/gpu:0 size= 16000 Time: 0.6581192016601562
/cpu:0 size= 16000 Time: 23.798622846603394
----------------------------------------------------------------------------------------------------
/gpu:0 size= 17000 Time: 0.7908139228820801
/cpu:0 size= 17000 Time: 28.801256895065308
----------------------------------------------------------------------------------------------------
/gpu:0 size= 18000 Time: 0.9442639350891113
/cpu:0 size= 18000 Time: 33.42823314666748
----------------------------------------------------------------------------------------------------
/gpu:0 size= 19000 Time: 1.1140697002410889
/cpu:0 size= 19000 Time: 39.92689752578735
----------------------------------------------------------------------------------------------------
/gpu:0 size= 20000 Time: 1.2889599800109863
/cpu:0 size= 20000 Time: 47.23131489753723
----------------------------------------------------------------------------------------------------
/gpu:0 size= 21000 Time: 1.507587194442749
/cpu:0 size= 21000 Time: 53.957911252975464
----------------------------------------------------------------------------------------------------
/gpu:0 size= 22000 Time: 1.7296056747436523
/cpu:0 size= 22000 Time: 62.29582238197327
----------------------------------------------------------------------------------------------------
/gpu:0 size= 23000 Time: 1.9872767925262451
/cpu:0 size= 23000 Time: 70.74891448020935
----------------------------------------------------------------------------------------------------
/gpu:0 size= 24000 Time: 2.540881872177124
/cpu:0 size= 24000 Time: 80.50912141799927
----------------------------------------------------------------------------------------------------
/gpu:0 size= 25000 Time: 8.453091621398926
/cpu:0 size= 25000 Time: 92.09209561347961
----------------------------------------------------------------------------------------------------
/gpu:0 size= 26000 Time: 31.823472499847412
/cpu:0 size= 26000 Time: 105.20583033561707
----------------------------------------------------------------------------------------------------
/gpu:0 size= 27000 Time: 35.68541669845581
/cpu:0 size= 27000 Time: 117.7775731086731
----------------------------------------------------------------------------------------------------
/gpu:0 size= 28000 Time: 39.85190725326538
/cpu:0 size= 28000 Time: 133.0733766555786
----------------------------------------------------------------------------------------------------
/gpu:0 size= 29000 Time: 44.32763409614563
/cpu:0 size= 29000 Time: 142.72973489761353
----------------------------------------------------------------------------------------------------
/gpu:0 size= 30000 Time: 49.07072424888611
/cpu:0 size= 30000 Time: 156.02221703529358
----------------------------------------------------------------------------------------------------
/gpu:0 size= 31000 Time: 54.23987174034119
/cpu:0 size= 31000 Time: 175.54739713668823
----------------------------------------------------------------------------------------------------
/gpu:0 size= 32000 Time: 91.86028575897217
/cpu:0 size= 32000 Time: 192.83744859695435
----------------------------------------------------------------------------------------------------
20. 畫出結果



最後學妹的貓貓說他要站在巨人的肩膀上,下篇待續~
