30系显卡怎么配置rangenet++和SuMa++
30系顯卡怎么配置rangenet++和SuMa++
- 說在前面
- NVIDIA driver
- CUDA 11.1
- cudnn
- TensorRT 7.2.3
- rangenet++安裝 && debug && build
- rangenet_lib/cmake/tensorrt-config.camke
- rangenet_lib/include/netTensorRT.hpp
- rangenet_lib/src/netTensorRT.hpp
說在前面
相信做SLAM的或多或少都聽說過大名頂頂?shù)腟uMa++,可以說SuMa++是目前為止將語義信息用到激光SLAM中做好的的例子之一了,這里就不介紹SuMa++這個(gè)方法的主要工作了,感興趣的朋友可以去我的另一篇博客看看。
為什么要寫這樣一篇博客呢?之前在公司使用的是1650的顯卡,配置的環(huán)境是Ubuntu 18.04+NVIDIA driver 455+CUDA 10.1+cudnn 7.6.5+TensorRT 5.0.1.5,用GTX 1650的朋友可以直接照抄,都是我多次重裝系統(tǒng)踩坑測(cè)試出來的。
但問題是最近回學(xué)校了,而且換了一臺(tái)新機(jī)器AMD 5800H+nvidia 3060,我已經(jīng)做好跑任何程序都不會(huì)超過一秒的準(zhǔn)備了,但是沒想到新環(huán)境的配置會(huì)如此痛苦,此次采坑共花費(fèi)一周時(shí)間,重裝系統(tǒng)近10次。希望看到的朋友點(diǎn)個(gè)贊。
NVIDIA driver
CUDA 11.1
這里是最坑的地方,最開始不知道30系顯卡只能使用CUDA 11及以上版本,我在CUDA 10的多個(gè)版本都試了一遍 ,到最后一步TensorRT都能安裝成功,但是就是跑不出結(jié)果,調(diào)試代碼發(fā)現(xiàn)程序卡在buildCUDAEngine這一行,不知是什么原因。后經(jīng)高人指點(diǎn),高人說他用PyTorch從去年底開始就要求30系顯卡全部使用CUDA 11,我突然意識(shí)到我應(yīng)該試試CUDA 11。
CUDA 11的安裝也很簡(jiǎn)單,從官網(wǎng)的下載入口下載即可(沒有科學(xué)上網(wǎng)的話可能會(huì)下載很慢),選擇自己對(duì)應(yīng)的版本,我的是Linux -> x86_64 -> Ubuntu -> 18.04 -> deb (local),注意這里推薦使用deb方式安裝,按照下載鏈接下方的步驟一步一步安裝,貌似使用runfile的方式安裝的話,會(huì)缺少幾個(gè)補(bǔ)丁,在安裝TensorRT的時(shí)候會(huì)很麻煩,需要單獨(dú)下載這幾個(gè)補(bǔ)丁來安裝。
cudnn
cudnn選擇的版本是8.1.0,同樣從官網(wǎng)的下載入口,選擇Download cuDNN v8.1.0 (January 26th, 2021), for CUDA 11.0,11.1 and 11.2,下載源碼手動(dòng)安裝,選擇cuDNN Library for Linux (x86_64)。具體安裝方式是將文件解壓之后復(fù)制到系統(tǒng)路徑下,然后給文件權(quán)限,可以參照這篇博客Ubuntu18.04安裝CUDA10、CUDNN
TensorRT 7.2.3
rangenet++的作者是推薦使用TensorRT 5.1.5的,并且測(cè)試啥的都是在這個(gè)版本上進(jìn)行的。但是我們已經(jīng)安裝了CUDA 11.1,TensorRT 5.1.5是沒辦法在CUDA 11.1上面跑的,所以我選擇了一個(gè)最早能支持CUDA 11.1的TensorRT 7.2.3,但是既然和原作者的版本不一致,TensoRT到時(shí)候和rangenet++適配的時(shí)候,免不了要修改rangenet++的代碼,這個(gè)要做好心里準(zhǔn)備。
TensorRT 7.2.3的安裝也很簡(jiǎn)單,從官方下載入口選擇TensorRT 7.2.3 for Ubuntu 18.04 and CUDA 11.1 & 11.2 DEB local repo package進(jìn)行安裝。安裝方法可以照抄官方文檔。
需要注意的是使用pip安裝依賴的時(shí)候可以同時(shí)pip和pip3都安裝(我使用的都是pip3),一招解決不必要的問題。
測(cè)試是否安裝成功,以及能否跑tensorrt。
在終端輸入dpkg -l | grep TensorRT,輸出如圖。
終端依次輸入python3 import tensorrt tensorrt.__version__,如果能像下面一樣成功顯示版本號(hào),則安裝成功。
這一步完成只能說明TensorRT和python的依賴安裝成功,并不能說明TensoRT就能使用了,需要再測(cè)試一下。安裝成功之后會(huì)在/usr/local路徑下面有一個(gè)tensorrt的文件夾,復(fù)制出來,進(jìn)入到sample文件夾下,在終端輸入命令make,這一步會(huì)在/bin中生成一些可執(zhí)行文件,運(yùn)行./sample_mnist,如果能成功辨別手寫數(shù)字,則成功。
rangenet++安裝 && debug && build
先從github上把源代碼Git下來,readme文檔里面有Git的方式。
在編譯之前需要修改基礎(chǔ)源代碼,每一處修改都是我摸索出來的,具體理由都是看編譯報(bào)錯(cuò)的提示來的。
rangenet_lib/cmake/tensorrt-config.camke
具體修改方式如下圖,注釋的地方是源代碼。
rangenet_lib/include/netTensorRT.hpp
把第十一行#include <NvOnnxParserRuntime.h>注釋掉。
rangenet_lib/src/netTensorRT.hpp
至此,便宜就能完成了,盡管有很多warning,但是勉強(qiáng)能運(yùn)行了,結(jié)果也都是正確的。
按照github上的readme文件的運(yùn)行,就能看到結(jié)果了!可以愉快地使用rangenet++了,SuMa++的配置一步一步來就OK,有人想看我再寫。
總結(jié)
以上是生活随笔為你收集整理的30系显卡怎么配置rangenet++和SuMa++的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 显示器的bit是什么意思,8bit和10
- 下一篇: 解决口袋动画产生的片头动画无法使用pow