Skip to content

Instantly share code, notes, and snippets.

@hoangnt2601
Created October 29, 2020 03:01
Show Gist options
  • Select an option

  • Save hoangnt2601/2d19b339db4f0a5f75ce4954dbdf000b to your computer and use it in GitHub Desktop.

Select an option

Save hoangnt2601/2d19b339db4f0a5f75ce4954dbdf000b to your computer and use it in GitHub Desktop.
Benchmarking Edge Computing

Edge Computing: So sánh các công nghệ phần cứng của Google, Intel và Nvidia

Nhằm tăng tốc độ suy luận của các mô hình học máy ở biên đã bắt đầu xuất hiện các phương pháp không cần đám mây. Đầu tiên trên thị trường là Intel với phần cứng dựa trên Moividius của họ. Sau đó là sự xuất hiện của cả Google, với phần cứng dựa trên EdgeTPU của họ được gọi là CoralNvidia với việc cung cấp Jetson Nano dựa trên nền tảng CUDA của họ.

Image for post

Sự xuất hiện của các thiết bị phần phần cứng mới được thiết kế để chạy các mô hình học máy với tốc độ nhanh và tiêu thụ điện năng thấp, không cần kết nối với đám mây làm cho điện toán biên trở thành một hướng phát triển tiềm năm trong tương lai. Đặc biệt là cùng với những phần cứng mới này, sự phát hành của TensorFlow 2 cũng như TensorFlow Lite cho các bộ điều khiển vi mô và phần cứng thấp mới như SparkFun Edge.

Câu hỏi duy nhất hiện nay là, thiết bị nào mới nào có thể suy luận nhanh hơn?

Đánh giá tổng quan

Chúng ta sẽ so sánh giữa các thiết bị sau: Coral Dev Board, Jetson Nano, Coral USB Accelerator với Raspberry Pi, Movidus Neural Compute StickIntel Neural Compute Stick 2 với Raspberry Pi. Chúng tôi cũng sẽ chạy các mô hình tương tự trên Apple MacBook Pro (2016) của tôi, có Intel Core i7 lõi tứ 2.9 GHz và Raspberry Pi 3, Model B + mà không cần các thiết bị trên.

Image for post

Tốc độ suy luận tính bằng mili/giây cho MobileNet SSD V1 (màu cam) và MobileNet SSD V2 (màu đỏ) trên tất cả các nền tảng được thử nghiệm. Cả hai mô hình được huấn luyện trên bộ dữ liệu COCO. Một hình ảnh thử nghiệm có kích cỡ 3888 × 2916 pixel đã được sử dụng trong đó có hai đối tượng dễ nhận biết trong khung hình, một quả chuối và một quả táo. Hình ảnh đã được thay đổi kích thước xuống 300 × 300 pixel trước khi đưa nó vào mô hình và mỗi mô hình được chạy 10.000 lần trước khi thời gian suy luận trung bình được tính.

Image for post

Kết quả cho thấy Coral Dev Board và Jetson Nano Developer Kit là những thiết bị hoạt động tốt nhất trong số các nền tảng được khảo sát. Trong hai bảng này, Coral Dev Board chạy nhanh hơn với thời gian suy luận ngắn hơn 4 lần so với Jetson Nano cho cùng một mô hình học máy.

Phân tích sâu hơn về kết quả

Việc đo được thực hiện bằng cách sử dụng TensorFlow hoặc cho các thiết bị không hỗ trợ TensorFlow, sử dụng các mô hình tương tự được sử dụng trên các nền tảng khác được chuyển đổi sang framework phù hợp với thiết bị. Đối với phần cứng dựa trên Coral EdgeTPU, chúng tôi đã sử dụng TensorFlow Lite và đối với phần cứng dựa trên Intel Movidius, chúng tôi đã sử dụng bộ công cụ OpenVINO của họ. Chúng tôi cũng đã chấm điểm cho Jetson Nano với TensorFlow thuần (có hỗ trợ GPU) và sau đó một lần nữa với cùng một mô hình TensorFlow nhưng được tối ưu bằng TensorRT.

Suy luận được thực hiện với các mẫu SSD MobileNet v2 và các phiên bản SSD có backbone sử dụng MobileNet v1 0.75. Hình ảnh thử nghiệm có kích thước 3888 × 2916 pixel đã được thay đổi kích thước xuống 300 × 300 pixel trước khi đưa nó vào mô hình và mỗi mô hình được chạy 10.000 lần trước khi thời gian suy luận trung bình được tính.

Image for post

Không có gì đáng ngạc nhiên khi Raspberry Pi không được đánh giá cao và kém nhất trong số các thiết bị khác.

Image for post

Bảng đánh giá các hình khác riêng Jetson Nano từ Nvidia.

Image for post

Sử dụng TensorFlow thuần so với các phiên bản tối ứu với TensorRT chậm hơn khoảng 3 lần khi kiểm tra trên mô hình SSD MobileNet v2.

Image for post

Thiết bị của Nvidia được xây dựng xung quanh công nghệ CUDA của họ, trong khi Google tùy chỉnh nhằm trực tiếp chạy các mô hình lượng tử nhỏ hơn. Chúng tôi thấy rằng phần cứng Edge TPU nhanh hơn khi chạy các mô hình nhỏ hơn ở biên. Phần cứng dựa trên CUDA linh hoạt hơn, nhưng khả năng bổ sung đó đi kèm với giảm tốc độ suy luận.

Image for post

So sánh giữa các dòng thiết bị kết nối USB

Các thiết bị dạng USB khi kết nối với Rasperberry Pi sử dụng cổng usb 3.0 có tốc độ tốt hơn gấp 4 lần so với cổng 2.0. Coral USB nhanh hơn với khoảng 2 lần so với Intel Neural Compute Stick 2. Với Intel, thế hệ đầu tiên, Movidius Neural Compute Stick rơi vào vị trí cuối cùng. Tuy nhiên, điều gây ấn tượng cho cả nền tảng Google và Intel là tốc độ giữa thời gian suy luận Raspberry Pi mặc dù cả hai đều bị ảnh hưởng bởi tốc độ bus của cổng USB 2.0. Chúng tôi đã thấy tốc độ tăng 10 lần khi sử dụng USB Coral so với Movidius.

Image for post

Bảng giá và kích thước

Thiết bị Giá Kích thước
NCS2 > 1.500.00 VNĐ 72.5mm x 27mm
Coral USB > 2.000.000 NVĐ 65mm x 30mm
Coral Board > 2.500.000 VNĐ 40mm x 48mm
Jetson Nano > 3.000.000 VNĐ 45mm x 70mm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment