將深度學習低延遲推理性能提高一倍

將深度學習低延遲推理性能提高一倍

JetPack 3.1 Doubles Jetson’s Low-Latency Inference Performance

NVIDIA發佈了JetPack 3.1,這是Jetson TX1和TX2的生產Linux軟件版本。通過對TensorRT
2.1和cuDNN 6.0的升級,JetPack 3.1爲實時應用(如視覺引導導航和運動控制)提供了高達2倍的深度學習推理性能,這得益於加速批量大小1。改進後的功能使Jetson比以往任何時候都能部署更大的智能,使一代自主機器包括傳送機器人、遠程呈現和視頻分析。爲了進一步推動機器人技術的發展,NVIDIA最近推出的Isaac計劃是一個端到端的平臺,用於訓練和部署先進的人工智能到現場。
在這裏插入圖片描述
Figure 1. The regenerative wave- and solar-powered Wave Glider by Liquid Robotics is capable of traversing oceans autonomously with Jetson on board for low-power vision and AI processing.

AI at the Edge

今年春天早些時候,當NVIDIA推出Jetson TX2時,事實上的邊緣計算平臺在性能上得到了顯著提升。如圖1中的Wave Glider平臺所示,位於網絡邊緣的遠程物聯網(IoT)設備經常會遇到網絡覆蓋率、延遲和帶寬降低的情況。雖然物聯網設備通常充當向雲傳輸數據的網關,但邊緣計算通過訪問安全的板載計算資源重塑了物聯網的可能性。NVIDIA的Jetson嵌入式模塊在Jetson TX1上提供1tflop/s的服務器級性能,在10W的功率下使Jetson TX2的AI性能翻倍。

JetPack 3.1

Jetpack3.1withLinuxforTegra(L4T)R28.1是JetsonTX1和TX2的生產軟件版本,具有長期支持(LTS)。用於TX1和TX2的L4T板支持包(bsp)適合於客戶產品化,它們的共享Linux內核4.4代碼庫提供了兩者之間的兼容性和無縫移植。從Jetpack3.1開始,開發人員可以訪問TX1和TX2上相同的庫、API和工具版本。
在這裏插入圖片描述
Table 1: Software package versions included in JetPack 3.1 and L4T BSP for Jetson TX1 and TX2.

除了從cuDNN 5.1升級到6.0和對CUDA 8的維護更新之外,JetPack 3.1還包括用於構建流媒體應用程序的最新vision和多媒體API。您可以將Jetpack3.1下載到您的主機PC,使用最新的BSP和工具來閃存Jetson。

Low-latency Inference with TensorRT 2.1

最新版本的TensorRT包含在JetPack 3.1中,因此您可以在Jetson上部署優化的運行時深度學習推理。TensorRT通過網絡圖優化、核融合和半精度FP16支持來提高推理性能。TensorRT 2.1包括關鍵特性和增強功能,例如多權重批處理,這些特性和增強功能進一步提高了Jetson TX1和TX2的深度學習性能和效率,並減少了延遲。

批量大小1的性能已經顯著提高,導致GoogLeNet的延遲降低到5毫秒。對於延遲敏感的應用程序,批處理大小1提供最低的延遲,因爲每一幀在到達系統時就被處理(而不是等待對多個幀進行批處理)。如Jetson TX2上的圖2所示,使用TensorRT 2.1可以使用於GoogLeNet和ResNet圖像識別推理的TensorRT 1.0的吞吐量增加一倍。
在這裏插入圖片描述
Figure 2: Inference throughput of GoogLeNet and ResNet-50 using Jetson TX2 Max-Q and Max-P power profiles. TensorRT 2.1
provides twice the inference throughput on GoogleLeNet and ResNet.

表2中的延遲顯示了與批處理大小1成比例的減少。使用TensorRT 2,Jetson TX2在Max-P性能配置文件中爲GoogLeNet實現了5ms的延遲,在Max-Q效率配置文件中運行時實現了7ms的延遲。ResNet-50在Max-P中有12.2ms的延遲,在Max-Q中有15.6ms的延遲。ResNet通常用於提高GoogLeNet以外的圖像分類的準確性,使用TensorRT 2.1可以使運行時性能提高2倍以上。而且Jetson TX2的8GB內存容量,即使在ResNet這樣的複雜網絡上,也可以實現高達128的大批量。
在這裏插入圖片描述
Table 2: Jetson TX2 deep learning inference latency measurements comparing TensorRT 1.0 and 2.1. (Lower is better.)

減少的延遲使得深度學習推理方法可以用於要求近實時響應的應用中,例如高速無人機和地面車輛上的碰撞避免和自主導航。

Custom Layers

#include “NvInfer.h”

using namespace nvinfer1;

class MyPlugin : IPlugin

{

public:

int getNbOutputs() const;

Dims
getOutputDimensions(int index, const Dims* inputs,

                        int nbInputDims);

void configure(const Dims* inputDims, int nbInputs,

              const Dims* outputDims, int nbOutputs, 

              int maxBatchSize);

int initialize();

void terminate();

size_t getWorkspaceSize(int maxBatchSize) const;

int enqueue(int batchSize, const void* inputs,

           void** outputs, void* workspace, 

           cudaStream_t stream);

size_t
getSerializationSize();

void serialize(void* buffer);

protected:

virtual ~MyPlugin() {}

};

您可以使用與上面的代碼類似的自定義IPlugin構建自己的共享對象。在用戶的enqueue()函數中,可以使用CUDA內核實現自定義處理。TensorRT 2.1使用這種技術實現了一個更快的RCNN插件,用於增強對象檢測。此外,TensorRT爲長短期存儲單元(LSTM)和門控遞歸單元(GRU)提供了新的RNN層,用於改進基於記憶的時間序列識別。提供這些功能強大的全新層類型,可以加快在嵌入式邊緣應用程序中部署高級深度學習應用程序的速度。
在這裏插入圖片描述
Figure 3: Robotic reference platforms available with Jetson on board for AI research & development.

NVIDIA Isaac Initiative

隨着人工智能能力在邊緣的快速增長,英偉達推出了Isaac計劃,以推進機器人技術和人工智能的最新水平。Isaac是一個端到端的機器人平臺,用於開發和部署智能系統,包括仿真、自主導航堆棧和嵌入式Jetson。爲了開始開發自主人工智能,Isaac支持圖3所示的機器人蔘考平臺。這些噴氣動力平臺包括無人機、無人地面車輛(UGV)、無人地面車輛(USV)和人類支援機器人(HSR)。參考平臺提供了一個Jetson動力基地,可以在現場進行實驗,隨着時間的推移,該計劃將擴展到包括新平臺和機器人。
在這裏插入圖片描述
Get Started Deploying AI

JetPack 3.1包括cuDNN 6和TensorRT 2.1。現在Jetson TX1和TX2都有。Jetson平臺的單批推理低延遲性能提高了一倍,並支持具有自定義層的新網絡,因此比以往任何時候都更適合邊緣計算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章