Hướng dẫn kích hoạt GPU và chạy Tensorflow GPU trên NVIDIA Jetson Nano

Hướng dẫn kích hoạt GPU và chạy Tensorflow GPU trên NVIDIA Jetson Nano

16:29 - 25/11/2020

Sự khác biệt và nổi bật của NVIDIA Jetson Nano với Raspberry Pi chính là Jetson NanoGPU !!!

Hôm nay chúng ta sẽ tìm hiểu cách kích hoạt GPU và chạy thử code MTCNN nhận diện gương mặt sử dụng Tensorflow GPU trên NVIDIA Jetson Nano nhé !!!

NVIDIA Jetson AGX Orin hiệu suất AI mạnh nhất của NVIDIA Jetson Family với 275 TOPS, 2048 NVIDIA® CUDA® cores, 64 Tensor Cores
NVIDIA Jetson AGX Orin Hardware Layout and GPIO Expansion Header Pinout
NVIDIA Jetson là nền tảng hàng đầu thế giới dành cho Trí tuệ nhân tạo (AI) và Deep Learning
Jetson Stats dùng cho Giám sát và Điều khiển trên NVIDIA Jetson Ecosystem [Xavier NX, Nano, AGX Xavier, TX1, TX2]
Remote Desktop NVIDIA Jetson Nano không cần Wifi, mạng LAN và IP

Raspberry Pi 4 gần đây đã được phát hành với một số nâng cấp tính năng thực sự tuyệt vời trong phiên bản mới nhất của Raspberry Pi. Trong khi đó NVIDIA Jetson Nano Developer Kit cũng cho ra đời một board mạch cung cấp các tính năng tương tự. Về cơ bản chúng có các tính năng tương tự. Tuy nhiên, Jetson Nano có thêm GPU chuyên dụng bổ sung trên bo mạch giúp tăng cường khả năng xử lý đồ họa mạnh mẽ.


Cả hai đều là mini PC được xây dựng với bộ xử lý ARMRAM 4 GB và một loạt các kết nối cho các thiết bị ngoại vi. Sự khác biệt lớn nhất là NVIDIA Jetson Nano bao gồm GPU (bộ xử lý đồ họa) có hiệu năng cao hơn, trong khi Raspberry Pi 4 có bộ xử lý đa phương tiện VideoCore công suất thấp. Do đó giá của NVIDIA Jetson Nano cao hơn với GPU Maxwell mạnh hơn nhiều GPU trên Raspberry Pi 4

Đáng chú ý ở đây là GPU NVIDIA Maxwell với 128 nhân CUDA trong NVIDIA Jetson Nano thực sự là GPU tương tự được tìm thấy trong máy chơi game Nintendo Switch. Ngoài ra trong Nintendo Switch còn có CPU Cortex-A57. Phần cứng CPUGPU NVIDIA Jetson Nano tương tự như Nintendo Switch.Tuy nhiên, Nintendo Switch có thêm Quad-core Cortex-A53 trong phần cứng NVIDIA NVIDIA Tegra X1 SoC (System on a Chip). Điều này chắc chắn bổ sung thêm một số góc nhìn về những gì có thể có với phần cứng NVIDIA Jetson Nano.

Như vậy, điều quan trọng khi sử dụng Jetson Nano trước hết là phải tối ưu việc chạy GPU trên Jetson Nano, vì nếu so sánh CPU của Jetson NanoRaspberry Pi 4, thậm chí con chip Cortex-A72 trên Raspberry Pi 4 còn có xung nhịp cao hơn, hiệu suất cao hơn và tiết kiệm điện năng hơn so với con chip Cortex-A57 của Jetson Nano

Sau đây, chúng ta sẽ tìm hiểu cách cài đặt Tensorflow GPU và chạy thử code nhận diện gương mặt đơn giản bằng MTCNN trên Jetson Nano nhé!!!


Lưu ý đầu tiên khi các bạn muốn cài đặt Tensorflow GPU phiên bản mới nhất (2.0.0) thì phải cài hệ điều hành Jetpack 4.3

Vì hệ điều hành Jetpack 4.4 mới nhất chưa hỗ trợ cài đặt Tensorflow GPU.

