TensorRT安裝 & 環境配置

TensorRT安裝&環境配置

環境:

ubuntu14.04, Tesla P4, Python3.4, Cuda8.0, Cudnn7.1.3

概述:

從裝有Ubuntu14.04和Python3.4的服務器上實現環境的配置。本文記錄了在配置各個必要組件的環節中遇到的問題。

1. 配置Nvidia驅動

服務器顯卡是Tesla的P4顯卡,在2019.6.13這一天Nivida官網適用Linux-64bit,cuda tookit 8.0的對應驅動(這裏指的只有runfile方式)
也只有一個可以下載,即NVIDIA-Linux-x86_64-384.66.run。在下載安裝過程中遇到了以下幾個問題。

  1. 第一個問題是下載問題。
    Nvidia-Linux-~.run文件下載下來後,顯示的文件大小和官網那個上標識的97m不同,我下載了兩次都是95.55m和103m,在安裝的時候都遇到了錯誤。
    具體就是執行 ./Nvidia-Linux-~.run --no–opengl-- 之後,系統會進行check,報錯提示我check Error,並返回兩串數字串(可能是.run的錯誤位置)。
    這裏的解決辦法就是重新下載驅動,這裏的問題就是驅動受損,我重新下載第三次後成功。
  2. 第二個問題是意外。
    如果lspci | grep NVIDIA 沒有顯示NVIDIA卡,又確定把卡插在了電腦裏,那就說明,插卡的卡槽出了問題或者卡出了問題。
  3. 第三個問題是驅動瓦特問題
    如果前面的步驟都沒有問題,就是驅動瓦特了,重裝一遍即可。

#卸載原來的驅動(殘留在服務器裏,還沒辦法用)
$sudo apt-get remove --purge nvidia*
# 到指定位置尋找Nvidia驅動
cd /root/yanxu/runner/
# 執行安裝(要改爲x權限)
./NVIDIA-Linux-x86_64-384.66.run -no-opengl-files
# 檢測
nvidia-smi
打印了顯卡信息,成功。


我使用的服務器,不用考慮圖形界面問題。另外,服務器本身就已經禁止了nouveau,所以看了其他教程後覺得我不用做nouveau的禁用。

#2.配置Cuda8.0

驅動配置好了之後,根據需要配置cuda和cudnn,在cuda8.0的基礎上安裝最低版本的cudnn。

  1. cudnn的版本選擇很重要,看了官網的Support Matrix Guide
    之後,發現cudnn最低也要使用7.x。嘗試安裝果cudnn5.x,在使用的時候會報錯提示找不到lib~.so.7 ,所以還是要安裝cudnn7.x.
  2. cuda8.0安裝沒什麼問題,跟着網上教程,記得更改環境變量即可。(不太瞭解linux使用root或者各個用戶安裝有什麼不同,我安裝到了/usr/local/cuda-8.0裏面)

#3. 安裝tensorrt
官方的安裝有兩種主流方法,基於debian的安裝方法和基於tar的安裝方法。

  1. Debian方法安裝

前提:

  1. 要利用root權限才能安裝
  2. TensorRT只能安裝到固定的路徑下
  3. CUDA也要用debian package來安裝
  1. Tar方法可以安裝到任何路徑下,但是需要提前自己安裝好所有的依賴(cuda,cudnn等)



    #####具體的命令參考Installation-Guide的第四章,介紹了C++和Python兩種接口的tensorRT安裝。

#4. 安裝pycuda
暫時選擇python接口,需要安裝對應版本的pycuda。按照網上教程直接安裝了pycuda,然後跑demo代碼,遇到了一些問題,下面簡單介紹遇到的問題。

  1. 跑caff_mnist.py的時候,pycuda報錯


    Traceback (most recent call last):

    File “caffe_mnist.py”, line 74, in

    import pycuda.driver as cuda

    File “/usr/local/lib/python3.4/dist-packages/pycuda/driver.py”, line 5, in
    from pycuda._driver import * # noqa

    ImportError: libnvidia-fatbinaryloader.so.367.57: cannot open shared object file: No such file or directory

    就是提示找不到這個.so文件,但是,首先我前一天晚上裝好的是Nvidia.384的驅動,並不是367。我就考慮到這個報錯可能有兩個原因:
  1. 服務器上安裝過其他版本的Nvidia367驅動,在我自動pip3 install pycuda==2018.1的時候,pycuda配置的那個版本。
  2. 我在反覆安裝pycuda的過程中誤刪了相關的.so文件,可能也會導致顯卡驅動瓦特掉(不能用了)。


    果然,檢查了nvidia-smi之後,出現了錯誤,輸入命令lspci | grep NVIDIA發現顯卡還在,所以就是驅動掛了。決定重裝一下驅動,https://blog.csdn.net/weixin_38570251/article/details/80001291. 後來裝完驅動重啓之後,跑腳本就解決了這個問題。

#5. Pillow安裝過程中的一個小問題
因爲第一個demo要使用PIL,所以要在python3.4上安裝Pillow,發現直接pip3 install Pillow之後會報錯,具體返回 AttributeError parallel,
然後查閱資料發現可能最新版本的Pillow和python3.4不兼容,偷懶費大事實錘了,最後 pip3 install Pillow==4.0.0,然後跑demo發現能跑通了。

發佈了23 篇原創文章 · 獲贊 22 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章