1. 程式人生 > >ubuntu18.04+RTX2080深度學習環境搭建

ubuntu18.04+RTX2080深度學習環境搭建

搭建環境弄了半天,主要是因為各個環境版本號的問題輾轉騰挪了很久,再次記錄一下最終成功run起來的軟硬體版本號:

  1. cpu 8700K,gpu rtx2080
  2. ubuntu 18.04 64位
  3. gcc g++版本調整為7.3(ubuntu18.04的自帶版本)
  4. NVIDIA驅動 410.78,用run檔案方式安裝!參考https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-18-04-bionic-beaver-linux的Manual Install using the Official Nvidia.com driver
  5. gcc g++版本調整為5
  6. CUDA cuda_9.0.176.1_linux (ubuntu17.10 64位版,同時還有4個補丁!,參考https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/538832/)
  7. cudnn libcudnn7_7.0.5.15-1+cuda9.0_amd64(參考6的連結,但附帶examples的測試可略過)
  8. python3.6
  9. 如果原環境已安裝了tensorflow,解除安裝python環境原來的tensorflow,用pip install的方式安裝tensorflow-gpu==1.8.0

附帶說一下,用上面1-8的各軟體版本,然後9換成tensorflow-gpu==1.12版本後進行訓練時會提示:

E tensorflow/stream_executor/cuda/cuda_dnn.cc:363] Loaded runtime CuDNN library: 7.0.5 but source was compiled with: 7.1.4.  CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. If using a binary install, upgrade your CuDNN library.  If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.

這說明tensorflow-gpu是和cudnn版本是存在對應關係的。貌似可以在此基礎上直接升級cuda9.0對應的cudnn版本號,但是這裡我沒有在折騰了,以後有時間在搗鼓下。

那麼這個cudnn的意義在於哪裡呢?“通過 TensorFlow(或 Theano、CNTK),Keras 可以在 CPU 和 GPU 上無縫執行。在 CPU 上執行 時,TensorFlow 本身封裝了一個低層次的張量運算庫,叫作 Eigen;在 GPU 上執行時,TensorFlow 封裝了一個高度優化的深度學習運算庫,叫作 NVIDIA CUDA 深度神經網路庫(cuDNN)”,可見這是用英偉達的gpu進行深度學習所依賴的重要元件。

 

彩蛋環節為搞完這一套軟體後跑了個簡單的tensorflow模型進行基準測試的結果:

Shape: (10000, 10000) Device: /cpu:0
Time taken: 0:00:05.056056


Shape: (10000, 10000) Device: /gpu:0
Time taken: 0:00:00.798914
 

可見即使是超頻到5G的6核12執行緒的天梯圖頂端的8700K在平行計算方面跟GPU的差距之大,大概就像空手道跆拳道之流和真正的中國功夫的差距那麼大吧,哈哈!