精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用NVIDIA TensorRT部署實時深度學習應用程序

星星科技指導員 ? 來源:NVIDIA ? 作者:Dustin ? 2022-04-18 14:28 ? 次閱讀

深度神經網絡 (DNN) 是實現強大的計算機視覺人工智能應用程序的強大方法。今天發布的NVIDIA Jetpack 2.3使用 NVIDIA TensorRT (以前稱為 GPU 推理引擎或 GIE)將嵌入式應用程序中 DNN 的運行時性能提高了兩倍以上。NVIDIA 的 1 TFLOP/s 嵌入式Jetson TX1模塊在推理工作負載期間的能效比 Intel i7 CPU 高 20 倍,可部署在無人機智能機器上。Jetson 和深度學習為自主和數據分析的最新進展提供動力,例如超高性能的藍綠色無人機如圖 1 所示。JetPack 包含全面的工具和 SDK,可簡化為主機和嵌入式目標平臺部署核心軟件組件和深度學習框架的過程。

JetPack 2.3 具有新的 API,可通過 Jetson TX1 實現高效的低級攝像頭和多媒體流,同時更新 Linux For Tegra (L4T) R24.2 和 Ubuntu 16.04 aarch64 和 Linux 內核 3.10.96。JetPack 2.3 還包括 CUDA Toolkit 8.0 和cuDNN 5.1,具有對卷積神經網絡 (CNN)和 RNN和LSTM等高級網絡的 GPU 加速支持。為了有效地將數據流進出算法管道,JetPack 2.3 添加了新的 Jetson Multimedia API 包以支持低級硬件 V4L2 編解碼器和基于 Khronos OpenKCam的每幀相機/ISP API 。

JetPack 中包含的這些工具為部署實時深度學習應用程序及其他應用程序奠定了基礎。有關包含的軟件的完整列表,請參見下文。為了幫助您入門,JetPack 還包含有關訓練和部署 DNN 的深度學習示例和端到端教程

JetPack 2.3 組件

poYBAGJdBUiAZr_CAAAewB95u0c853.png

張量RT

現在可通過 JetPack 2.3 用于 Linux 和 64 位 ARM,NVIDIA TensorRT 可最大限度地提高神經網絡的運行時性能,以便在 Jetson TX1 或云中進行生產部署。在通過可訪問的 C++ 接口提供神經網絡原型和訓練模型權重后,TensorRT 執行流水線優化,包括內核融合、層自動調整和半精度 (FP16) 張量布局,從而提高性能并提高系統效率。有關TensorRT及其圖形優化背后的概念,請參閱這篇Parallel Forall 帖子。圖 2 中的基準測試結果比較了 GPU 加速的 Caffe 和 TensorRT 之間的 GoogleNet 圖像識別網絡的推理性能,兩者都啟用了 FP16 擴展,并且在一系列批量大小上。(與 FP32 相比,FP16 模式不會導致分類精度損失。)

pYYBAGJdBQmAIB5AAACYXsWMNtE536.png

圖 2:在 Jetson TX1 上以 FP16 模式和批量大小為 2 運行 GoogleNet 時,TensorRT 的性能提高了一倍以上。

性能是通過使用 TensorRT 或 Caffe 的優化nvcaffe/fp16分支使用 GoogleNet 處理的每秒圖像來衡量的。測試使用平面 BGR 224×224 圖像,GPU 核心時鐘頻率調節器最高為 998MHz。批量大小表示網絡一次處理多少張圖像。

圖 2 中的基準測試結果顯示,在批量大小為 2 時,TensorRT 和 Caffe 之間的推理性能提高了 2 倍以上,單張圖像提高了 30% 以上。盡管使用批量大小 1 可在單個流上提供最低的瞬時延遲,但同時處理多個數據流或傳感器的應用程序,或者執行窗口或感興趣區域 (ROI) 二次采樣的應用程序,可能會在批量大小下實現雙倍的吞吐量增益2. 可以支持更大批量(例如 8、64 或 128)的應用程序(例如數據中心分析)實現更大的整體吞吐量。

比較功耗顯示了 GPU 加速的另一個優勢。如圖 3 所示,與運行 Caffe 和 MKL 2017 的英特爾 i7-6700K Skylake CPU 相比,使用 TensorRT 的 Jetson TX1 使用 GoogleNet 進行深度學習推理的效率高出 18 倍。

pYYBAGJdBQyAFBmAAACWgJtWIZ8105.png

圖 3:Jetson TX1 在深度學習推理方面的能效比 CPU 高 20 倍。

圖 3 的結果是通過將測量的每秒處理的 GoogleNet 圖像除以基準測試期間處理器的功耗來確定的。這些結果使用批量大小 2,盡管批量大小為 64 Jetson TX1 能夠達到 21.5 GoogleNet 圖像/秒/瓦特。TensorRT 從網絡層規范(prototxt)開始,在網絡層及以上進行優化;例如,融合內核并每次處理更多層,從而節省系統資源和內存帶寬。

通過將 TensorRT 連接到攝像頭和其他傳感器,可以使用實時數據實時評估深度學習網絡。對于實現導航、運動控制和其他自主功能很有用,深度學習大大減少了實現復雜智能機器所需的硬編碼軟件的數量。有關使用 TensorRT 通過 Jetson TX1 的板載攝像頭快速識別物體以及在視頻源中定位行人坐標的教程,請參閱此 GitHub存儲庫。

除了快速評估神經網絡之外,TensorRT 還可以與 NVIDIA 的 DIGITS 工作流程一起有效地用于交互式 GPU 加速網絡訓練(參見圖 4)。DIGITS 可以在云端或本地桌面上運行,并通過 Caffe 或 Torch 提供網絡訓練的簡單配置和交互式可視化。有多個 DIGITS 演練示例可讓您開始使用自己的數據集訓練網絡。DIGITS 在每個訓練時期保存一個模型快照(通過訓練數據)。所需的模型快照或 .caffemodel 以及網絡 prototxt 規范被復制到 Jetson TX1,TensorRT 在其中加載和解析網絡文件并構建優化的執行計劃。

poYBAGJdBQ6AFYgvAACSbTVC8Ck426.png

圖 4:用于在離散 GPU 上訓練網絡并在 Jetson TX1 上使用 TensorRT 部署的 DIGITS 工作流程。

使用 DIGITS 和DGX-1 超級計算機進行訓練,并在 Jetson 上使用 TensorRT,NVIDIA 的完整計算平臺使世界各地的開發人員能夠使用端到端深度學習解決方案來部署高級人工智能和科學研究。

CUDA 工具包 8.0 和 cuDNN 5.1

CUDA Toolkit 8.0包括針對 Jetson TX1 的集成 NVIDIA GPU 的 CUDA 的最新更新。主機編譯器支持已更新,包括 GCC 5.x,NVCC CUDA 編譯器已優化,編譯速度最高可提高 2 倍。CUDA 8 包括 nvGRAPH,這是一個新的 GPU 加速圖形算法庫,例如 PageRank 和單源最短路徑。CUDA 8 還包括用于在 CUDA 內核以及 cuBLAS 和 cuFFT 等庫中使用半精度浮點計算 (FP16) 的新 API。CUDA 深度神經網絡庫 cuDNN 5.1 版支持最新的高級網絡模型,如LSTM(長短期記憶)和RNN(循環神經網絡)。看到這個平行的Forall發布關于 cuDNN 現在支持的 RNN 模式的帖子,包括ReLU、門控循環單元 (GRU) 和 LSTM。

