Triển khai hiệu quả các hệ thống mạng nơ-ron xây dựng trên FPGA và lập trình với OpenCLTM

0
927

Các hệ thống mạng nơ-ron học sâu hiện đang cung cấp giải pháp tốt nhất cho nhiều vấn đề tính toán lớn để nhận dạng hình ảnh và xử lý ngôn ngữ tự nhiên.

Mạng lưới nơ-ron được lấy cảm hứng từ các hệ thống sinh học, đặc biệt là bộ não con người bằng cách sử dụng quy trình xử lý thông thường để bắt chước mạng nơ-ron và tạo ra hệ thống có thể học hỏi bằng cách quan sát. Mặc dù gần đây mạng nơ-ron dựa trên công nghệ đa lõi đã đạt được những bước tiến lớn trong việc phát triển các hệ thống hiệu suất cao, tuy nhiên vẫn tồn tại những thách thức về mặt công suất, chi phí và hiệu suất.

Bối cảnh

Các hệ thống học sâu được sử dụng rộng rãi nhất là mạng nơ-ron tích chập (CNN). Hệ thống này sử dụng một mạng nơron nhân tạo truyền thẳng để nhận hiện hình ảnh bằng cách dùng một hệ thống cấp dữ liệu ngược để học và tạo ra bộ trọng số để hiệu chỉnh hệ thống thực thi. CNN được cấu tạo bởi các lớp: lớp tích chập- trích xuất các tính năng cấp thấp từ đầu vào để xác định các đường trong một hình ảnh. Lớp tổng hợp giúp giảm phương sai so với giá trị trung bình hoặc giá trị tối đa và tổng hợp các đặc điểm chung trên một vùng cụ thể của hình ảnh. Kết quả được chuyển sang các lớp tích chập và lớp tổng hợp khác. Số lượng lớp CNN tương quan với độ chính xác của việc nhận dạng hình ảnh; càng nhiều lớp đòi hỏi hiệu suất hệ thống càng cao. Các lớp này có thể hoạt động độc lập, do đó hiệu quả nhất là khi triển khai chúng trong đường dẫn mà dữ liệu được truyền từ lớp này sang lớp khác. Các hệ thống xử lý đa lõi sử dụng bộ nhớ đệm ngoài giữa mỗi lớp nên đòi hỏi lượng băng thông bộ nhớ đáng kể.

Cho đến nay, tích chập là chức năng mạnh mẽ nhất của mạng nơ-ron. Các hàm sigmoidal phức tạp này được triển khai tốt nhất trong phép toán số thập phân với độ chính xác đơn để phân loại hình ảnh. Các lõi xử lý thông thường phải thực hiện một tập lớn các lệnh cho mỗi tích chập do đó đòi hỏi băng thông xử lý rất lớn.

Lớp tích chập 2D

Có hai thách thức chính để đạt được hiệu quả triển khai CNN là khả năng thực thi các chức năng trong một đường ống, truyền dữ liệu từ lớp này sang lớp tiếp theo và thứ hai là thực thi các hàm tích chập một cách hiệu quả.

Ngoài ra, cần xây dựng các chức năng này bằng phương pháp cho phép dễ dàng lập trình lại cho các loại phần cứng khác nhau và để nâng cấp sang phần cứng nâng cao trong tương lai.

Thiết kế

FPGA được lựa chọn để triển khai mạng nơ-ron do khả năng kết hợp tài nguyên tính toán, logic và bộ nhớ trong một thiết bị duy nhất. Tuy nhiên, FPGA không thực tế để sử dụng rộng rãi trong các hệ thống dựa trên thuật toán phức tạp do môi trường lập trình phần cứng cấp thấp truyền thống.

Intel® FPGA SDK cho OpenCL™ khắc phục được vấn đề này vì giúp cho FPGA phù hợp với một loạt các ứng dụng tăng tốc bằng cách sử dụng các thuật toán phức tạp. Các nhà phát triển phần mềm có thể sử dụng tiêu chuẩn lập trình mức C của OpenCL nhằm mục tiêu sử dụng FPGA làm bộ tăng tốc cho các CPU tiêu chuẩn mà không cần phải xử lý thiết kế mức phần cứng. Ngoài ra, Intel đã phát triển một thiết kế tham chiếu mạng nơ-ron tích chập có thể mở rộng cho các hệ thống học sâu sử dụng ngôn ngữ lập trình OpenCL được xây dựng với SDK cho OpenCL. Thiết kế này lần đầu tiên được triển khai trên dòng thiết bị Stratix® V và hiện có sẵn cho các thiết bị Arria® 10. Hiệu suất thiết kế được đánh giá bằng hai tiêu chuẩn CNN phổ biến: CIFAR-10 và ImageNet.

Việc triển khai từng lớp CNN dựa trên thiết kế sử dụng nhân OpenCL. Dữ liệu được truyền từ lớp này sang lớp khác thông qua cơ chế được gọi là Kênh hoặc Ống OpenCL, cho phép dữ liệu truyền từ nhân này sang nhân tiếp theo mà không cần gửi dữ liệu đến bộ nhớ ngoài. Ngoài ra, thiết kế có thể được điều chỉnh cho phù hợp với các hệ thống sử dụng cameras, cảm biến hoặc các thiết bị đầu vào và đầu ra khác được gắn trực tiếp vào FPGA. Hệ thống CNN có thể giao tiếp trực tiếp với các thiết bị này thông qua cùng một cơ chế kênh mà không cần gửi dữ liệu đến bộ nhớ ngoài. Việc triển khai GPU điển hình chia hình ảnh thành từng đợt và yêu cầu băng thông bộ nhớ ngoài lớn trong khi FPGA có thể xử lý từng ảnh một với khả năng tái sử dụng dữ liệu trên chip lớn hơn đáng kể và băng thông bộ nhớ ngoài ít hơn.

Đường truyền dữ liệu trong mạng nơ-ron

Tích chập được thực hiện bằng cách sử dụng các khối DSP và logic trong FPGA. Trước đây, các khối FPGA DSP hiệu quả cho phép thực hiện phép nhân, tuy nhiên phép cộng dấu phẩy động yêu cầu logic FPGA lớn. Arria 10 và Stratix 10 FPGA có các khối DSP cải tiến cũng cung cấp bổ sung dấu phẩy động IEEE-754, yêu cầu ít logic FPGA hơn và tốc độ xung nhịp cao hơn do đó hiệu suất tốt hơn và công suất thấp hơn. Tại Diễn đàn các nhà phát triển Intel 2015, Intel đã trình bày các dự đoán về Arria 10 AlexNet, ngay sau đó, tại Hội nghị Hot Chips, sách trắng của Microsoft* đã dự đoán hiệu suất hoạt động của Arria 10 AlexNet tương tự với TFLOPs cao nhất của Arria 10 GX1150 so với GPU Titan X, nhưng với tỷ lệ hiệu suất trên công suất tốt hơn gấp 2 lần. Stratix 10 FPGA dự kiến sẽ mang lại hiệu suất tốt hơn 5 lần so với Arria 10 FPGA với số khối DSP nhiều hơn gấp 3 lần ở tốc độ xung nhịp gấp khoảng 2 lần, giúp cải thiện liên tục về hiệu suất.   

Hiệu suất và Công suất của Dự án ALEXNET

Biên dịch: Bắc Đặng

Để cập nhật tin tức công nghệ mới nhất và các sản phẩm của công ty AIoT JSC, vui lòng truy cập link: http://aiots.vn hoặc linhkienaiot.com

0 0 Phiếu bầu
Article Rating
Subscribe
Notify of
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả các bình luận