Để cài đặt Jetpack 4.3 các bạn vào link sau để tải về (https://developer.nvidia.com/jetson-nano-sd-card-imager-3231) sau đó sử dụng Windisk32 hoặc Balance Etcher để Flash hệ điều hành Jetpack vào thẻ nhớ, sau đó đưa lên Jetson Nano và Setup

Mình đã có một bài viết hướng dẫn cài đặt Jetpack, các bạn có thể tham khảo ở link sau đây :

https://pivietnam.com.vn/huong-dan-cai-dat-he-dieu-hanh-ubuntu-1804-cho-jetson-nano-pivietnam-com-vn.html


Sau khi đã cài đặt Jetpack 4.3 và upgrade toàn bộ các gói cần thiết cho hệ điều hành, chúng ta sẽ bắt đầu cài đặt Tensorflow với các câu lệnh như sau :

Cài đặt các gói phụ trợ : 

sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

sudo apt-get install python3-pip

sudo pip3 install -U pip testresources setuptools==49.6.0

sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11

 

Đối với phiên bản Tensorflow GPU 1.15, chúng ta sử dụng câu lệnh dưới đây để cài đặt

sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v43 tensorflow-gpu==1.15.0+nv20.1

Đối với phiên bản Tensorflow GPU 2.0, chúng ta sử dụng câu lệnh dưới đây :

sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v43 tensorflow-gpu==2.0.0+nv20.1


Để kiểm tra xem việc cài đặt Tensorflow GPU đã thực sự thành công chưa, chúng ta có thể sử dụng một trong vài câu lệnh đơn giản sau đây :

import tensorflow as tf

Nếu hiện lên như hình là thành công !!!

Hoặc sử dụng câu lệnh sau : 

from tensorflow.python.client import device_lib

print(device_lib.list_local_devices())

Nếu hiện lên như hình là thành công !!!

Như vậy, chúng ta đã thành công cài đặt thư viện Tensorflow GPU cho NVIDIA Jetson Nano, sau đây, mình sẽ cài đặt thư viện DeepLearning MTCNN và chạy thử code nhận diện gương mặt đơn giản nhé


Trước khi cài đặt thư viện MTCNN, chúng ta cần cài đặt thư viện Keras trước :

sudo pip3 install keras==2.3.1

Lưu ý, nếu bạn sử dụng lệnh sudo pip3 install keras thì mặc định hệ thống sẽ tải và cài đặt thư viện Keras mới nhất, nhưng sau đó khi chúng ta import thư viện Keras này sẽ gặp lỗi "Keras requires TensorFlow 2.2 or higher. Install TensorFlow via pip install tensorflow"

Nhưng thư viện Tensorflow GPU chính thống mới nhất được thiết kế riêng cho Jetson Nano mới dừng lại ở version 2.0.0, nên để xử lý lỗi đó, chúng ta cần cài thư viện Keras phiên bản cũ là 2.3.1

Sau đó, chúng ta sẽ cài đặt thư viện MTCNN bằng câu lệnh

sudo pip3 install mtcnn

Sau khi kiểm tra, kết quả hiện ra như hình là thành công !!!

Sau đây mình sẽ thử dùng công cụ nhận diện gương mặt có sẵn của thư viện MTCNN nhé !!!

>>import cv2

>>import mtcnn

>>from mtcnn import MTCNN

>>image = cv2.imread('Desktop/1.jpg') ##Đọc ảnh mặt người đầu vào 

>>detect = MTCNN()

>>detect.detect_faces(image)

Kết quả trả về nhận được như sau :


Trên đây là toàn bộ bài hướng dẫn cơ bản của mình cho các bạn chưa biết cách sử dụng GPU trên Jetson Nano, những anh em kinh nghiệm cũng có thể đọc và tham khảo, có sai sót gì mong được góp ý !!!


Nếu các bạn có bất kỳ ý tưởng mới cũng như đóng góp nào đừng ngần ngại mà hãy inbox trực tiếp cho fanpage . Xin chào và hẹn gặp lại các bạn trong các bài viết tiếp theo !!!

PIVIETNAM.COM.VN CHÚC CÁC BẠN THÀNH CÔNG !!!

Thực hiện bài viết : Bùi Minh Đức


Để cập nhật các tin tức công nghệ mới các bạn làm theo hướng dẫn sau đây :


Các bạn vào Trang chủ >> Tin tức. ở mục này có các bài viết kỹ thuật thuộc các lĩnh vực khác nhau các bạn có thể lựa chọn lĩnh vực mà mình quan tâm để đọc nhé !!!

Các bạn cũng có thế kéo xuống cuối trang để xem những tin tức công nghệ mới nhất.