cuDNN 已集成到所有最流行的深度學習框架中,包括 Caffe、Torch、CNTK、TensorFlow等。使用通過綁定到 cuDNN 編譯的 Torch,最近可用的網絡(如 LSTM)啟用了深度強化學習等領域的功能,其中 AI 代理根據傳感器狀態和來自獎勵功能的反饋學習在現實世界或虛擬環境中在線操作。通過釋放深度強化學習者來探索他們的環境并適應不斷變化的條件,人工智能代理可以理解并采用復雜的預測性和直觀的類人行為。OpenAI健身房該項目有許多用于訓練 AI 代理的虛擬環境示例。在具有非常復雜的狀態空間的環境中(例如在許多現實世界場景中發現的環境),強化學習器使用深度神經網絡通過估計未來來選擇下一步行動基于感官輸入的潛在獎勵(通常稱為 Q-Learning 和 Deep Q-learning Networks:DQNs)。由于 DQN 通常非常大,以便將傳感器狀態(如高分辨率相機和 LIDAR 數據)映射到代理可以執行的每個潛在動作的輸出,因此 cuDNN 對于加速強化學習網絡至關重要,因此 AI 代理保持交互性并且可以實時學習。圖 5 顯示了我為在 Jetson TX1 上實時學習而編寫的 DQN 的輸出。這個例子的代碼,在 GitHub 上可用,在 Torch 中使用 cuDNN 綁定實現,并具有用于集成到機器人平臺(如機器人操作系統 (ROS))的 C++ 庫 API。

pYYBAGJdBReAZH8lAAPpXMchSN8794.png

圖 5:深度強化 Q 學習網絡 (DQN) 在玩游戲和模擬時學習,在 Jetson TX1 上運行。

在許多現實世界的機器人應用和傳感器配置中,完全可觀察的狀態空間可能不可用,因此網絡無法保持對整個環境狀態的瞬時感官訪問。來自 cuDNN 的 GPU 加速 LSTM 在解決部分可觀察性問題方面特別有效,它依靠從 LSTM 編碼的內存來記住先前的經驗并將觀察結果鏈接在一起。LSTM 在具有語法結構的自然語言處理 (NLP) 應用程序中也很有用。

Jetson 多媒體 SDK

JetPack 2.3 還包含新的 Jetson Multimedia API 包,為開發人員提供較低級別的 API 訪問權限,以便在使用 Tegra X1 硬件編解碼器、MIPI CSI 視頻攝取 (VI) 和圖像信號處理器 (ISP) 時進行靈活的應用程序開發。這是對先前版本中可用的 GStreamer 媒體框架的補充。Jetson Multimedia API 包括攝像頭攝取和 ISP 控制,以及用于編碼、解碼、縮放和其他功能的 Video4Linux2 (V4L2)。這些較低級別的 API 可以更好地控制底層硬件塊。

V4L2 支持提供對視頻編碼和解碼設備、格式轉換和縮放功能的訪問,包括對EGL和高效內存流的支持。用于編碼的 V4L2 開放了許多功能,例如比特率控制、質量預設、低延遲編碼、時間權衡、提供運動矢量地圖以及更多用于靈活和豐富的應用程序開發。通過添加強大的錯誤和信息報告、跳幀支持、EGL 圖像輸出等功能,解碼器能力得到顯著增強。VL42 展示了 Jetson TX1 強大的視頻硬件功能,用于圖像格式轉換、縮放、裁剪、旋轉、過濾和多個同步流編碼。

為了幫助開發人員快速將深度學習應用程序與數據流源集成,Jetson Multimedia API 包含了使用 V4L2 編解碼器和 TensorRT 的強大示例。多媒體 API 包中包含圖 6 中的對象檢測網絡示例,該示例源自 GoogleNet,并通過 V4L2 解碼器和 TensorRT 流式傳輸預編碼的 H.264 視頻數據。

與核心圖像識別相比,目標檢測除了提供分類外,還提供圖像內的邊界位置,使其可用于跟蹤和避障。多媒體 API 示例網絡源自 GoogleNet,帶有用于提取邊界框的附加層。在 960×540 半高清輸入分辨率下,目標檢測網絡以比原始 GoogleNet 更高的分辨率捕獲,同時使用 TensorRT 在 Jetson TX1 上保持實時性能。

Jetson Multimedia API 包中的其他功能包括 ROI 編碼,它允許在一幀中定義多達 6 個感興趣的區域。這通過允許僅為感興趣的區域分配更高的比特率來實現傳輸和存儲帶寬優化。為了通過 EGLStreams 進一步促進 CUDA 和 OpenGL 等 API 之間的高效流式傳輸,多媒體 API 中公開了 NV dma_buf 結構。

相機 ISP API

基于 Khronos OpenKCam,低級相機/ISP API 庫提供對相機參數和 EGL 流輸出的精細每幀控制,從而允許與 GStreamer 和 V4L2 管道進行高效互操作。攝像頭 API 為開發人員提供了對 MIPI CSI 攝像頭視頻攝取和 ISP 引擎配置的較低級別的訪問權限。還包括示例 C++ 代碼和 API 參考。以下示例代碼片段搜索可用的攝像頭、初始化攝像頭流并捕獲視頻幀。

參考。以下示例代碼片段搜索可用的攝像頭、初始化攝像頭流并捕獲視頻幀。

#include  <阿格斯/阿格斯.h>
#include #include  
#包括#包括 

使用命名空間阿格斯;使用  

// 枚舉相機設備并創建 Argus 會話// 枚舉相機設備并創建 Argus 會話
UniqueObj cameraProvider(CameraProvider::create());UniqueObj cameraProvider ( CameraProvider :: create ());
CameraProvider* iCameraProvider = interface_cast(cameraProvider);CameraProvider * iCameraProvider = interface_cast ( cameraProvider );

std::vector 相機;::矢量< CameraDevice *>相機
狀態狀態 = iCameraProvider->getCameraDevices(&cameras);狀態狀態= iCameraProvider -> getCameraDevices (& camera );

UniqueObj captureSession(iCameraProvider->createCaptureSession(cameras[0],UniqueObj captureSession ( iCameraProvider -> createCaptureSession (相機[ 0 ],
                                                               &地位));&狀態));
ICaptureSession *iSession = interface_cast(captureSession);ICaptureSession  

// 配置攝像頭輸出流參數// 配置攝像頭輸出流參數
UniqueObj streamSettings(iSession->createOutputStreamSettings());UniqueObj streamSettings ( iSession -> createOutputStreamSettings ());

IOutputStreamSettings *iStreamSettings = interface_cast(streamSettings);IOutputStreamSettings  
    
iStreamSettings->setPixelFormat(PIXEL_FMT_YCbCr_420_888);->設置像素PIXEL_FMT_YCbCr_420_888 );
iStreamSettings->setResolution(Size(640, 480));-> setResolution (大小( 640 ,  

// 將相機輸出連接到 EGLStream// 將相機輸出連接到 EGLStream
UniqueObj 流(iSession->createOutputStream(streamSettings.get()));UniqueObj( iSession -> createOutputStream ( streamSettings . get ()));
UniqueObj 消費者(EGLStream::FrameConsumer::create(stream.get()));UniqueObj消費者EGLStream :: FrameConsumer :: create ( stream.get 
EGLStream::IFrameConsumer *iFrameConsumer = interface_cast(consumer);EGLStream :: IFrameConsumer  

// 從 EGLStream 獲取幀// 從 EGLStream 獲取幀
常量 uint64_t FIVE_SECONDS_IN_NANOSECONDS = 5000000000;常量  
UniqueObj 幀(iFrameConsumer->acquireFrame(FIVE_SECONDS_IN_NANOSECONDS,UniqueObj框架( iFrameConsumer -> acquireFrame ( FIVE_SECONDS_IN_NANOSECONDS ,
                                             &地位));&狀態));

EGLStream::IFrame *iFrame = interface_cast(frame);EGLStream :: IFrame  
EGLStream::Image *image = iFrame->getImage();EGLStream :: Image  

Jetson TX1 開發人員套件包括一個帶有 Omnivision OV5693 RAW 圖像傳感器的 5MP 相機模塊。現在可以通過相機 API 或 GS??treamer 插件啟用對該模塊的 ISP 支持。此版本還可以通過相機/ISP API 完全支持 Leopard Imaging 的 IMX185 的 2.1MP 相機(請參閱 Leopard Imaging 的Jetson 相機套件)。通過首選合作伙伴服務啟用 ISP 對其他傳感器的支持。此外,USB 攝像頭、集成 ISP 的 CSI 攝像頭和 ISP-bypass 模式下的 RAW 輸出 CSI 攝像頭可以與 V4L2 API 一起使用。

展望未來,所有相機設備驅動程序都應使用 V4L2 媒體控制器傳感器內核驅動程序API——有關詳細信息和基于開發人員套件相機模塊的完整示例,請參閱V4L2 傳感器驅動程序編程指南。

智能機器無處不在

JetPack 2.3 包含使用 NVIDIA Jetson TX1 和 GPU 技術部署生產級高性能嵌入式系統的所有最新工具和組件。NVIDIA GPU 為深度學習和人工智能領域的最新突破提供支持,用于解決每天面臨的重要挑戰。使用 GPU 和 JetPack 2.3 中的工具,任何人都可以開始設計高級 AI 來解決現實世界的問題。訪問 NVIDIA 的深度學習學院,獲取實踐培訓課程和這些 Jetson wiki 資源,了解深度學習。NVIDIA 的 Jetson TX1 DevTalk 論壇也可用于技術支持并與社區中的開發人員進行討論。立即下載 JetPack并為 Jetson 和 PC 安裝最新的 NVIDIA 工具。

關于作者

Dustin 是 NVIDIA Jetson 團隊的一名開發人員推廣員。Dustin 擁有機器人技術和嵌入式系統方面的背景,喜歡在社區中提供幫助并與 Jetson 合作開展項目。您可以在NVIDIA 開發者論壇或GitHub 上找到他。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    210

    文章

    28205

    瀏覽量

    206520
  • API
    API
    +關注

    關注

    2

    文章

    1485

    瀏覽量

    61816
  • 深度學習
    +關注

    關注

    73

    文章

    5492

    瀏覽量

    120976
收藏 人收藏

    評論

    相關推薦

    TensorRT-LLM低精度推理優化

    本文將分享 TensorRT-LLM 中低精度量化內容,并從精度和速度角度對比 FP8 與 INT8。首先介紹性能,包括速度和精度。其次,介紹量化工具 NVIDIA TensorRT Model
    的頭像 發表于 11-19 14:29 ?159次閱讀
    <b class='flag-5'>TensorRT</b>-LLM低精度推理優化

    魔搭社區借助NVIDIA TensorRT-LLM提升LLM推理效率

    “魔搭社區是中國最具影響力的模型開源社區,致力給開發者提供模型即服務的體驗。魔搭社區利用NVIDIA TensorRT-LLM,大大提高了大語言模型的推理性能,方便了模型應用部署,提高了大模型產業應用效率,更大規模地釋放大模型的
    的頭像 發表于 08-23 15:48 ?387次閱讀

    NVIDIA推出全新深度學習框架fVDB

    在 SIGGRAPH 上推出的全新深度學習框架可用于打造自動駕駛汽車、氣候科學和智慧城市的 AI 就緒型虛擬表示。
    的頭像 發表于 08-01 14:31 ?522次閱讀

    深度學習算法在嵌入式平臺上的部署

    隨著人工智能技術的飛速發展,深度學習算法在各個領域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰性的任
    的頭像 發表于 07-15 10:03 ?1178次閱讀

    借助NVIDIA DOCA 2.7增強AI 云數據中心和NVIDIA Spectrum-X

    NVIDIA DOCA 加速框架為開發者提供了豐富的庫、驅動和 API,以便為 NVIDIA BlueField DPU 和 SuperNIC 創建高性能的應用程序和服務。
    的頭像 發表于 05-29 09:22 ?462次閱讀

    NVIDIA加速微軟最新的Phi-3 Mini開源語言模型

    NVIDIA 宣布使用 NVIDIA TensorRT-LLM 加速微軟最新的 Phi-3 Mini 開源語言模型。TensorRT-LLM 是一個開源庫,用于優化從 PC 到云端的
    的頭像 發表于 04-28 10:36 ?487次閱讀

    使用Docker部署Go Web應用程序步驟

    大多數情況下Go應用程序被編譯成單個二進制文件,web應用程序則會包括模版和配置文件。而當一個項目中有很多文件的時候,由于很多文件沒有同步就會導致錯誤的發生并且產生很多的問題。
    發表于 04-20 09:33 ?475次閱讀
    使用Docker<b class='flag-5'>部署</b>Go Web<b class='flag-5'>應用程序</b>步驟

    NVIDIA數字人技術加速部署生成式AI驅動的游戲角色

    NVIDIA 在 GDC 2024 大會上宣布,Inworld AI 等領先的 AI 應用程序開發者,正在使用 NVIDIA 數字人技術加速部署生成式 AI 驅動的游戲角色。
    的頭像 發表于 04-09 10:08 ?627次閱讀
    <b class='flag-5'>NVIDIA</b>數字人技術加速<b class='flag-5'>部署</b>生成式AI驅動的游戲角色

    NVIDIA TAO工具套件功能與恩智浦eIQ機器學習開發環境的集成

    恩智浦半導體宣布與NVIDIA合作,將NVIDIA經過訓練的人工智能模型通過eIQ機器學習開發環境部署到恩智浦廣泛的邊緣處理產品組合中。
    的頭像 發表于 03-22 09:11 ?939次閱讀

    FPGA在深度學習應用中或將取代GPU

    現場可編程門陣列 (FPGA) 解決了 GPU 在運行深度學習模型時面臨的許多問題 在過去的十年里,人工智能的再一次興起使顯卡行業受益匪淺。英偉達 (Nvidia) 和 AMD 等公司的股價也大幅
    發表于 03-21 15:19

    通過實時加速器技術實現實時應用程序的 Windows

    功能應用程序。這是通過專門為實時應用程序保留一個或多個CPU來實現的,設置 Windows 適當的參數化并利用 acontis 內核驅動程序進行精確定時和直接硬件
    的頭像 發表于 01-29 16:03 ?810次閱讀
    通過<b class='flag-5'>實時</b>加速器技術實現<b class='flag-5'>實時</b><b class='flag-5'>應用程序</b>的 Windows

    利用NVIDIA產品技術組合提升用戶體驗

    本案例通過利用NVIDIA TensorRT-LLM加速指令識別深度學習模型,并借助NVIDIA Triton推理服務器在
    的頭像 發表于 01-17 09:30 ?653次閱讀

    Torch TensorRT是一個優化PyTorch模型推理性能的工具

    那么,什么是Torch TensorRT呢?Torch是我們大家聚在一起的原因,它是一個端到端的機器學習框架。而TensorRT則是NVIDIA的高性能
    的頭像 發表于 01-09 16:41 ?1530次閱讀
    Torch <b class='flag-5'>TensorRT</b>是一個優化PyTorch模型推理性能的工具

    NVIDIA DOCA 2.5 長期支持版本發布

    基礎設施開發者的全面軟件框架,NVIDIA DOCA 已被領先的云服務提供商、企業和 ISV 創新者所采用,為開發、優化和部署基于 NVIDIA BlueField 系列產品的加速應用程序
    的頭像 發表于 12-26 18:25 ?386次閱讀
    <b class='flag-5'>NVIDIA</b> DOCA 2.5 長期支持版本發布

    如何解決模型部署時出現算子不匹配問題

    結果部署到生產系統中。通過簡化的開發工作流程,OpenVINO 可賦能開發者在現實世界中部署高性能應用程序和算法。
    的頭像 發表于 12-08 15:30 ?988次閱讀
    如何解決模型<b class='flag-5'>部署</b>時出現算子不匹配問題