我們將談論在不同的NVIDIA Jetson 系列設備上運行YOLOv8 模型的性能基準測試。我們特別選擇了3種不同的Jetson設備進行測試,它們是 Jetson AGX Orin 32GB H01套件、使用Orin NX 16GB構建的reComputer J4012,以及使用Xavier NX 8GB構建的reComputer J2021。
什么是 YOLOv8 ?
YOLOv8 由 Ultralytics 公司開發,是一個尖端的、最先進的(SOTA)模型,它建立在以前的 YOLO 版本的成功基礎上,并引入了新的功能和改進,以進一步提高性能和靈活性。YOLOv8 被設計為快速、準確和易于使用,使其成為廣泛的物體檢測、圖像分割和圖像分類任務的絕佳選擇。
YOLOv8 模型
YOLOv8有不同的模型類型,基于參數的數量,將關系到模型的準確性。因此,模型越大,它就越準確。例如,YOLOv8x是最大的模型,它在所有模型中具有最高的準確性。
為什么我們需要進行性能基準測試 ?
通過運行性能基準,你可以知道在特定設備上運行的特定模型類型可以獲得多大的推理性能。這對于NVIDIA Jetson平臺等嵌入式設備來說更為重要,因為如果你知道你的應用程序想要使用的確切模型類型,你就可以決定哪種硬件適合運行該模型。
為什么我們需要 TensorRT基準測試 ?
TensorRT是由NVIDIA開發的一個庫,用于在NVIDIA GPU上提高推理速度。TensorRT建立在CUDA之上,與運行PyTorch和ONNX等本地模型相比,在許多實時服務和嵌入式應用中,它的推理速度可以提高2到3倍。
在NVIDIA Jetson 設備上安裝YOLOv8
第1步:按照Wiki中的介紹步驟,在Jetson設備中安裝JetPack 系統。
第2步:按照wiki的 "安裝必要的軟件包 "和 "安裝PyTorch和Torchvision "部分,在Jetson設備上安裝YOLOv8。
如何運行基準測試 ?
當你在NVIDIA Jetson設備上安裝帶有SDK組件的NVIDIA JetPack時,會有一個名為trtexec的工具。該工具實際上位于隨SDK組件安裝而來的TensorRT內。這是一個使用TensorRT的工具,無需開發自己的應用程序。
trtexec工具有三個主要用途
在隨機或用戶提供的輸入數據上對網絡進行基準測試。
從模型中生成序列化的引擎。
從構建器中生成一個序列化的時序緩存。
在這里,我們可以使用trtexec工具對不同參數的模型進行快速基準測試。但首先,你需要有一個ONNX模型,我們可以通過使用Ultralytics YOLOv8來生成這個ONNX模型。
第1步:使用ONNX模型建立:
yolo mode=export model=yolov8s.pt format=onnx
這將下載最新的yolov8s.pt模型并轉換為ONNX格式。
第2步:使用trtexec建立引擎文件,如下所示:
cd /usr/src/tensorrt/bin ./trtexec --onnx=--saveEngine=
比如說:
./trtexec --onnx=/home/nvidia/yolov8s.onnx -- saveEngine=/home/nvidia/yolov8s.engine
這將輸出性能結果,如下所示,同時生成一個.引擎文件。默認情況下,它將把ONNX轉換為FP32精度的TensorRT優化的文件,你可以看到輸出如下:
在這里,我們可以把平均延遲看作是7.2ms,換算成139FPS。
然而,如果你想要INT8精度,提供更好的性能,你可以執行上述命令,如下所示:
./trtexec --onnx=/home/nvidia/yolov8s.onnx --saveEngine=/home/nvidia/yolov8s.engine --int8
在這里,我們可以把平均延遲看作是3.2ms,換算成313FPS。
如果你也想在FP16精度下運行,你可以執行如下命令:
./trtexec --onnx=/home/nvidia/yolov8s.onnx --saveEngine=/home/nvidia/yolov8s.engine --fp16
要檢查YOLOv8模型的默認PyTorch版本的性能,你可以簡單地運行推理并檢查延遲,如下所示:
yolo detect predict model=yolov8s.pt source='<>'
在這里,你可以根據本頁面上的表格來改變來源。
另外,如果你不指定來源,它將默認使用一個名為 "bus.jpg "的圖像。
基準測試結果
在進入基準測試結果之前,我將快速強調我們用于基準測試過程的每臺設備的AI性能。
Jetson Device | AGX Orin 32GB H01 Kit | reComputer J4012 built with Orin NX 16GB | reComputer J2021 built with Xavier NX 8GB |
AI Performance | 200TOPS | 100TOPS | 21TOPS |
現在我們將看一下基準圖,以比較YOLOv8在單個設備上的性能。我已經用640×640的默認PyTorch模型文件進行了所有的基準測試,如上文所解釋的那樣轉換為ONNX格式。
AGX Orin 32GB H01 Kit
reComputer J4012 built with Orin NX 16GB
reComputer J2021 built with Xavier NX 8GB
正如我們所看到的,TensorRT可以帶來性能上的大幅提升。
接下來,我們將從不同的角度看一下基準圖,在不同的設備上比較每個YOLOv8模型的性能。
如果我們比較一下最大的YOLOv8模型,即在上述3個設備上運行的YOLOv8x,我們會得到以下結果:
正如你所看到的,在最大的YOLOv8x模型上使用INT8精度,我們可以在AGX Orin 32GB上實現約75的FPS,這對于一個嵌入式設備來說是非常令人印象深刻的!我們可以看到,在AGX Orin 32GB上的FPS為1.5,而在AGX Orin 32GB上的FPS為2.5!
AI 邊緣計算盒子
reComputer J2021-Edge AI 設備
J2021是一款采用Jetson Xavier NX 8GB模塊的邊緣AI設備,可提供高達21TOPS算力,豐富的IO端口包括USB 3.1端口(4x)、用于WIFI的M.2接口、用于SSD的M.2接口、RTC、CAN、樹莓派 GPIO 40針擴展接口等;外殼采用鋁合金材質帶冷卻風扇,預裝JetPack系統,可以作為NVIDIA Jetson Xavier NX Dev Kit的替代品,為您的AI應用開發和部署提供支持。
reComputer J4012-Edge AI 邊緣計算設備
reComputer J4012是一款采用NVIDIA Jetson Orin NX 16GB模塊的邊緣AI設備,可提供高達100 TOPS算力的AI性能,并擁有豐富的IO接口,包括USB 3.2端口(4x)、HDMI 2.1、用于WIFI的M.2接口、用于SSD的M.2接口、RTC、CAN、樹莓派GPIO 40針接口等;外殼采用鋁合金材質自帶散熱風扇,預裝NVIDIA JetPack的Jetpack系統。作為NVIDIA Jetson生態系統的一部分,reComputer J4012可以為您的AI應用開發和部署提供支持。
寫在最后
根據上述所有基準測試,多年來,在英偉達Jetson Orin平臺等嵌入式設備上,推理性能似乎有了顯著提高,現在我們幾乎可以用這種緊湊的設備來匹配服務器級別的性能了!
-
AI
+關注
關注
87文章
30238瀏覽量
268471 -
基準測試
+關注
關注
0文章
19瀏覽量
7583 -
模型
+關注
關注
1文章
3178瀏覽量
48729 -
英偉達
+關注
關注
22文章
3749瀏覽量
90854 -
邊緣計算
+關注
關注
22文章
3070瀏覽量
48659
原文標題:邊緣計算 | 英偉達Jetson設備上的YOLOv8性能基準測試
文章出處:【微信號:ChaiHuoMakerSpace,微信公眾號:柴火創客空間】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論