Khóa luận tốt nghiệp: Tùy chỉnh và phát triển bộ tăng tốc cho mạng thần kinh tích chập dựa trên CGRA

Khóa luận tốt nghiệp nghiên cứu kỹ thuật máy tính, phát triển bộ tăng tốc dựa trên CGRA linh hoạt, tối ưu cho mạng thần kinh tích chập hiệu quả.

Chuyên ngành

Kỹ thuật Máy tính

Người đăng

Ẩn danh

Thể loại

Khóa luận tốt nghiệp

2024

66
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: TÍNH CẤP THIẾT

1.1. Hướng nghiên cứu đề tài

1.2. Mục tiêu đề tài

1.3. Convolutional Neural Networks - Mạng thần kinh tích chập

1.4. Convolution Layer — Lớp tích chập

1.5. Pooling Layer — Lớp tổng hợp

1.6. Fully Connected Layer — Lớp kết nối đầy đủ

1.7. Activation Functions — Các hàm kích hoạt

1.8. Floating Point — Dấu chấm động

1.9. Mật mã học - Cryptography

1.10. Thuật toán mã hoá khối đối xứng AES-128 (Advanced Encryption Standard)

1.11. SubBytes trong AES-128

1.12. Thuật toán mã hoá khối đối xứng SM4

1.13. Key Expansion SM4 - Mở rộng khoá

3. CHƯƠNG 3: HIỆN THỰC PHẦN MỀM MẠNG CNN LENET-5

3.1. Lớp tích chập thứ nhất

3.2. Lớp tích chập thứ hai

4. CHƯƠNG 4: KIẾN TRÚC CRYPTO CGRA

4.1. Kiến trúc tổng quan của Crypto CGRA

4.2. Đơn vị xử lý (Processing Element - PE)

4.3. Đơn vị tải và lưu trữ nội bộ của PE (Load Store Unit)

4.4. Buffer giữ trạng số tức thời (Immediately PE — IM PE)

4.5. Buffer giữ các lệnh tái cấu hình (Context PE — CTX PE)

4.6. Buffer chuyển tiếp giá trị

4.7. Đơn vị tính toán ALU

4.8. Kết nối hàng (Row Connection — R)

4.9. Hoạt động tính toán trong Crypto CGRA

4.10. Kiến trúc Crypto CGRA ở cấp độ SoC

4.11. Xử lý tín hiệu và các phiên làm việc của Crypto CGRA

4.12. Pipeline trong Crypto CGRA

5. CHƯƠNG 5

5.1. Vận hành Crypto CGRA trên mô phỏng

5.2. Thư viện C_Simulator

5.3. Mô phỏng Crypto CGRA trên Vivado

5.4. Crypto CGRA vận hành thuật toán trên mô phỏng

5.5. Crypto CGRA vận hành thuật toán trên thực tế

5.6. Tài nguyên thiết kế

5.7. So sánh kết quả

6. CHƯƠNG 6: KẾT QUẢ CỦA KHÓA LUẬN

6.1. Phương hướng phát triển

PHỤ LỤC

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

Tóm tắt

I. Phát triển bộ tăng tốc

Phát triển bộ tăng tốc là trọng tâm của nghiên cứu này, nhằm cải thiện hiệu suất tính toán cho mạng thần kinh tích chập (CNN). Bộ tăng tốc được thiết kế dựa trên CGRA linh hoạt, một kiến trúc phần cứng có khả năng tái cấu hình, giúp tối ưu hóa quá trình xử lý dữ liệu. Nghiên cứu tập trung vào việc tăng tốc các phép toán nhân tích chập, vốn là phần tính toán chiếm nhiều tài nguyên nhất trong CNN. Bằng cách sử dụng CGRA linh hoạt, nghiên cứu hướng đến việc giảm thiểu thời gian xử lý và nâng cao hiệu quả năng lượng.

1.1. Tối ưu hóa phần cứng

Tối ưu hóa phần cứng là một trong những yếu tố then chốt trong việc phát triển bộ tăng tốc. Nghiên cứu đề xuất sử dụng CGRA linh hoạt để tái cấu hình các đơn vị xử lý (PE) nhằm thực hiện các phép nhân tích chập một cách hiệu quả. Việc tối ưu hóa này không chỉ giúp giảm thiểu tài nguyên phần cứng mà còn tăng tốc độ xử lý, đặc biệt là trong các ứng dụng yêu cầu xử lý dữ liệu lớn như nhận diện hình ảnh.

1.2. Kiến trúc tính toán

Kiến trúc tính toán của CGRA linh hoạt được thiết kế để hỗ trợ tính toán song song, giúp tăng tốc độ xử lý của mạng thần kinh tích chập. Nghiên cứu tập trung vào việc tối ưu hóa các đơn vị xử lý (PE) và các kết nối giữa chúng để đảm bảo hiệu suất cao nhất. Kiến trúc này cũng được tích hợp với các công nghệ AI hiện đại, giúp nâng cao khả năng xử lý và nhận diện dữ liệu.

II. Mạng thần kinh tích chập

Mạng thần kinh tích chập (CNN) là một trong những kiến trúc mạng neural phổ biến nhất trong lĩnh vực trí tuệ nhân tạo, đặc biệt là trong các ứng dụng nhận diện hình ảnh và xử lý dữ liệu. Nghiên cứu này tập trung vào việc cải thiện hiệu suất của CNN thông qua việc tăng tốc các phép toán nhân tích chập, vốn là phần tính toán chiếm nhiều tài nguyên nhất. Bằng cách sử dụng CGRA linh hoạt, nghiên cứu hướng đến việc giảm thiểu thời gian xử lý và nâng cao hiệu quả năng lượng.

2.1. Lớp tích chập

Lớp tích chập là lớp quan trọng nhất trong mạng thần kinh tích chập, nơi diễn ra các phép toán nhân tích chập giữa dữ liệu đầu vào và các kernel. Nghiên cứu tập trung vào việc tối ưu hóa các phép toán này bằng cách sử dụng CGRA linh hoạt, giúp tăng tốc độ xử lý và giảm thiểu tài nguyên phần cứng. Việc tối ưu hóa này đặc biệt quan trọng trong các ứng dụng yêu cầu xử lý dữ liệu lớn như nhận diện hình ảnh.

2.2. Lớp tổng hợp

Lớp tổng hợp đóng vai trò giảm kích thước dữ liệu đầu vào, giúp giảm thiểu số lượng tính toán cần thiết trong các lớp tiếp theo. Nghiên cứu đề xuất sử dụng các phương pháp tổng hợp như Max Pooling và Average Pooling để tối ưu hóa quá trình xử lý. Việc tối ưu hóa này không chỉ giúp giảm thiểu tài nguyên phần cứng mà còn tăng tốc độ xử lý của mạng thần kinh tích chập.

III. CGRA linh hoạt

CGRA linh hoạt là một kiến trúc phần cứng có khả năng tái cấu hình, được sử dụng để tăng tốc các phép toán trong mạng thần kinh tích chập. Nghiên cứu này tập trung vào việc tối ưu hóa CGRA linh hoạt để hỗ trợ tính toán nhân tích chập, giúp tăng tốc độ xử lý và giảm thiểu tài nguyên phần cứng. Kiến trúc này cũng được tích hợp với các công nghệ AI hiện đại, giúp nâng cao khả năng xử lý và nhận diện dữ liệu.

3.1. Kiến trúc tổng quan

Kiến trúc tổng quan của CGRA linh hoạt bao gồm các đơn vị xử lý (PE) và các kết nối giữa chúng, được thiết kế để hỗ trợ tính toán song song. Nghiên cứu tập trung vào việc tối ưu hóa các đơn vị xử lý và các kết nối này để đảm bảo hiệu suất cao nhất. Kiến trúc này cũng được tích hợp với các công nghệ AI hiện đại, giúp nâng cao khả năng xử lý và nhận diện dữ liệu.

3.2. Tích hợp phần cứng phần mềm

Tích hợp phần cứng-phần mềm là một trong những yếu tố then chốt trong việc phát triển CGRA linh hoạt. Nghiên cứu đề xuất sử dụng các công cụ phần mềm như Vivado để mô phỏng và phân tích hiệu suất của CGRA linh hoạt. Việc tích hợp này giúp đảm bảo rằng kiến trúc phần cứng có thể hoạt động hiệu quả với các ứng dụng phần mềm, đặc biệt là trong các ứng dụng yêu cầu xử lý dữ liệu lớn như nhận diện hình ảnh.

21/02/2025

Trích đoạn nội dung tài liệu

MỞ ĐẦU Trong trí tuệ nhân tạo (AT), máy hoc là một lĩnh vực phô biến, nơi các hệ thống từ dir liệu được cung cấp mà có thể học hỏi và cải thiện hiệu suất xử lý công việc theo thời gian. Nhờ đó, nó được áp dụng rộng rãi trong nhiều lĩnh vực như nhận diện hình ảnh, xử lý ngôn ngữ tự nhiên, truyền thông giải trí và nhiều lĩnh vực khác. Trong máy học, mạng thần kinh tích chập (Convolutional Neural Network — CNN) là một loại kiến trúc mạng thần kinh phé biến và hiệu quả trong việc xử lý hình ảnh và video. CNN được ứng dụng rộng rãi trong nhiều công việc cụ thé đòi hỏi khả năng nhận diện và phân loại như nhận diện khuôn mặt, nhận diện hình ảnh, phát hiện và phân loại đối tượng.

Chính vì lý do đó, nó đã trở thành một công cụ không thê thiếu. Tuy nhiên, để đáp ứng nhu cầu ngày càng cao và mở rộng phạm vi ứng dụng cũng như nâng cao hiệu suất làm việc, CNN cần phải cải thiện một số khía cạnh như tốc độ nhận diện, hiệu quả tính toán, khả năng tổng quát hóa, giảm thiểu tài nguyên và năng lượng. Nhìn thấy được những khía cạnh cần cải thiện của mang CNN, em nhận thấy vấn đề tốc độ nhận diện và hiệu quả tính toán là hai vấn đề mà CNN cần được giải quyết vì mô hình CNN ngày càng phức tạp và yêu cầu xử lý với lượng đữ liệu lớn. Bên cạnh đó, hiện này máy gia tốc được ứng dụng rất nhiều trong việc tăng tốc và nâng cao hiệu suất tính toán.

Và máy gia tốc CGRA tăng tốc cho các thuật toán mật mã học là một kiến trúc phần cứng thú vị nhờ vào tính linh hoạt và khả năng tính toán song song. Do đó, việc tìm hiểu và cấu hình lại CGRA để tăng tốc phép nhân tích chập từ đó cải thiện tốc độ xử lý của mô hình nhận diện ảnh CNN một trong những mục tiêu quan trọng mà đề tài khoá luận này hướng tới. Dat van dé Trong thé giới ma khoa học kỹ thuật ngày càng phát triển, máy học đã trở thành một lĩnh vực ngày càng phô biến và quan trọng. Trong đó mạng thần kinh tích chập (CNN) nỗi bật với khả năng xử lý và nhận diện hình ảnh cũng như giọng nói một cách chính xác, phục vụ cho nhu cầu xử lý dữ liệu khổng lồ trong thời gian ngắn.

