Phần cứng Vision AI dành cho các nhà phát triển phần mềm

Phần cứng Vision AI dành cho các nhà phát triển phần mềm

Chia sẻ kiến thức 30/03/2022

AI là một lĩnh vực có sự thay đổi nhanh chóng, ví dụ như các bộ tăng tốc độ đọc như SoS (hệ thống on - a - chip) và GPU có thể bị lỗi thời vào thời điểm bạn bắt đầu tạo ra sản phẩm.

Hiện nay, bất kỳ nhà phát triển nào cũng dễ dàng sử dụng Vision AI vào dự án của họ. Bạn có thể thêm hệ thống Vision AI vào dự án làm vườn, cảnh báo khi hoa cần tưới nước, một chiếc ô tô điều khiển từ xa,… Developer có thể sử dụng phiên bản Kria KV260 Vision AI để tạo bản mẫu cho hệ thống Vision AI trong vài giờ. Điều mà trước đây các lập trình viên cần đến hàng tháng mới có thể hoàn thành.

Công nghệ rắc rối, thị trường phức tạp

Những ứng dụng dựa trên Vision sẽ cần đảm bảo sự chính xác đến từng mili giây.

Sự sẵn có một một lượng lớn dữ liệu đặc biệt là Vision Data (dữ liệu thị giác) là nguyên nhân của sự phát triển mạnh mẽ các ứng dụng xử lý Vision AI. Nhưng khi công nghệ ngày càng phát triển phức tạp thì thị trường cho các giải pháp này cũng vậy. Thị trường có sự phát triển đa dạng và được chia nhỏ hơn, khi các công ty đang cố gắng tạo ra các nền tảng với nhiều chức năng. Nhưng các giải pháp này gặp khó khăn khi không phải lúc nào cũng có thể mở rộng thị trường cung cấp. Đối với các lập trình viên muốn thử nghiệm phần cứng Vision AI sẽ gặp khó khăn để điểm ra nơi để bắt đầu. 

Các nhà phát triển AI sẽ gặp một khó khăn khá lớn đó là Vision AI xử lý một lượng lớn dữ liệu trên phần cứng. Bạn có thể xử lý từ xa bằng cách gọi video trực tuyến và chúng sẽ được xử lý trong trung tâm dữ liệu. Nhưng vấn đề ở đây là sẽ phát sinh độ trễ mỗi khi gọi video trực tuyến. Những ứng dụng dựa trên Vision (thị giác) sẽ cần đảm bảo sự chính xác đến từng mili giây, vậy nên quá trình tính toán cần phải diễn ra ngay trên thiết bị đó.

Về phần cứng khác bạn cần quan tâm đến các yêu cầu về điện năng và nhiệt độ. Không phải khi chúng ta hạn chế phần với mới có thể tạo ra những mô hình AI có độ chính xác cao. Các nhà phát triển cần một công cụ để có thể thực hiện dễ dàng hơn, dù chỉ dùng một lần hay sử dụng cho các dự án lớn. Cần tìm ra cách để xây dựng các thiết bị hỗ trợ Vision AI có thể đáp ứng được các yêu cầu của kỹ thuật và các dự án.

Giải pháp cho các lập trình viên

 Xilinx (Công ty công nghệ hoạt động trong lĩnh vực bán dẫn tại Mỹ) đã tạo ra giải pháp phần cứng cho các ứng dụng Vision AI ở dạng Chip. Nhưng giải pháp này sẽ tồn tại một thách thức đối với nhà phát triển, đó là khi phát triển phần còn lại của nền tảng phần cứng và cơ sở hạ tầng của phần mềm cho nền tảng đó. Nếu chỉ muốn thử nghiệm tạo ra một sản phẩm mẫu có thể tiết kiệm chi phí, hoạt động mạnh mẽ để có thể gia tăng khả năng truy cập các đường dẫn Vison AI. Tuy nhiên, các nền tảng này có thể sẽ nằm ngoài khả năng của bạn, nếu bạn là một lập trình viên mới.

Lập trình viên cần học cách để sử dụng các công cụ phát triển FPGA.

Ngoài ra AI là một lĩnh vực có sự thay đổi nhanh chóng, ví dụ như các bộ tăng tốc độ đọc như SoS (hệ thống on – a – chip) và GPU có thể bị lỗi thời vào thời điểm bạn bắt đầu tạo ra sản phẩm. Công nghệ Xilinx Adaptive SoC đã được Xilinx tích hợp vào Kria SOM, qua đó sẽ thúc đẩy công nghệ FPGA để có thể điều bộ tăng tốc mạng và đường dẫn Vision. Nhờ vậy mà khi các công nghệ có thay đổi thì các nền tảng bạn chọn vẫn phù hợp để sử dụng.

Tuy vậy, FPGA đòi hỏi lập trình viên cần thành tạo các bộ kỹ năng khó và chuyên biệt. Để làm được điều đó trước tiên bạn cần biết cách thiết kế mạch kỹ thuật số, về cơ bản đây là quá trình tạo ra một logic để thực hiện các thuật toán cụ thể. Đồng thời, ta cần hiểu tất cả các thanh ghi, bộ cộng, bộ ghép kênh và bảng tra cứu có thể làm được. Sau đó bạn sẽ phải tạo ra logic đó bằng ngôn ngữ mô tả phần cứng như Verilog hoặc VHDL. Cả hai ngôn ngữ lập trình trên đều tương tự như C hoặc Pascal nhưng các lập trình viên sẽ cần một tư duy khác nhau để có thể tạo ra những dòng mã tốt. Quan trọng nhất bạn cần học cách để sử dụng các công cụ phát triển FPGA.

Điểm nổi bật của công cụ này là nếu thiết bị đang xử lý cùng một lượng dữ liệu và có rất ít phép tính, nhưng mỗi phép tính lại xử lý nhiều dữ liệu hơn nên băng thông có thể bị tắc nghẽn và trở thành Bottleneck (nút thắt cổ chai) của hệ thống. Nếu cấu trúc không được tích hợp theo chiều sâu thì trình tăng tốc mạng Neural sẽ ảnh hưởng đến bộ nhớ. Do đó, nó sẽ đạt mức hiệu quả thấp hơn khi các nhân tố của trình tăng tốc không thực hiện được công việc hữu ích nào nhưng vẫn gây tiêu hao điện năng và không gian. Hậu quả là một con chip mới được thiết kế sẽ không đạt được hiệu suất như mong đợi.

Nhưng nếu bạn sử dụng các cấu trúc của FPGA sẽ có thể điều chỉnh lại cấu hình ngay trên thiết bị để đảm bảo hiệu suất tối ưu khi các cấu trúc mạng hoặc kỹ thuật mới vẫn có thể khả dụng. Đây chính là ưu điểm của SoC được tích hợp trên Kria KV26 SOM.

Có thể bắt đầu với cách đơn giản hơn

Giải pháp System-on-module (SOM)

Công ty Xilinx chỉ ra rằng, chúng ta có thể mang lại cho các kỹ sư sự thuận lợi hơn nếu chúng ta tập trung vào các trường hợp sử dụng Vision AI cụ thể và cung cấp một nền tảng có thể sản xuất. Cho phép các nhà phát triển tiếp cận thị trường nhanh chóng. Đây sẽ là giải pháp rất đơn giản và nó sẽ cung cấp các thành phần chính như một giải pháp bo mạch duy nhất: System-on-module (SOM). SOM có lợi thế là chúng kết hợp bộ xử lý, bộ nhớ, thiết bị ngoại vi quan trọng,… trên một bo mạch duy nhất. Đảm bảo rằng bạn có các yếu tố cơ bản để thực hiện mục tiêu Vision AI. 

SOM là một phần cứng được thiết kế để phục vụ cho một mục đích cụ thể nào đó. Đối với Kria KV26 thì nó hỗ trợ thiết kế Vision AI. Với sự linh động khi điều chỉnh phần cứng để phù hợp với Vision AI chúng ta có thể tối ưu hóa kích thước và chi phí của phần cứng. 

Bây giờ chúng ta đã có một số chi tiết cần quan tâm như: Cấu hình Xilinx Adaptive SoC trên Kria SOM và sử dụng mô hình AI của bạn để chạy trên nền tảng này. Các nhà phát triển có thể tận dụng sức mạnh của các SoC mà không cần phải phát triển một vision pipeline cơ bản và bộ tăng tốc mạng Neural. Nhưng đối với các nhà phát triển cần một cái gì đó có thể tùy chỉnh, các đối tác của Xilinx sẽ thiết kế logic sao cho phù hợp nhất với dự án của bạn hoặc bạn có thể tận dụng các công cụ Vitis để tích hợp tùy chỉnh của riêng bạn, dù bạn không phải một chuyên gia về FPGA.

Giải pháp Ubuntu 

Ubuntu có thể xuất bản các hình ảnh được tối ưu hóa trực tiếp.

Xilinx đã từng cung cấp PetaLinux, nó là một phiên bản Linux dựa trên Yocto nhưng không có bản nhị phân phân phối duy nhất. Để sử dụng người dùng sẽ tải xuống các nguồn, sau đó xây dựng cấu hình của chúng trước khi họ bắt tay vào phát triển ứng dụng. Các nhà phát triển Hardcore thường sẽ yêu thích phong cách này và họ sẽ muốn toàn quyền kiểm soát Linux.

Nhưng đối với các nhà phát triển muốn tạo ra sản phẩm và ứng dụng ngay mà không cần phải xây dựng toàn bộ hệ điều hành, bạn có thể tham khảo Ubuntu cho Kria SOMs, Ubuntu có thể xuất bản các hình ảnh được tối ưu hóa trực tiếp. Đây là phiên bản phiên bản phân phối mã nguồn mở phổ biến nhất của Linux. Bạn có thể tải xuống ảnh nhị phân Ubuntu cho Kria sau đó khởi động và đầu phát triển sản phẩm. Tùy chọn Ubuntu của Linux sẽ giúp đẩy nhanh sự phát triển của các nền tảng Vision AI.

Để các nhà phát triển có thể tiết kiệm thời gian, Xilinx và đối tác đã tạo ra các ứng dụng tăng tốc plug-and-play. Ứng dụng tăng tốc Xilinx là nguồn mở và cho phép các cấu hình liên kết triển khai AI (ví dụ: Thiết bị AI đa luồng, máy ảnh thông minh,…). Cũng tương tự như tùy chọn nhân Linux, Xilinx cung cấp 04 cấp độ tùy chỉnh khi sử dụng ứng dụng tăng tốc Xilinx:

  • Phần mềm ứng dụng có thể thiết kế hoàn toàn mở. Bản ứng dụng sẽ có khả năng tự xử lý video, tạo dữ liệu Vision và một số công việc nặng nhọc khác
  • Thay thế mô hình AI mặc định bằng mô hình AI do khách hàng yêu cầu với Vitis AI. Nhưng các nhà phát triển sẽ có nhiều quyền kiểm soát hơn với mô hình đó và vẫn không phải dùng thiết kế FPGA
  • Thay thế thiết kế FPGA bằng ngôn ngữ lập trình quen thuộc như Python, C, C ++ hoặc OpenCL bằng công cụ Vitis của Xilinx. Vitis đã tối ưu hóa các thư viện, ví dụ như xfOpenCV (một trong những thư viện lâu đời và phổ biến nhất thực hiện chức năng về tầm nhìn (Vision) như: Chuyển đổi không gian màu, xoay và lọc hình ảnh,…)
  • Tùy chỉnh hoàn toàn FPGA bằng công cụ Xilinx Vivado. Đây là điều không bắt buộc nhưng bất kỳ ai có chuyên môn đều có thể tận dụng tối đa tính linh hoạt của SoC

Với cách tiếp cận logic và linh hoạt, bất kỳ nhà phát triển nào cũng có thể bắt đầu thực hiện các dự án Vision AI. Nhà phát hành đã chạy thử nghiệm bằng ứng dụng biển số Uncanny Vision trên Kria SOM và so sánh với một đối thủ khác. Kết quả cho thấy bo mạch chủ của họ đã chạy với hiệu suất gấp 1.5 lần trong khi tiêu thụ ít hơn 33% lượng điện năng trên mỗi luồng.

Hy vọng các kiến thức sẽ giúp ích cho bạn trong quá trình làm việc với Vision AI. 

Công Sơn

Nguồn tham khảo:https://stackoverflow.blog/2021/10/20/why-hooks-are-the-best-thing-to-happen-to-react

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, phường Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        

Cơ quan chủ quản: Công ty Cổ phần Giáo dục Trực tuyến FUNiX
MST: 0108171240 do Sở kế hoạch và Đầu tư thành phố Hà Nội cấp ngày 27 tháng 02 năm 2018
Địa chỉ:
Văn phòng Hà Nội: Tầng 4, Tòa nhà 25T2, Đường Nguyễn Thị Thập, phường Yên Hòa, Hà Nội.
Văn phòng TP.HCM: Lầu 8, Tòa nhà Giày Việt Plaza 180-182 Lý Chính Thắng, phường Nhiêu Lộc, TP. Hồ Chí Minh.
Hotline: 078 231 3602 – Email: info@funix.edu.vn

yêu cầu gọi lại