日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Ubuntu14.04上安装TensorRT 2.1操作步骤

發布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu14.04上安装TensorRT 2.1操作步骤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Ubuntu14.04 上安裝TensorRT2.1有兩種方法:(1)、通過.deb直接安裝;(2)、通過Tar文件安裝。這里通過Tar文件安裝。

安裝步驟:

1. 安裝CUDA 8.0,可參考:?http://blog.csdn.net/fengbingchun/article/details/53840684??;

2. 從? https://developer.nvidia.com/nvidia-tensorrt-download?下載 TensorRT-2.1.2.x86_64.cuda-8.0-14-04.tar.bz2 ;

3. 從? https://developer.nvidia.com/rdp/cudnn-download?下載 cudnn-8.0-linux-x64-v6.0.tgz;

4.?通過以下命令解壓縮cudnn,會下當前路徑生成一個cuda目錄,包含cudnn.h頭文件和cudnn動態庫、靜態庫;并通過 sudo? cp? -a 命令將cuda目錄下的內容copy到/usr/local/cudnn/cudnn8.0_v6.0目錄下;

tar -xvzf cudnn-8.0-linux-x64-v6.0.tgz
5.? 通過以下命令解壓縮TensorRT2.1,會在當前路徑生成一個TensorRT-2.1.2目錄,里面包括bin、data、doc、include、lib、samples、targets目錄,存放著TensorRT2.1的頭文件、動態庫、doc、sample、測試數據等內容;在TensorRt-2.1.2/targets/x86_64-linux-gun/samples目錄下,執行make命令,正常情況下會在TensorRt-2.1.2/targets/x86_64-linux-gun/bin目錄下生成所有samples的執行文件,可說明本機是滿足TensorRT運行要求的。并將TensorRT-2.1.2/include 和TensorRT-2.1.2/targets/x86_64-linux-gun/lib目錄通過 sudo cp -a 命令將其copy到/usr/local/tensorrt/tensorrt2.1_v6.0目錄下;

tar xf TensorRT-2.1.2.x86_64.cuda-8.0-14-04.tar.bz2
6. 為了驗證其正確性,通過CMakeLists.txt對samples中的sampleMNIST.cpp文件進行編譯,結果可以正常生成執行文件,CMakeLists.txt內容如下:

# CMake file for TensorRt_Test# 設定依賴的CMake版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
# 指定項目名稱
PROJECT(TensorRT_Test)# 搜索指定的OpenCV外部依賴庫頭文件和庫文件位置
FIND_PACKAGE(OpenCV 2)
# 搜索指定的CUDA外部依賴庫頭文件和庫文件位置
FIND_PACKAGE(CUDA)# 打印相關信息, CMAKE_CURRENT_SOURCE_DIR指的是當前處理的CMakeLists.txt所在的路徑
MESSAGE(STATUS "current path: ${CMAKE_CURRENT_SOURCE_DIR}")# 定義用戶自定義變量
SET(PATH_CPP_FILES ./../../demo/TensorRT_Test)
#MESSAGE(STATUS "cpp files path: ${PATH_CPP_FILES}")
SET(PATH_CU_FILES ./../../demo/TensorRT_Test)# 遞歸查詢所有匹配的文件:*.cpp和*.cu
FILE(GLOB_RECURSE CPP_LIST ${PATH_CPP_FILES}/*.cpp)
FILE(GLOB_RECURSE CU_LIST ${PATH_CU_FILES}/*.cu)
#MESSAGE(STATUS "cpp list: ${CPP_LIST}")
#MESSAGE(STATUS "cu list: ${CU_LIST}")# 使CMake支持C++11特性
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu++0x")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")# 指定CUDA頭文件的搜索路徑
INCLUDE_DIRECTORIES(/usr/local/cuda-8.0/include)
# 指定TensorRT頭文件的搜索路徑
INCLUDE_DIRECTORIES(/usr/local/tensorrt/tensorrt2.1_v6.0/include)
# 指定cudnn頭文件的搜索路徑
INCLUDE_DIRECTORIES(/usr/local/cudnn/cudnn8.0_v6.0/include)
# 指定OpenCV頭文件搜索路徑
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#MESSAGE(STATUS "opencv include directory: ${OpenCV_INCLUDE_DIRS}")# 指定TensorRT動態庫搜索路徑
LINK_DIRECTORIES(/usr/local/tensorrt/tensorrt2.1_v6.0/lib)
# 指定cudnn動態庫搜索路徑
LINK_DIRECTORIES(/usr/local/cudnn/cudnn8.0_v6.0/lib64)# 使CUDA NVCC 編譯器支持C++11特性
LIST(APPEND CUDA_NVCC_FLAGS -std=c++11;-O2)
LIST(APPEND CUDA_NVCC_FLAGS -Xcompiler;-fPIC)SET(CUDA_PROPAGATE_HOST_FLAGS OFF)LIST(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_50,code=sm_50)
LIST(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_60,code=sm_60)# 編譯可執行程序,即生成可執行文件TensorRT_Test
#ADD_EXECUTABLE(TensorRT_Test ${CPP_LIST} ${CU_LIST}) # 不包括編譯*.cu文件,需要使用CUDA_ADD_EXECUTABLE命令
CUDA_ADD_EXECUTABLE(TensorRT_Test ${CPP_LIST} ${CU_LIST})
# 用來為target添加需要鏈接的共享庫,指定工程所用的依賴庫,包括動態庫和靜態庫
TARGET_LINK_LIBRARIES(TensorRT_Test ${OpenCV_LIBS} nvcaffe_parser nvinfer cudnn)
#MESSAGE(STATUS "opencv libs: ${OpenCV_LIBS}")MESSAGE(STATUS "**************************************")

以下內容翻譯于:? http://docs.nvidia.com/deeplearning/sdk/tensorrt-user-guide/index.html ?

1. TensorRT 2.1支持的layer包括:Convolution, ReLU, Sigmoid, TanH, Pooling, Power, BatchNorm, ElementWise(Eltwise), LRN, InnerProduct(FullyConnected), SoftMax, Scale, and Deconvolution layers.

2. TensorRT 2.1不支持的layer包括:Deconvolution groups, Dilated convolutions, PReLU, Leaky ReLU, Scale, other than per-channel scaling, ElementWise (Eltwise) with more than two inputs.

3. TensorRT的NvCaffeParser實現從Caffe的layer到TensorRT的layer, NvCaffeParser不支持Caffe prototxt的傳統格式。

4. TensorRT關鍵概念:

網絡定義:一個網絡是由一系列layer和一組tensor組成。

層(layer): 每一個layer從一組輸入tensor計算一組輸出tensor, layer是有參數的,如Convolution size, stride等。

tensor: tensor既可以是網絡的輸入,也可以是layer的輸出. tensor具有指定精度的數據類型,如16位/36位浮點數,及維度,如3維度,通道數、寬度、高度.輸入tensor的尺寸由應用程序定義,輸出tensor的尺寸由builder推理出來。

每個layer和tensor都有一個名稱。使用NvCaffeParser時,tensor和layer的名稱將從Caffe的prototxt文件中獲取。

5. TensorRT工作流:用戶通過神經網絡訓練生成一個model --> 導入已訓練的model進TensorRT --> 優化網絡產生一個Plan --> 執行推理。

Plan也可以被序列化存儲到磁盤,后面可以重新load Plan進TensorRT,可省去再次執行優化網絡的操作。

6. 構建階段:在構建階段,工具包通過網絡定義,執行優化,并產生推理引擎(inference engine). 構建階段很占用時間,尤其在嵌入式平臺時,因此,一個典型的應用程序將構建一次推理引擎,然后將其序列化以備后用。

構建階段在layer上執行的優化包括:消除沒有用到的輸出層; convolutions, bias, ReLU layer的融合(fusion)操作; 相似的參數和相同的源tensor執行聚合(aggregation)操作;通過將layer的輸出引導到最終目的地,省略(elision)連接層;運行layers以從其內核目錄中選擇最快的;內存優化。

7. 執行階段:執行已優化的引擎; 在GPU上,使用引擎執行推理任務。


GitHub:https://github.com/fengbingchun/CUDA_Test

總結

以上是生活随笔為你收集整理的Ubuntu14.04上安装TensorRT 2.1操作步骤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。