Khái niệm này được đưa ra lần đầu tiên trong những năm 1980 bởi Kunihiko Fukushima, Sei Miyake, Takayuki Ito [1], mô phỏng cách thức hoạt động của tế bào thần kinh trong não bộ. Từ đó, CNN đã không ngừng phát triển, với các mô hình ngày càng tiên tiến hơn như Lenet (1997) [2] có 60 nghìn trọng số, AlexNet (2012) với 60 triệu trọng số, VGGNet (2014) 138 triệu trọng số, và GoogleNet (2014) với 4 triệu trọng số. Một kiến trúc CNN tiêu biểu bao gồm bốn phần chính: Convolution layer, Pooling layer, Activation ReLU (Rectified Linear Unit) và Fully Connected layer được ghép nối với nhau theo cấu trúc nhiều tang. Trong đó phép nhân tích chập đóng vai trò trung tâm, tác động đến hiệu suất tông thé của mạng.

Do đó, việc nghiên cứu và tôi ưu hóa phép nhân tích chập trong CNN sẽ là trọng tâm của công trình này, hướng đên việc cải thiện đáng kê hiệu suat của các mô hình. Z RK oK 2 A gre 1. Tinh cap thiệt của dé tài Dé cải thiện khả năng tính toán và nâng cao hiệu suất của CNN, máy gia tốc phan cứng thường được sử dụng. Các máy gia tốc này thường được thiết kế dé thực hiện tăng tốc các hoạt động tính toán cụ thé như phép nhân ma trận, hiệu quả hơn so với các CPU đa năng về tốc độ tính toán và hiệu quả năng lượng.

Trong số các kiến trúc phần cứng, mảng phần cứng có khả năng tái cấu hình cấu trúc thô (Coarse Grained Reconfigurable Array- CGRA [3]) là một kiến trúc đầy hứa hẹn vì khả năng linh hoạt và hiệu quả của nó trong việc phát triển các bộ tăng tốc phần cứng tuỳ chỉnh. Máy gia tốc được thiết kế để nâng cao hiệu suất và hiệu quả năng lượng của CNN băng cách tăng tốc hoạt động nhân tích chập đòi hỏi nhiều tính toán. Hướng nghiên cứu đề tài Đầu tiên, em sẽ tiến hành tìm hiểu các lý thuyết liên quan về nhận diện ảnh trong mạng thần kinh tích chập (CNN) cụ thé là mô hình Lenet-5. Tiếp theo, em sẽ tiền hành hiện thực mô hình nhận diện ảnh CNN Lenet-5 bằng ngôn ngữ C với tat cả các hàm của mô hình đêu sẽ được việt thủ công.

Tiếp theo, em sẽ tìm hiểu về lý thuyết, cách hoạt động và sử dụng của Mang có khả năng tái cầu trúc cấu hình thô (CGRA) dựa trên máy gia tốc CGRA tăng tốc các thuật toán mật mã học cho hai thuật toán mã hoá khối đối xứng AES-128 và SM4, từ đó cấu hình lại CGRA dé hỗ trợ tính toán nhân tích chập cho mạng CNN. CGRA sau khi được cấu hình lại để thực hiện tính toán nhân tích chập sẽ tiễn hành tính toán, thực hiện tính toán xong sẽ đưa kết quả lên lại phần mềm đề thực hiện các layer tiếp theo. Phần cứng sẽ được thiết kế sử dụng ngôn ngữ mô tả phần cứng Verilog và sau đó sẽ tiến hành thiết kế và mô phỏng trên phan mềm Vivado. Cuối cùng sẽ tiến hành đánh giá tốc độ xử lý và tài nguyên phần cứng bằng phần mềm Vivado Design Suit.

Mục tiêu đề tài Trong khoá luận này, đầu tiên, em sẽ nghiên cứu, phân tích và tìm hiểu lý thuyết về nhận diện ảnh trong mạng thần kinh tích chập. Thứ hai, em sẽ nghiên cứu, phân tích, tìm hiểu lý thuyết và cách sử dụng của mảng phần cứng có khả năng tái cấu hình cấu trúc thô (CGRA) dựa trên may gia tốc CGRA cho các thuật toán mật mã học. Thứ ba, em sẽ nghiên cứu, phân tích và cấu hình lại CGRA dé có thé thực hiện tăng tốc phép nhân tích chập. Tiếp theo, em sẽ hoàn thành được hệ thống chạy mô phỏng trên phan mềm Vivado dé kiêm chứng chức năng của khối IP.

Sau cùng, em sẽ hiện thực phần cứng lên FPGA. Mục tiêu của đề tài là nghiên cứu, phân tích và tìm hiểu cách sử dụng máy gia tốc CGRA tăng tốc các thuật toán mật mã học mà nhóm nghiên cứu trước đã hoàn thành. Sau đó cấu hình lại CGRA dé có thể hỗ trợ tính toán phép nhân tích chập. Convolutional Neural Networks - Mạng thần kinh tích chập Mang thần kinh tích chập (CNN) là một bước tiến đáng ké trong lĩnh vực trí tuệ nhân tạo, nó được lay cam hứng từ co chế xử lý ảnh của não bộ con người.

Khi chúng ta nhìn thấy một vật thé, võ não thi giác sẽ lần lượt kích hoạt nhiều lớp tế bào thần kinh, mỗi lớp chuyên trách phát hiện các đặc trưng ngày càng phức tạp của đối tượng, từ hình dạng, góc cạnh, màu sắc cho đến kết câu cuối cùng là nhận diện hình ảnh đầy đủ. Kiến trúc của CNN bao gồm lớp đầu vào, lớp đầu ra và các lớp ân nămở giữa. Các lớp an bao gồm: lớp tích chập (Convolution Layer), lớp tổng hợp (Pooling Layer), lớp kết nối đầy đủ (Fully Connected Layer) và các hàm kích hoạt (Activation Functions). Mỗi lớp trong mạng thần kinh tích chập đều có nhiệm vụ và chức năng riêng của mình.

Lớp tích chập sẽ thực hiện nhân tích chập dữ liệu đầu vào với bộ lọc được cung cấp sau quá trình Training, từ đó trích xuất các đặc trưng của ảnh. Lớp tổng hợp đóng vai trò giảm kích thước của dữ liệu đầu vào giúp giảm đữ liệu tính toán và kiểm soát quá trình học của mô hình. Các lớp kết nối đầy đủ phân tích các đặc trưng bằng cách kết nói mỗi neuron của lớp này được kết nối với mỗi neural của lớp trước đó, sau đó sẽ đưa ra quyết định cuối cùng. Các hàm kích hoạt như ReLU và Softmax cung cấp tính phi tuyến tính và khả năng phân loại.

Một số mang CNN tiêu biểu như: Lenet (1990), AlexNet (2012), VGGNet (2014), GoogleLeNet (2014), ResNet (2015),. fc 3 fc_4 Fully-Connected Fully-Connected Neural Network Neural Network Conv_1 Conv 2 ReLU activation Convolution Convolution Ì _ (S x 5) kernel Max-Pooling (Sx5]kernel Max-Pooling (with valid padding (2x2) valid padding (2x2) @ dfonoui} ®© ®o ®© ®:1 INPUT n1 channels n1 channels n2 channels n2 channels : @ 9 (28 x28 x 1) (24x24 x n1) (12 x 12 x n1) (8x8xn2) (4x4xn2) ® OUTPUT Hình 2.1 Kiến trúc mạng CNN Lenet-5. Convolution Layer — Lớp tích chập: Lớp tích chập là lớp diễn ra quá trình nhân tích chập giữa Input và các Kernel, kết qua cho ra là các Future map. Đối với Input, nếu là ảnh đen trang thì Input đầu vào sẽ là một mảng hai chiều với kích thước (chiều cao ảnh) x (chiều rộng ảnh), nếu là ảnh màu thì Input đầu vào sẽ là một mảng ba chiều với kích thước (chiều cao ảnh) x (chiều rộng ảnh) x (chiều sâu ảnh).

Đối với Kernel, Kernel sẽ có kích thước tuy vào từng mô hình, và có chiều sâu sẽ bằng chiều sâu của Input. Các kích thước của kernel phổ biến là 3x3, 5x5 hoặc 7x7. Quá trình nhân tích chập sẽ diễn ra như sau: Đầu tiên, ma trận Kernel được di chuyền qua từng vị trí trên ma trận của Input đầu vào, theo chiều từ trái sang phải và từ trên xuống dưới. Tại mỗi vị trí của ma trận Kernel được đưa tới, ta thực hiện nhân từng phan tử của Kernel với từng phan tử ở vị trí trong ứng trong vùng ma trận Input được ma trận Kernel đưa tới.

Cuối cùng, tổng tất cả các giá trị sau khi được nhân tương ứng sẽ là kết quả tại vị trí tương ứng cho ma trận đầu ra. Trong quá trình nhân tích chập ta cần chú ý đến hai thông số là Stride và Padding. Kernel sẽ trượt qua ảnh và thực hiện nhân tích chập, với mỗi lần trượt và hoàn thành nhân tích chập sẽ cho ra một kết quả tại vị trí đầu ra Output. Số bước ở mỗi lần trượt được gọi là Stride, thông thường ở lớp tích chập Stride sẽ bằng 1.

Padding sẽ có hai loại là Same Padding và Valid Padding. Đối với Same Padding, sẽ tạo ra các giá trỊ bằng 0 ở rìa của ma trận đầu ra, sao cho ma trận đầu ra sẽ có kích thước không đổi so với ma trận đầu vào. Đối với Valid Padding, ma trận đầu ra sẽ có kích thước là (Input_size — Kernel_size + 1), với Input_ size là kích thước ma trận đầu vào, Kernel_ size là kích thước của ma trận Kernel.2 là ví dụ về nhân tích chap hai với ma trận đầu vào có kích thước 5x5, Kernel có kích thước là 3x3, Stride là 1 và Valid Padding.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Phát triển bộ tăng tốc cho mạng thần kinh tích chập với CGRA linh hoạt" tập trung vào việc nghiên cứu và phát triển các giải pháp tăng tốc hiệu suất cho mạng thần kinh tích chập (CNN) thông qua việc sử dụng kiến trúc mảng cổng lập trình lại linh hoạt (CGRA). Đây là một hướng tiếp cận tiên tiến nhằm tối ưu hóa quá trình xử lý dữ liệu trong các ứng dụng AI, đặc biệt là trong lĩnh vực thị giác máy tính và xử lý hình ảnh. Tài liệu này cung cấp cái nhìn sâu sắc về cách CGRA có thể được tùy chỉnh để đáp ứng các yêu cầu cụ thể của CNN, đồng thời cải thiện hiệu suất và giảm tiêu thụ năng lượng. Đây là nguồn tài liệu hữu ích cho các nhà nghiên cứu và kỹ sư quan tâm đến việc tối ưu hóa phần cứng cho AI.

Để mở rộng kiến thức về các nghiên cứu liên quan đến công nghệ và thuật toán, bạn có thể tham khảo Luận văn thạc sĩ xây dựng thuật toán trích xuất số phách trên phiếu trả lời trắc nghiệm của trường đại học phan thiết, nơi trình bày chi tiết về việc áp dụng thuật toán trong thực tế. Ngoài ra, 2 tóm tắt luận án tiến sĩ tiếng việt ncs nguyễn khắc tấn cung cấp thêm góc nhìn về các nghiên cứu chuyên sâu trong lĩnh vực công nghệ. Cuối cùng, Luận văn đề xuất các giải pháp nhằm nâng cao hiệu quả áp dụng sẽ giúp bạn hiểu rõ hơn về các phương pháp cải thiện hiệu suất trong nghiên cứu khoa học.