Optimize NVIDIA Jetson Docs (#11242)
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
This commit is contained in:
parent
40e5ac34c9
commit
b617e131bd
3 changed files with 159 additions and 73 deletions
|
|
@ -23,7 +23,7 @@ NVIDIA Jetson is a series of embedded computing boards designed to bring acceler
|
||||||
[Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/) is the latest iteration of the NVIDIA Jetson family based on NVIDIA Ampere architecture which brings drastically improved AI performance when compared to the previous generations. Below table compared few of the Jetson devices in the ecosystem.
|
[Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/) is the latest iteration of the NVIDIA Jetson family based on NVIDIA Ampere architecture which brings drastically improved AI performance when compared to the previous generations. Below table compared few of the Jetson devices in the ecosystem.
|
||||||
|
|
||||||
| | Jetson AGX Orin 64GB | Jetson Orin NX 16GB | Jetson Orin Nano 8GB | Jetson AGX Xavier | Jetson Xavier NX | Jetson Nano |
|
| | Jetson AGX Orin 64GB | Jetson Orin NX 16GB | Jetson Orin Nano 8GB | Jetson AGX Xavier | Jetson Xavier NX | Jetson Nano |
|
||||||
|-------------------|------------------------------------------------------------------|-----------------------------------------------------------------|---------------------------------------------------------------|-------------------------------------------------------------|--------------------------------------------------------------|---------------------------------------------|
|
| ----------------- | ---------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------- |
|
||||||
| AI Performance | 275 TOPS | 100 TOPS | 40 TOPs | 32 TOPS | 21 TOPS | 472 GFLOPS |
|
| AI Performance | 275 TOPS | 100 TOPS | 40 TOPs | 32 TOPS | 21 TOPS | 472 GFLOPS |
|
||||||
| GPU | 2048-core NVIDIA Ampere architecture GPU with 64 Tensor Cores | 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores | 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores | 512-core NVIDIA Volta architecture GPU with 64 Tensor Cores | 384-core NVIDIA Volta™ architecture GPU with 48 Tensor Cores | 128-core NVIDIA Maxwell™ architecture GPU |
|
| GPU | 2048-core NVIDIA Ampere architecture GPU with 64 Tensor Cores | 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores | 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores | 512-core NVIDIA Volta architecture GPU with 64 Tensor Cores | 384-core NVIDIA Volta™ architecture GPU with 48 Tensor Cores | 128-core NVIDIA Maxwell™ architecture GPU |
|
||||||
| GPU Max Frequency | 1.3 GHz | 918 MHz | 625 MHz | 1377 MHz | 1100 MHz | 921MHz |
|
| GPU Max Frequency | 1.3 GHz | 918 MHz | 625 MHz | 1377 MHz | 1100 MHz | 921MHz |
|
||||||
|
|
@ -50,25 +50,34 @@ The first step after getting your hands on an NVIDIA Jetson device is to flash N
|
||||||
|
|
||||||
For methods 3 and 4 above, after flashing the system and booting the device, please enter "sudo apt update && sudo apt install nvidia-jetpack -y" on the device terminal to install all the remaining JetPack components needed.
|
For methods 3 and 4 above, after flashing the system and booting the device, please enter "sudo apt update && sudo apt install nvidia-jetpack -y" on the device terminal to install all the remaining JetPack components needed.
|
||||||
|
|
||||||
## Start with Docker
|
## Set Up Ultralytics
|
||||||
|
|
||||||
|
There are two ways of setting up Ultralytics package on NVIDIA Jetson to build your next Computer Vision project. You can use either of them.
|
||||||
|
|
||||||
|
- [Start with Docker](#start-with-docker)
|
||||||
|
- [Start without Docker](#start-without-docker)
|
||||||
|
|
||||||
|
### Start with Docker
|
||||||
|
|
||||||
The fastest way to get started with Ultralytics YOLOv8 on NVIDIA Jetson is to run with pre-built docker image for Jetson.
|
The fastest way to get started with Ultralytics YOLOv8 on NVIDIA Jetson is to run with pre-built docker image for Jetson.
|
||||||
|
|
||||||
Execute the below command to pull the Docker container and run on Jetson. This is based on [l4t-pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-pytorch) docker image which contains PyTorch and Torchvision in a Python3 environment.
|
Execute the below command to pull the Docker container and run on Jetson. This is based on [l4t-pytorch](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-pytorch) docker image which contains PyTorch and Torchvision in a Python3 environment.
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
t=ultralytics/ultralytics:latest-jetson && sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
|
t=ultralytics/ultralytics:latest-jetson && sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
|
||||||
```
|
```
|
||||||
|
|
||||||
## Start without Docker
|
After this is done, skip to [Use TensorRT on NVIDIA Jetson section](#use-tensorrt-on-nvidia-jetson).
|
||||||
|
|
||||||
### Install Ultralytics Package
|
### Start without Docker
|
||||||
|
|
||||||
|
#### Install Ultralytics Package
|
||||||
|
|
||||||
Here we will install ultralyics package on the Jetson with optional dependencies so that we can export the PyTorch models to other different formats. We will mainly focus on [NVIDIA TensorRT exports](https://docs.ultralytics.com/integrations/tensorrt) because TensoRT will make sure we can get the maximum performance out of the Jetson devices.
|
Here we will install ultralyics package on the Jetson with optional dependencies so that we can export the PyTorch models to other different formats. We will mainly focus on [NVIDIA TensorRT exports](https://docs.ultralytics.com/integrations/tensorrt) because TensoRT will make sure we can get the maximum performance out of the Jetson devices.
|
||||||
|
|
||||||
1. Update packages list, install pip and upgrade to latest
|
1. Update packages list, install pip and upgrade to latest
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install python3-pip -y
|
sudo apt install python3-pip -y
|
||||||
pip install -U pip
|
pip install -U pip
|
||||||
|
|
@ -76,29 +85,29 @@ pip install -U pip
|
||||||
|
|
||||||
2. Install `ultralytics` pip package with optional dependencies
|
2. Install `ultralytics` pip package with optional dependencies
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
pip install ultralytics[export]
|
pip install ultralytics[export]
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Reboot the device
|
3. Reboot the device
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
sudo reboot
|
sudo reboot
|
||||||
```
|
```
|
||||||
|
|
||||||
### Install PyTorch and Torchvision
|
#### Install PyTorch and Torchvision
|
||||||
|
|
||||||
The above ultralytics installation will install Torch and Torchvision. However, these 2 packages installed via pip are not compatible to run on Jetson platform which is based on ARM64 architecture. Therefore, we need to manually install pre-built PyTorch pip wheel and compile/ install Torchvision from source.
|
The above ultralytics installation will install Torch and Torchvision. However, these 2 packages installed via pip are not compatible to run on Jetson platform which is based on ARM64 architecture. Therefore, we need to manually install pre-built PyTorch pip wheel and compile/ install Torchvision from source.
|
||||||
|
|
||||||
1. Uninstall currently installed PyTorch and Torchvision
|
1. Uninstall currently installed PyTorch and Torchvision
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
pip uninstall torch torchvision
|
pip uninstall torch torchvision
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Install PyTorch 2.1.0 according to JP5.1.3
|
2. Install PyTorch 2.1.0 according to JP5.1.3
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
sudo apt-get install -y libopenblas-base libopenmpi-dev
|
sudo apt-get install -y libopenblas-base libopenmpi-dev
|
||||||
wget https://developer.download.nvidia.com/compute/redist/jp/v512/pytorch/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl -O torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
|
wget https://developer.download.nvidia.com/compute/redist/jp/v512/pytorch/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl -O torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
|
||||||
pip install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
|
pip install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
|
||||||
|
|
@ -106,7 +115,7 @@ pip install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
|
||||||
|
|
||||||
3. Install Torchvision v0.16.2 according to PyTorch v2.1.0
|
3. Install Torchvision v0.16.2 according to PyTorch v2.1.0
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
sudo apt install -y libjpeg-dev zlib1g-dev
|
sudo apt install -y libjpeg-dev zlib1g-dev
|
||||||
git clone https://github.com/pytorch/vision torchvision
|
git clone https://github.com/pytorch/vision torchvision
|
||||||
cd torchvision
|
cd torchvision
|
||||||
|
|
@ -114,7 +123,24 @@ git checkout v0.16.2
|
||||||
python3 setup.py install --user
|
python3 setup.py install --user
|
||||||
```
|
```
|
||||||
|
|
||||||
Visit [this page](https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048) to access all different versions of PyTorch for different JetPack versions. For a more detailed list on the PyTorch, Torchvision compatibility, please check [here](https://github.com/pytorch/vision).
|
Visit the [PyTorch for Jetson page](https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048) to access all different versions of PyTorch for different JetPack versions. For a more detailed list on the PyTorch, Torchvision compatibility, visit the [PyTorch and Torchvision compatibility page](https://github.com/pytorch/vision).
|
||||||
|
|
||||||
|
#### Install `onnxruntime-gpu`
|
||||||
|
|
||||||
|
The [onnxruntime-gpu](https://pypi.org/project/onnxruntime-gpu/) package hosted in PyPI does not have `aarch64` binaries for the Jetson. So we need to manually install this package. This package is needed for some of the exports.
|
||||||
|
|
||||||
|
All different `onnxruntime-gpu` packages corresponsing to different JetPack and Python versions are listed [here](https://elinux.org/Jetson_Zoo#ONNX_Runtime). However, here we will download and install `onnxruntime-gpu 1.17.0` with `Python3.8` support for the JetPack we are using for this guide.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wget https://nvidia.box.com/shared/static/zostg6agm00fb6t5uisw51qi6kpcuwzd.whl -O onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
|
||||||
|
pip install onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! Note
|
||||||
|
|
||||||
|
`onnxruntime-gpu` will automatically revert back the numpy version to latest. So we need to reinstall numpy to `1.23.5` to fix an issue by executing:
|
||||||
|
|
||||||
|
`pip install numpy==1.23.5`
|
||||||
|
|
||||||
## Use TensorRT on NVIDIA Jetson
|
## Use TensorRT on NVIDIA Jetson
|
||||||
|
|
||||||
|
|
@ -153,41 +179,102 @@ The YOLOv8n model in PyTorch format is converted to TensorRT to run inference wi
|
||||||
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
|
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Arguments
|
!!! Note
|
||||||
|
|
||||||
| Key | Value | Description |
|
Visit the [Export page](https://docs.ultralytics.com/modes/export/#arguments) to access additional arguments when exporting models to different model formats
|
||||||
|----------|------------|------------------------------------------------------|
|
|
||||||
| `format` | `'engine'` | format to export to |
|
|
||||||
| `imgsz` | `640` | image size as scalar or (h, w) list, i.e. (640, 480) |
|
|
||||||
| `half` | `False` | FP16 quantization |
|
|
||||||
|
|
||||||
## NVIDIA Jetson Orin YOLOv8 Benchmarks
|
## NVIDIA Jetson Orin YOLOv8 Benchmarks
|
||||||
|
|
||||||
YOLOv8 benchmarks below were run by the Ultralytics team on 3 different model formats measuring speed and accuracy: PyTorch, TorchScript and TensorRT. Benchmarks were run on Seeed Studio reComputer J4012 powered by Jetson Orin NX 16GB device at FP32 precision with default input image size of 640.
|
YOLOv8 benchmarks were run by the Ultralytics team on 10 different model formats measuring speed and accuracy: PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF Graphdef, TF Lite, PaddlePaddle, NCNN. Benchmarks were run on Seeed Studio reComputer J4012 powered by Jetson Orin NX 16GB device at FP32 precision with default input image size of 640.
|
||||||
|
|
||||||
|
### Comparison Chart
|
||||||
|
|
||||||
|
Eventhough all model exports are working with NVIDIA Jetson, we have only included **PyTorch, TorchScript, TensorRT** for the comparison chart below because, they make use of the GPU on the Jetson and are guaranteed to produce the best results. All the other exports only utilize the CPU and the performance is not as good as the above three. You can find benchmarks for all exports in the section after this chart.
|
||||||
|
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<img width="800" src="https://github.com/ultralytics/ultralytics/assets/20147381/202950fa-c24a-43ec-90c8-4d7b6a6c406e" alt="NVIDIA Jetson Ecosystem">
|
<img width="800" src="https://github.com/ultralytics/ultralytics/assets/20147381/202950fa-c24a-43ec-90c8-4d7b6a6c406e" alt="NVIDIA Jetson Ecosystem">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
| Model | Format | Status | Size (MB) | mAP50-95(B) | Inference time (ms/im) |
|
### Detailed Comparison Table
|
||||||
|---------|-------------|--------|-----------|-------------|------------------------|
|
|
||||||
| YOLOv8n | PyTorch | ✅ | 6.2 | 0.4473 | 14.3 |
|
|
||||||
| YOLOv8n | TorchScript | ✅ | 12.4 | 0.4520 | 13.3 |
|
|
||||||
| YOLOv8n | TensorRT | ✅ | 13.6 | 0.4520 | 8.7 |
|
|
||||||
| YOLOv8s | PyTorch | ✅ | 21.5 | 0.5868 | 18 |
|
|
||||||
| YOLOv8s | TorchScript | ✅ | 43.0 | 0.5971 | 23.9 |
|
|
||||||
| YOLOv8s | TensorRT | ✅ | 44.0 | 0.5965 | 14.82 |
|
|
||||||
| YOLOv8m | PyTorch | ✅ | 49.7 | 0.6101 | 36.4 |
|
|
||||||
| YOLOv8m | TorchScript | ✅ | 99.2 | 0.6125 | 53.34 |
|
|
||||||
| YOLOv8m | TensorRT | ✅ | 100.3 | 0.6123 | 33.28 |
|
|
||||||
| YOLOv8l | PyTorch | ✅ | 83.7 | 0.6588 | 61.3 |
|
|
||||||
| YOLOv8l | TorchScript | ✅ | 167.2 | 0.6587 | 85.21 |
|
|
||||||
| YOLOv8l | TensorRT | ✅ | 168.3 | 0.6591 | 51.34 |
|
|
||||||
| YOLOv8x | PyTorch | ✅ | 130.5 | 0.6650 | 93 |
|
|
||||||
| YOLOv8x | TorchScript | ✅ | 260.7 | 0.6651 | 135.3 |
|
|
||||||
| YOLOv8x | TensorRT | ✅ | 261.8 | 0.6645 | 84.5 |
|
|
||||||
|
|
||||||
This table represents the benchmark results for five different models (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) across three different formats (PyTorch, TorchScript, TensorRT), giving us the status, size, mAP50-95(B) metric, and inference time for each combination.
|
The below table represents the benchmark results for five different models (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) across ten different formats (PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF Graphdef, TF Lite, PaddlePaddle, NCNN), giving us the status, size, mAP50-95(B) metric, and inference time for each combination.
|
||||||
|
|
||||||
|
!!! Performance
|
||||||
|
|
||||||
|
=== "YOLOv8n"
|
||||||
|
|
||||||
|
| Format | Status | Size on disk (MB) | mAP50-95(B) | Inference time (ms/im) |
|
||||||
|
|---------------|--------|-----------|-------------|------------------------|
|
||||||
|
| PyTorch | ✅ | 6.2 | 0.6381 | 14.3 |
|
||||||
|
| TorchScript | ✅ | 12.4 | 0.6117 | 13.3 |
|
||||||
|
| ONNX | ✅ | 12.2 | 0.6092 | 70.6 |
|
||||||
|
| OpenVINO | ✅ | 12.3 | 0.6092 | 104.2 |
|
||||||
|
| TensorRT | ✅ | 13.6 | 0.6117 | 8.9 |
|
||||||
|
| TF SavedModel | ✅ | 30.6 | 0.6092 | 141.74 |
|
||||||
|
| TF GraphDef | ✅ | 12.3 | 0.6092 | 199.93 |
|
||||||
|
| TF Lite | ✅ | 12.3 | 0.6092 | 349.18 |
|
||||||
|
| PaddlePaddle | ✅ | 24.4 | 0.6030 | 555 |
|
||||||
|
| NCNN | ✅ | 12.2 | 0.6092 | 32 |
|
||||||
|
|
||||||
|
=== "YOLOv8s"
|
||||||
|
|
||||||
|
| Format | Status | Size on disk (MB) | mAP50-95(B) | Inference time (ms/im) |
|
||||||
|
|---------------|--------|-----------|-------------|------------------------|
|
||||||
|
| PyTorch | ✅ | 21.5 | 0.6967 | 18 |
|
||||||
|
| TorchScript | ✅ | 43.0 | 0.7136 | 23.81 |
|
||||||
|
| ONNX | ✅ | 42.8 | 0.7136 | 185.55 |
|
||||||
|
| OpenVINO | ✅ | 42.9 | 0.7136 | 243.97 |
|
||||||
|
| TensorRT | ✅ | 44.0 | 0.7136 | 14.82 |
|
||||||
|
| TF SavedModel | ✅ | 107 | 0.7136 | 260.03 |
|
||||||
|
| TF GraphDef | ✅ | 42.8 | 0.7136 | 423.4 |
|
||||||
|
| TF Lite | ✅ | 42.8 | 0.7136 | 1046.64 |
|
||||||
|
| PaddlePaddle | ✅ | 85.5 | 0.7140 | 1464 |
|
||||||
|
| NCNN | ✅ | 42.7 | 0.7200 | 63 |
|
||||||
|
|
||||||
|
=== "YOLOv8m"
|
||||||
|
|
||||||
|
| Format | Status | Size on disk (MB) | mAP50-95(B) | Inference time (ms/im) |
|
||||||
|
|---------------|--------|-----------|-------------|------------------------|
|
||||||
|
| PyTorch | ✅ | 49.7 | 0.7370 | 36.4 |
|
||||||
|
| TorchScript | ✅ | 99.2 | 0.7285 | 53.58 |
|
||||||
|
| ONNX | ✅ | 99 | 0.7280 | 452.09 |
|
||||||
|
| OpenVINO | ✅ | 99.1 | 0.7280 | 544.36 |
|
||||||
|
| TensorRT | ✅ | 100.3 | 0.7285 | 33.21 |
|
||||||
|
| TF SavedModel | ✅ | 247.5 | 0.7280 | 543.65 |
|
||||||
|
| TF GraphDef | ✅ | 99 | 0.7280 | 906.63 |
|
||||||
|
| TF Lite | ✅ | 99 | 0.7280 | 2758.08 |
|
||||||
|
| PaddlePaddle | ✅ | 197.9 | 0.7280 | 3678 |
|
||||||
|
| NCNN | ✅ | 98.9 | 0.7260 | 135 |
|
||||||
|
|
||||||
|
=== "YOLOv8l"
|
||||||
|
|
||||||
|
| Format | Status | Size on disk (MB) | mAP50-95(B) | Inference time (ms/im) |
|
||||||
|
|---------------|--------|-----------|-------------|------------------------|
|
||||||
|
| PyTorch | ✅ | 83.7 | 0.7768 | 61.3 |
|
||||||
|
| TorchScript | ✅ | 167.2 | 0.7554 | 87.9 |
|
||||||
|
| ONNX | ✅ | 166.8 | 0.7551 | 852.29 |
|
||||||
|
| OpenVINO | ✅ | 167 | 0.7551 | 1012.6 |
|
||||||
|
| TensorRT | ✅ | 168.4 | 0.7554 | 51.23 |
|
||||||
|
| TF SavedModel | ✅ | 417.2 | 0.7551 | 990.45 |
|
||||||
|
| TF GraphDef | ✅ | 166.9 | 0.7551 | 1649.86 |
|
||||||
|
| TF Lite | ✅ | 166.9 | 0.7551 | 5652.37 |
|
||||||
|
| PaddlePaddle | ✅ | 333.6 | 0.7551 | 7114.67 |
|
||||||
|
| NCNN | ✅ | 166.8 | 0.7685 | 231.9 |
|
||||||
|
|
||||||
|
=== "YOLOv8x"
|
||||||
|
|
||||||
|
| Format | Status | Size on disk (MB) | mAP50-95(B) | Inference time (ms/im) |
|
||||||
|
|---------------|--------|-----------|-------------|------------------------|
|
||||||
|
| PyTorch | ✅ | 130.5 | 0.7759 | 93 |
|
||||||
|
| TorchScript | ✅ | 260.7 | 0.7472 | 135.1 |
|
||||||
|
| ONNX | ✅ | 260.4 | 0.7479 | 1296.13 |
|
||||||
|
| OpenVINO | ✅ | 260.6 | 0.7479 | 1502.15 |
|
||||||
|
| TensorRT | ✅ | 261.8 | 0.7469 | 84.53 |
|
||||||
|
| TF SavedModel | ✅ | 651.1 | 0.7479 | 1451.76 |
|
||||||
|
| TF GraphDef | ✅ | 260.5 | 0.7479 | 4029.36 |
|
||||||
|
| TF Lite | ✅ | 260.4 | 0.7479 | 8772.86 |
|
||||||
|
| PaddlePaddle | ✅ | 520.8 | 0.7479 | 10619.53 |
|
||||||
|
| NCNN | ✅ | 260.4 | 0.7646 | 376.38 |
|
||||||
|
|
||||||
Visit [this link](https://www.seeedstudio.com/blog/2023/03/30/yolov8-performance-benchmarks-on-nvidia-jetson-devices) to explore more benchmarking efforts by Seeed Studio running on different versions of NVIDIA Jetson hardware.
|
Visit [this link](https://www.seeedstudio.com/blog/2023/03/30/yolov8-performance-benchmarks-on-nvidia-jetson-devices) to explore more benchmarking efforts by Seeed Studio running on different versions of NVIDIA Jetson hardware.
|
||||||
|
|
||||||
|
|
@ -215,11 +302,7 @@ To reproduce the above Ultralytics benchmarks on all export [formats](../modes/e
|
||||||
yolo benchmark model=yolov8n.pt data=coco8.yaml imgsz=640
|
yolo benchmark model=yolov8n.pt data=coco8.yaml imgsz=640
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that benchmarking results might vary based on the exact hardware and software configuration of a system, as well as the current workload of the system at the time the benchmarks are run. For the most reliable results use a dataset with a large number of images, i.e. `data='coco8.yaml' (128 val images), or `data='coco.yaml'` (5000 val images).
|
Note that benchmarking results might vary based on the exact hardware and software configuration of a system, as well as the current workload of the system at the time the benchmarks are run. For the most reliable results use a dataset with a large number of images, i.e. `data='coco8.yaml' (4 val images), or `data='coco.yaml'` (5000 val images).
|
||||||
|
|
||||||
!!! Note
|
|
||||||
|
|
||||||
Currently only PyTorch, Torchscript and TensorRT are working with the benchmarking tools. We will update it to support other exports in the future.
|
|
||||||
|
|
||||||
## Best Practices when using NVIDIA Jetson
|
## Best Practices when using NVIDIA Jetson
|
||||||
|
|
||||||
|
|
@ -228,21 +311,24 @@ When using NVIDIA Jetson, there are a couple of best practices to follow in orde
|
||||||
1. Enable MAX Power Mode
|
1. Enable MAX Power Mode
|
||||||
|
|
||||||
Enabling MAX Power Mode on the Jetson will make sure all CPU, GPU cores are turned on.
|
Enabling MAX Power Mode on the Jetson will make sure all CPU, GPU cores are turned on.
|
||||||
```sh
|
|
||||||
|
```bash
|
||||||
sudo nvpmodel -m 0
|
sudo nvpmodel -m 0
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Enable Jetson Clocks
|
2. Enable Jetson Clocks
|
||||||
|
|
||||||
Enabling Jetson Clocks will make sure all CPU, GPU cores are clocked at their maximum frequency.
|
Enabling Jetson Clocks will make sure all CPU, GPU cores are clocked at their maximum frequency.
|
||||||
```sh
|
|
||||||
|
```bash
|
||||||
sudo jetson_clocks
|
sudo jetson_clocks
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Install Jetson Stats Application
|
3. Install Jetson Stats Application
|
||||||
|
|
||||||
We can use jetson stats application to monitor the temperatures of the system components and check other system details such as view CPU, GPU, RAM utilization, change power modes, set to max clocks, check JetPack information
|
We can use jetson stats application to monitor the temperatures of the system components and check other system details such as view CPU, GPU, RAM utilization, change power modes, set to max clocks, check JetPack information
|
||||||
```sh
|
|
||||||
|
```bash
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo pip install jetson-stats
|
sudo pip install jetson-stats
|
||||||
sudo reboot
|
sudo reboot
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,10 @@ keywords: Ultralytics YOLO, object tracking software, real-time counting solutio
|
||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
## ::: ultralytics.solutions.parking_management.ParkingManagement
|
|
||||||
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
## ::: ultralytics.solutions.parking_management.ParkingPtsSelection
|
## ::: ultralytics.solutions.parking_management.ParkingPtsSelection
|
||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
|
## ::: ultralytics.solutions.parking_management.ParkingManagement
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
|
||||||
|
|
@ -499,9 +499,9 @@ nav:
|
||||||
- distance_calculation: reference/solutions/distance_calculation.md
|
- distance_calculation: reference/solutions/distance_calculation.md
|
||||||
- heatmap: reference/solutions/heatmap.md
|
- heatmap: reference/solutions/heatmap.md
|
||||||
- object_counter: reference/solutions/object_counter.md
|
- object_counter: reference/solutions/object_counter.md
|
||||||
|
- parking_management: reference/solutions/parking_management.md
|
||||||
- queue_management: reference/solutions/queue_management.md
|
- queue_management: reference/solutions/queue_management.md
|
||||||
- speed_estimation: reference/solutions/speed_estimation.md
|
- speed_estimation: reference/solutions/speed_estimation.md
|
||||||
- parking_management: reference/solutions/parking_management.md
|
|
||||||
- trackers:
|
- trackers:
|
||||||
- basetrack: reference/trackers/basetrack.md
|
- basetrack: reference/trackers/basetrack.md
|
||||||
- bot_sort: reference/trackers/bot_sort.md
|
- bot_sort: reference/trackers/bot_sort.md
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue