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