鄭州營銷型網(wǎng)站設(shè)計運營在線收錄
在平臺 jetson Xavier NX 中想使用 cudnn 和 tensorrt。然后自己下載了相應包并解壓,拷貝,編譯
安裝 cudnn
1.下載對應包文件,例如:cudnn-linux-sbsa-8.4.1.50_cuda11.6-archive.tar.xz
2.解壓,移動到解壓目錄,再拷貝。如下:
sudo cp include/cudnn*.h /usr/local/cuda/include
sudo cp -P lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
3.安裝完成
安裝 tensorrt
1.下載對應包文件,例如:TensorRT-8.4.2.4.Ubuntu-20.04.aarch64-gnu.cuda-11.6.cudnn8.4.tar.gz
2.解壓,進入解壓目錄,再進入sample中隨便找一個工程進行make
3.安裝完成
問題:tensorrt 下任意一個工程make ,報錯,錯誤如下:
Could not initialize cudnn, please check cudnn installation.
buildSerializedNetwork::636] Error Code 2: Internal Error (Assertion engine != nullptr failed. )
前面還有一點,我忘記了。
根據(jù)這兩個問題檢索,網(wǎng)友說:
- cuda 與 cudnn 版本不兼容
- 顯卡內(nèi)存不足
這兩個問題我也嘗試解決但任然沒有頭緒。
第二天早上,我再次檢索,發(fā)現(xiàn)Nvidia開發(fā)者網(wǎng)站發(fā)布了一篇文章 Jetson Software Roadmap for 2H-2021 and 2022 ,根據(jù)該文中工作人員說:
JetPack 4.6 is our next production release, currently scheduled for July 2021. It will bring updates to the CUDA, cuDNN, and TensorRT compute stack as well as a feature-rich BSP update with L4T 32.6 based on Ubuntu 18.04. New capabilities will be included for over the air (OTA) software updates, security, bootloader, multimedia, camera, and cloud-native technologies.
我就瞬間詫異了,JetPack 4.6 就直接包含了 CUDA, cuDNN, TensorRT。文中還說 JetPack 4.6 是對以前的資源進行更新,增加。那 JetPack 5.0.2 那也應該是這樣的。
然后我在根目錄下去尋找 cudnn頭文件和庫文件
sudo find . -name cudnn*.h
sudo find . -name libcudnn*.so*
發(fā)現(xiàn)有多個版本的 cudnn!!!!!!!!!!
啊,這不就是 檢索答案
中說的 cuda 與 cudnn 版本不兼容
問題嘛,
一個是 JetPack 5.0.2 刷系統(tǒng)時自帶的,一個是我自己安裝的。瞬間我明白了,我不是多此一舉嘛!!!
然后我刪除掉了我自己安裝的 cudnn
sudo rm /usr/local/cuda/include/cudnn*.h -rf
sudo rm /usr/local/cuda/lib64/libcudnn* -rf
然后再 /usr/src/tensorrt/samples/sampleDynamicReshape
這個目錄下編譯該代碼,再在 /usr/src/tensorrt/bin
這個目錄下執(zhí)行 sample_dynamic_reshape
。該程序順利執(zhí)行!!!
問題其實就在于自己多此一舉,導致系統(tǒng)存在多個 cudnn 版本。
附上安裝 cudnn 和 tensorrt 的鏈接
Installing cuDNN on Linux
TensorRT Tar File Installation