Thông số kỹ thuật của Kit NVIDIA Jetson nano

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, thử nghiệm thiết bị nhận dạng trạng thái tài xế lái xe ô tô (Trang 39 - 48)

- GPU: 128-core MaxwellTM GPU

- CPU: quad-core ARM® Cortex®-A57 CPU

- RAM: 4GB 64-bit LPDDR4

- _ Bộ nhớ: khe căm thé microSD (devkit) hoặc 16GB eMMC flash (Từ nha

sản xuất)

- Kha năng sử lí video:

o Encode: 4K @ 30 (H.264/H.265)

o Decode: 4K @ 60 (H.264/H.265)

- Cac công giao tiếp:

o Ethernet: 10/100/1000BASE-T self-negotiation

o Camera: 12-ch (3x4 OR 4x2) MIPI CSI-2 DPHY 1.1 (1.5Gbps)

o Display: HDMI 2.0, DP (DisplayPort)

o USB: 4x USB 3.0, USB 2.0 (Micro USB)

o Others: GPIO, I2C, I2S, SPI, UART

- Nguồn cấp:

o Micro USB (5V 2.5A)

o DC Jack (5V 4A)

28

Hinh 16. Kit NVIDIA Jetson Nano

2.6.3. CUDA trén kit NVIDIA Jetson Nano

NVIDA Jetson Nano là một trong những máy tính nhúng có giá thành rẻ

nhưng có hỗ GPU và đặc biệt là CUDA.

CUDA là một nền tang tính toán song song và mô hình lập trình được phát triển bởi NVIDIA dé tính toán chung trên các đơn vị xử lý đồ hoa (GPU). Với CUDA, các nhà phát triển có thé tăng tốc đáng ké các ứng dụng điện toán bằng cách khai thác sức mạnh của GPU.

CUDA cho phép các nhà phát triển truy nhập vào tập các chỉ lệnh ảo và bộ nhớ của các phần tử tính toán song song trong đơn vị xử lý đồ họa của CUDA (CUDA GPU). Sử dụng CUDA, các GPU do NVIDIA sản xuất có thé dé dàng thực hiện các tính toán như những CPU. Tuy nhiên, không giống như các CPU, các GPU có kiến trúc song song trên toàn bộ giúp cho sự tập trung vào khả năng thực thi một cách chậm rãi nhiều luồng dữ liệu một lúc, hơn là thực thi rất nhanh một luồng dữ liệu. Cách tiếp cận giải quyết các van

đề có mục đích tổng quát này trên các GPU được gọi là GPGPU.

29

2.7. Tìm hiểu về thư viện TensorRT"!

2.7.1. Giới thiệu TensorRT

TensorRT là một thư viện C++ giúp cho việc xử lý hiệu năng cao trên các

đơn vị xử lý đồ họa GPU của NIVIA. Nó được thiết kế để hoạt động theo kiểu bổ sung vào các fameworks như TensorFlow, Caffe, PyTorch, MXNet,

... Đặc biệt TensorRT giúp các mạng đã được dao tạo hoạt động nhanh chóng

và hoạt động hiệu quả trên GPU dé tạo ra kết quả tốt hơn.

Một số framework như TensorFlow đã tính hợp TensorRT dé có thé tăng tốc khả năng suy luận của mô hình. Ngoài ra, TensorRT có thể được sử dụng làm thư viện trong ứng dụng người dùng. Nó bao gồm các trình phân tích cú pháp để nhập các mô hình hiện có từ Caffee, ONNX hoặc TensorFlow và API C++, Python dé xây dựng các mô hình theo chương trình.

Hình 17. Tổng quan quy trình toi wu model với TensorRT

2.7.2. Tổng quan quy trình phát triển deep learning kết hợp TensorRT

Dé phát triển dự án deep learning kết hợp với TensorRT thì nhìn chung có 3

giai đoạn:

e Giai đoạn 1: Đào tạo mô hình

30

Nhà phát triển sẽ phải triển khai van dé, xác định đầu vào, đầu ra dé phát triển mô hình training mong muốn. Trong quá trình này, để có một model training tốt thì cần phải làm thực hiện thu thập di liệu, tăng cường quản lý gán nhãn các bộ dữ liệu dé dao tạo. Sau đó thiết kế cấu trúc của mạng và đảo tạo mô hình. Trong quá trình đào tạo cần phải giám sát quá trình training để

có thé tăng cường chỉnh sửa chức năng hoặc thu thập thêm dữ liệu, tăng chất lượng model theo mong muốn.

Ở quá trình này thì TensorRT không được sử dụng để đào tạo.

e_ Giai đoạn 2: Phát triển giải pháp và triển khai

Trong quá trình này, nhà phát triển sẽ thực hiện việc ứng dụng mô hình đào tạo trong một hệ thong nào đó như có thê nói:

- Hé thống nhận diện khuôn mặt, hay vật thé

- Hé thống lái xe tự động

- Hé thống an ninh video trong khuôn viên công ty

TensorRT sẽ cung cấp một công cụ suy luận, module nhỏ gọn mạnh mẽ đáng

tin cậy đê ho trợ các công việc suy luận của kiên trúc đã trién khai.

Sau khi xác định những việc cần thiết để thực hiện, nhà phát triển sẽ xây dựng công cụ suy luận từ model đã được training từ lúc trước bằng cách sử dụng TensorRT để tạo ra một model mới. Nói cách khác, là chúng ta sẽ lấy model đã training trước đó phát triển phân tích thành TensorRT model bằng

trình cú pháp ONNX, trình phân tích Caffe hoặc trình phân tích TensorRT/UFF như hình 18.

31

ONNX Workflow V1

ONNX & Model

PYTORCH @xnet

Framework TỶ Tnnn

Integration

+ au k eo ryđô

Tensort iow e9 e

`

Network

Custom —— |

Framework

Hình 18. TensorRT tối wu hóa các mô hình mang than kinh được đào tạo dé tạo ra

một công cụ suy luận thời gian TensorRT Runtime

Tiếp theo, sẽ xem xét các tùy chọn dé tối ưu hóa như bath size, kích thước

workspace, độ chính xác hỗn hơp (mixed precision). Các tùy chọn và chỉ

định này như là một phần để triển khai TensorRT nơi mà thực sự xây dựng một công cụ tối ưu model của mình.

Cuối cùng tiễn hành tối ưu model thành định dạng TensorRT.

e Giai đoạn 3: Triển khai giải pháp

Giai đoạn này có nghĩa là hệ thống sẽ thực thi và chương trình xây dựng

được thực thi cùng với TensoRT.

32

2.7.3. Lợi ích khi triển khai TensorRT

Giải thích ngắn gọn và dé dễ hiểu, với việc không sử dụng TensorRT thì mỗi model sẽ thực hiện đơn lẻ trên mỗi GPU, điều này có thé dẫn dé việc không

sử dụng tốt nguồn tài nguyên của GPU trên các máy tính AI chuyên dụng như hiện nay được hỗ trợ với nhiều GPU.

Như hình 19 bên dưới làm ví dụ việc điều phối các model đơn lẽ trên mỗi

GPU.

ằ * Single model / framework per GPU

cpu s Utilization is low

ĩ

* Peak load requires adding GPUs

Hình 19. Phân bo luông các model cho GPU

33

Total Utilization

jImages P

Demai| 121242)

Delivered: 4436 Ä(E& “4-16:

GPU GPU2 GPU3 — 6PU6 6PU7 0PUð

19% 19% 14%

Model #3 Model #3 Model #á

Hình 20. Hiệu suất khi thực thi models trên GPU

Ở hình 20 thì ta có thể thấy tông tài nguyên được sử dụng không được quá cao, không sử dụng tốt nguồn tài nguyên của hệ thống dẫn đến GPUI và GPU2 quá tải so với các GPU khác thì được sử dụng rất ít gây ra lãng phí tài nguyên đáng kê.

Khi chúng ta tích hợp TensorRT có các model thì việc điều phối GPU giúp cân bằng được các nguồi tài nguyên như hình 21 và hình 22 bên dưới.

34

With TensorRT Inference Server

Every GPU runs multiple

models / frameworks

Higher utilization

Absorb peak loads more easily

Utilization

[Images Per Sec:

| Dema

ị __Deliver,

6PU1 GPU2 GPU 3 GPU4 GPUS GPU 6 GPU7 GPU 8

All Models All Models All Models All Models All Models All Models All Models All Models

Pao,

Hình 22. Hiệu suất điều phối của GPU khi sử dụng TensorRT

2.7.4. Dùng TensorRT để tối ưu file Tensorflow

Từ các kiến thức nhóm đã tìm hiểu về TensorRT ở trên, giải pháp tích hợp TensorRT vào Tensorflow có thê được áp dụng vào một số model ứng dụng như nhận diện được đối tượng, dịch thuật, ... Gia sử khi đã có được mô hình Tensorflow có khả năng nhận diện được vật thể, chúng ta có thể sử dụng

35

model đó dé thực thi các chương trình dự đoán bằng cách đóng băng lại biểu

đồ mô hình được đã được train bởi Tensorflow và xuất file đưới dạng *.pb. Tiếp theo đó, ta chuyên đổi định dạng file *.pb sang định dạng *.uff, phố biến hơn và được hỗ trợ bởi TensorRT để xây dựng một engine có thể chạy

trên nhân GPU của kit NVIDIA Jetson Nano. Sau đó từ file *.uff ta sử dụng

thư viện pyCuda và TensorRT để tiến hành build một engine và lưu engine

đó thành một file *.bin, điều này sẽ giúp chúng ta đỡ mất thời gian build engine khi thực hiện chương trình lại nhiều lần. Trong quá trình build engine, chúng ta sẽ cấu hình phần cứng của GPU dé thực hiện model trên, một số

thuộc tính như workspace_size hay batch size, những thuộc tinh này sẽ ảnh

hưởng đến hiệu suất cũng như độ chính xác của model khi chạy trên nhân GPU. Bên cạnh đó chúng ta cũng cần cấu hình kích thước input và kết quả output mong đợi sao cho phù hợp với model. Sơ đồ dưới đây sẽ cho thấy được quá trình áp dụng bộ tối ưu của TensorRT vào biểu đồ trong

Tensorflow khi áp dụng phương pháp này.

File graph *.pb — File uff *.uff > Fle enine "on

Hình 23. Quá trình build một file engine dé thực hiện chương trình

36

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, thử nghiệm thiết bị nhận dạng trạng thái tài xế lái xe ô tô (Trang 39 - 48)

Tải bản đầy đủ (PDF)

(66 trang)