AI Framework Test with Nvidia Jetson Nano

AI Framework Test with Nvidia Jetson Nano

Want to know how well Jetson Nano can run AI Framework? We have tested it out!

Introduction

The release of Nvidia Jetson Nano in March 2019 has provided the world of makers with an affordable yet high-performance solution for AI applications. Jetson Nano offers sufficient processing power for the community to start  AI learning, researching, and deployment. As the community rapidly grows, Jetson Nano now supports multiple mainstream AI frameworks such as TensorFlow, PyTorch, Caffe, and MXNet.

In this article, we are going to discuss the performance of Nvidia Jetson Nano on running some AI frameworks such as DetectNet SSD-MobileNet-v2, PyTorch Reinforcement Learning on OpenAI Gym and PyTorch Transfer Learning on ResNet18.

Update 1/12/2020: We have tested out the performance of Jetson Nano 2GB running in LXDE 18.04 operating system as well.

Test Method

Hardware: Jetson Nano Developer Kit
OS Version:
 
- Jetson Nano 4GB: JetPack 4.4 / NVIDIA L4T 32.4.3 / Ubuntu 18.04
- Jetson Nano 2GB: LXDE 18.04
Logging Method: Tegrastats Utility (Nvidia)
Ambient Temperature: ~25°C
Update: 1 December 2020

Performance Test

DetectNet (SSD-MobileNet-v2)

Detectnet

Setup tutorial: Locating Objects with DetectNet
Sampling period: 3s
Jetson Nano 4GB

For the results above, we can see that the Jetson Nano managed to run the SSD-MobileNet-v2 framework with decent amount of framerate (approximately 20FPS). Besides, it is quite a surprise that the Jetson Nano is able to maintain the overall temperature at around 56°C even though without a cooling fan.

Jetson Nano 2GB

Similar to Jetson Nano 4GB, the 2GB version of Jetson Nano managed to run the SSD-MobileNet-v2 framework with approximately 20FPS. Besides, the overall temperature is being maintained at higher value, which is around 65°C without a cooling fan. 

Pytorch Reinforcement Learning (DQN) on OpenAI Gym (CartPole Task)

Setup tutorial: Reinforcement Learning (DQN) Tutorial
Training Time: ~32mins (300 episodes)
Sampling period: 5s
Jetson Nano 4GB

From the results above, we can see that the CPU and GPU usage for running the reinforcement learning example is even lower than running the SSD-MobileNet-v2 framework. However, when the training is in progress, all the available RAM space of Jetson Nano is being used up which causes the Jetson Nano to start using swap memory.

Jetson Nano 2GB

In Jetson Nano 2GB, it has been noticed that the time required for setting up the training is slightly longer (~2 minutes) when compared with the 4GB version (~40 seconds). This is due to the lower RAM capacity in Jetson Nano 2GB, resulting in the need of using SWAP memory which slows down the process. Besides, the overall temperature of the Jetson Nano 2GB is also higher, which maintains at around 62°C without a cooling fan.

Pytorch Transfer Learning on ResNet18

Setup tutorial: Re-training on the PlantCLEF Dataset
Training Settings: 8 Epochs - 1307 Images per Epoch
Sampling period: 10s
Jetson Nano 4GB

From the results above, we can see that running the transfer learning on ResNet18 uses up the most amount of GPU and Memory usage. While the GPU usage is running at 100% throughout the training, the overall temperature of the Jetson Nano could still be maintained under 65°C even without using a cooling fan.

Jetson Nano 2GB

From the results above, we can see that the CPU, GPU and memory usage for Jetson Nano 2GB are similar to the results obtained from Jetson Nano 4GB. However, the overall temperature for Jetson Nano 2GB has gone very high (above 85°C) which causes throttling to occur. This reduction in performance results in  longer training time (~140 minutes) required to complete 8 epochs of training as compared with the Jetson Nano 4GB (~110 minutes).

Conclusion

After comparing the testing results between Jetson Nano 4GB and 2GB, generally speaking, they provides similar performance. Although the 2GB version requires longer time to execute the tasks due to the lower RAM capacity, but the difference is still bearable. Besides, it is recommended to get a cooling fan for Jetson Nano 2GB if you want to run some computationally extensive tasks on it in order to prevent from throttling. 

Considering the availability of Nvidia Jetson Nano at an affordable price, it is sufficient for us to get started with running some AI applications even with the 2GB version. If you want some GPU accelerated hardware for running AI applications or to start learning about Machine Learning, Jetson Nano is definitely what you need!

References: