Thiết Kế Bộ Tăng Tốc CNN: Khóa Luận Tốt Nghiệp Kỹ Sư Kỹ Thuật Máy Tính

Khóa luận tốt nghiệp nghiên cứu tốt nghiệp kỹ thuật máy tính thiết kế bộ tăng tốc tính toán cnn, vận dụng lý thuyết vào thực tế, đề xuất giải pháp cụ thể cho vấn đề kỹ thuật.

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

2021

72
14
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

3. CHƯƠNG 3: THIẾT KẾ HỆ THỐNG

4. CHƯƠNG 4: THIẾT KẾ CHI TIẾT

4.1. Thiết kế tổng quan

4.2. Thiết kế chi tiết

5. CHƯƠNG 5: MÔ PHỎNG, TỔNG HỢP VÀ ĐÁNH GIÁ KẾT QUẢ

5.1. Mô phỏng pre-synthesis

5.2. Mô phỏng post-synthesis

5.3. Đánh giá kết quả

6. CHƯƠNG 6: ỨNG DỤNG

6.1. Phát hiện ký tự “X” trong Bảng chữ cái

6.2. Nhận diện các số 0-9 trong MNIST

7. CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

7.1. Kết luận

7.2. Khó khăn gặp phải

7.3. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giới thiệu về Thiết Kế Bộ Tăng Tốc CNN trong Kỹ Thuật Máy Tính

Thiết kế bộ tăng tốc CNN (Convolutional Neural Network) đang trở thành một xu hướng quan trọng trong lĩnh vực Kỹ thuật Máy tính. Với sự phát triển nhanh chóng của công nghệ AI và học sâu, việc tối ưu hóa các mô hình CNN để tăng tốc độ xử lý và giảm tiêu thụ năng lượng là rất cần thiết. Khóa luận tốt nghiệp này sẽ trình bày chi tiết về thiết kế bộ tăng tốc CNN, từ lý thuyết đến thực tiễn.

1.1. Tổng quan về Mạng Nơ ron Tích Chập

Mạng nơ-ron tích chập (CNN) là một trong những công nghệ tiên tiến nhất trong lĩnh vực học sâu. CNN được sử dụng rộng rãi trong các ứng dụng như phân loại hình ảnh và nhận diện đối tượng. Việc hiểu rõ cấu trúc và hoạt động của CNN là rất quan trọng để thiết kế bộ tăng tốc hiệu quả.

1.2. Tầm quan trọng của Bộ Tăng Tốc CNN

Bộ tăng tốc CNN giúp cải thiện hiệu suất tính toán và giảm thời gian xử lý. Điều này đặc biệt quan trọng trong các ứng dụng yêu cầu thời gian thực, như nhận diện hình ảnh trong video. Việc tối ưu hóa bộ tăng tốc không chỉ giúp tiết kiệm năng lượng mà còn nâng cao khả năng xử lý của hệ thống.

II. Vấn đề và Thách thức trong Thiết Kế Bộ Tăng Tốc CNN

Mặc dù có nhiều lợi ích, việc thiết kế bộ tăng tốc CNN cũng gặp phải nhiều thách thức. Các vấn đề như tiêu thụ năng lượng, hiệu suất tính toán và khả năng mở rộng là những yếu tố cần được xem xét kỹ lưỡng.

2.1. Tiêu thụ Năng Lượng trong Mạng Nơ ron

Một trong những thách thức lớn nhất là tiêu thụ năng lượng của các mô hình CNN. Việc tối ưu hóa năng lượng không chỉ giúp giảm chi phí vận hành mà còn làm tăng tuổi thọ của thiết bị. Các nghiên cứu cho thấy rằng việc sử dụng FPGA có thể giảm thiểu tiêu thụ năng lượng đáng kể.

2.2. Hiệu suất Tính Toán và Thời Gian Xử Lý

Hiệu suất tính toán là yếu tố quyết định trong việc thiết kế bộ tăng tốc CNN. Các mô hình CNN phức tạp yêu cầu một lượng lớn phép toán, do đó, việc tối ưu hóa thuật toán và phần cứng là rất cần thiết để đạt được thời gian xử lý nhanh nhất.

III. Phương Pháp Thiết Kế Bộ Tăng Tốc CNN Hiệu Quả

Để thiết kế bộ tăng tốc CNN hiệu quả, cần áp dụng các phương pháp tối ưu hóa khác nhau. Các phương pháp này bao gồm tối ưu hóa mô hình, sử dụng phần cứng chuyên dụng và cải tiến thuật toán.

3.1. Tối Ưu Hóa Mô Hình CNN

Tối ưu hóa mô hình CNN bao gồm việc giảm số lượng tham số và cải thiện cấu trúc mạng. Việc này không chỉ giúp giảm thời gian tính toán mà còn nâng cao độ chính xác của mô hình. Các kỹ thuật như pruning và quantization thường được áp dụng.

3.2. Sử Dụng Phần Cứng Chuyên Dụng

Việc sử dụng FPGA hoặc ASIC cho phép tối ưu hóa hiệu suất tính toán của CNN. Các phần cứng này được thiết kế đặc biệt để xử lý các phép toán ma trận, giúp tăng tốc độ xử lý và giảm tiêu thụ năng lượng.

IV. Ứng Dụng Thực Tiễn của Bộ Tăng Tốc CNN

Bộ tăng tốc CNN có nhiều ứng dụng thực tiễn trong các lĩnh vực như nhận diện hình ảnh, phân loại đối tượng và xử lý video. Những ứng dụng này không chỉ giúp cải thiện hiệu suất mà còn mở ra nhiều cơ hội mới trong nghiên cứu và phát triển.

4.1. Nhận Diện Hình Ảnh trong Thực Tế

Ứng dụng nhận diện hình ảnh là một trong những lĩnh vực phát triển mạnh mẽ nhất của CNN. Bộ tăng tốc CNN giúp cải thiện độ chính xác và tốc độ nhận diện, từ đó nâng cao trải nghiệm người dùng trong các ứng dụng như camera thông minh và hệ thống giám sát.

4.2. Phân Loại Đối Tượng trong Video

Phân loại đối tượng trong video là một ứng dụng quan trọng khác của bộ tăng tốc CNN. Việc xử lý video theo thời gian thực yêu cầu một hệ thống mạnh mẽ, và bộ tăng tốc CNN có thể đáp ứng được yêu cầu này, giúp phát hiện và theo dõi đối tượng hiệu quả.

V. Kết Luận và Hướng Phát Triển Tương Lai của Bộ Tăng Tốc CNN

Kết luận, bộ tăng tốc CNN đóng vai trò quan trọng trong việc tối ưu hóa hiệu suất tính toán của các mô hình học sâu. Hướng phát triển tương lai sẽ tập trung vào việc cải tiến công nghệ phần cứng và thuật toán để đáp ứng nhu cầu ngày càng cao trong các ứng dụng thực tiễn.

5.1. Tương Lai của Công Nghệ CNN

Công nghệ CNN sẽ tiếp tục phát triển với sự ra đời của các mô hình mới và cải tiến thuật toán. Việc nghiên cứu và phát triển bộ tăng tốc CNN sẽ giúp nâng cao khả năng xử lý và mở rộng ứng dụng trong nhiều lĩnh vực.

5.2. Thách Thức và Cơ Hội trong Nghiên Cứu

Mặc dù có nhiều cơ hội, nhưng việc nghiên cứu bộ tăng tốc CNN cũng gặp phải nhiều thách thức. Cần có sự hợp tác giữa các nhà nghiên cứu và ngành công nghiệp để phát triển các giải pháp tối ưu và hiệu quả hơn.

10/07/2025
Khóa luận tốt nghiệp kỹ thuật máy tính thiết kế bộ tăng tốc tính toán cnn

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

CHƯƠNG I. GIGI THIỆU TONG QUAN DE TÀI CHUONG 2. CƠ SỞ LÝ THUYET CHƯƠNG 3. THIET KE HE THONG 13 CHUONG 4.

THIET KE CHI TIẾT 14 4.1 Thiết kế tổng quan 14 4.2 Thiết kế chỉ tiết 17 4. Output Layer CHƯƠNG 5. MÔ PHONG, TONG HOP VÀ ĐÁNH GIA KET QUA 35 5.1 M6 phỏng pre-synthesis 35 5. Mô phỏng post-synthesis 48 5.4 _ Đánh giá kết qua 51 CHƯƠNG 6.1 Phát hiện ký tự “X” trong Bang chữ cái 55 6.

Nhận diện các số 0-9 trong MNIST 58 CHƯƠNG 7. KET LUẬN VÀ HƯỚNG PHAT TRIEN ĐÈ TÀI 60 7.2 _ Khó khăn gặp phải 60 7.3 Hướng phát triển 61 TÀI LIỆU THAM KHẢO 62 DANH MỤC HÌNH VẼ Hình 2.1: Cấu trúc mạng nơ ron 4 layer Hình 2.2: Mô hình hệ thống mạng no ron Hình 2.3: Mô hình 4-layer với tham số Hình 2.4: Truyền ngược bằng cách sử dụng hàm Cost function Hình 2.5: Quy trình cho mạng noron và back-propagation Hình 3.1: Thiết kế tổng quan Hình 4.1: Sơ đồ khối mạch mạng nơ ron Hình 4.2: Input Layer Hình 4.5: Pipeline Register Hình 4.6: Hidden Layer 0 và 1 Hình 4.7: Multiply and accumulate circuit ForwardMaccum Hình 4.8: Multiply and accumulate circuit BackwardMaccum Hình 4.9: Activation function circuit Hinh 4.10: Error back propagation circuit Hinh 4.11: Load / bias circuit Hinh 4.12: Output Layer Hinh 5.1: Quy trình mô phỏng và cách đánh giá Hinh 5.2: Sơ đồ khối mạng nơ ron Testbench Hinh 5.7: Valid signal and Ready signal (learning mode).8: Valid signal and Ready signal (inference mode / normal mode).9: Valid signal and Ready signal (inference mode / burst mode).10: Pipeline hệ thống Hình 5.11: Pipeline ForwardMaccum Hình 5.12: Kết qua mô phỏng post-synthesis 1 48 Hình 5.13: Kết quả mô phỏng post-synthesis 2 49 Hình 5.14: Thiết kế của nhóm Bi Hình 5.15: Thiết kế của đề tài [15] 51 Hình 6.1: Hình biểu điễn chữ cái alphabet 9x9 55 Hình 6.2: Hình chữ số 0 viết tay 58 Hình 6.3: Hình chữ viết tay sau khi đã được chuyền sang ma trận 58 Hình 6.4: Tài nguyên và độ trễ của mạch 59 Hình 6.5: Năng lượng sử dụng của mạch 59 Hình 7.1: Mô hình hệ thống sử dụng thuật toán YOLO lên mang CNN [16] 61 DANH MỤC BANG Bảng 2.1: Mô ta chức năng của từng ký hiệu Bảng 4.1: Mô tả tín hiệu khối Input Layer 17 Bảng 4.2: Mô tả tín hiệu khối Broadcaster 18 Bảng 4.3: Mô tả tín hiệu khối Hidden Layer 21 Bảng 4.4: Mô tả tín hiệu khối Forward Maccum của Hidden Layer Bảng 4.5: Mô tả tín hiệu khối Backward Maccum 25 Bảng 4.6: Mô tả tín hiệu khối Neuron (ReLU) của Hidden Layer 26 Bảng 4.7: Mô tả tín hiệu khối Delta của Hidden Layer 28 Bảng 4.8: Mô tả tín hiệu khối Bias Weight của Hidden Layer 31 Bảng 4.9: Mô tả tín hiệu khối Output Layer 33 Bảng 4.10: Mô tả tín hiệu khối ForwardMaccum của Output Layer Bảng 4.11: Mô tả tín hiệu khối Neuron của Output Layer 33 Bảng 4.12: Mô tả tín hiệu khối Delta của Output Layer 33 Bảng 4.13: Mô tả tín hiệu khối BiasWeight của Output Layer 34 Bảng 5.1: Một số trường hợp thử nghiệm trong chế độ TEST / không có BURST.2: Kết quả tổng hợp logic 44 Bảng 5.3: Một số trường hợp Test case post-synthesis 50 Bảng 5.4: Kết quả sai số 52 Bảng 5.5: Tài nguyên sử dụng 53 Bang 6.1: Kết qua Training chữ "X" 56 Bảng 6.2: Kết quả phát hiện chữ "X" 57 DANH MỤC TU VIET TAT Các từ viết tắt Các từ viết đầy đủ CNN Convolutional Neural Network NI Number of neurons in the input layer NHO Number of neurons in hidden layer 0 NHI Number of neurons in hidden layer 1 NO Number of neurons in the output layer WV Bit width of neuron output value TÓM TẮT KHÓA LUẬN Trong khoá luận này, nhóm đề xuất kiến trúc thiết kế mạng nơ ron tích chập trên FPGA. Trong đó, mạng sử dụng trọng số đã được huấn luyện bằng chính chức năng Backward Function của mạch để nạp vào hệ thống. Kiến trúc mạng nơ ron tích chập có thể thay đổi được các thông số đầu vào từ đó có thể điều chỉnh luôn cả phần cứng tùy thuộc vào nhu cầu của mỗi bài toán, và sau đó tự động tạo mã Verilog HDL cho mạng đó.

Cuối cùng, mang sẽ được tổng hợp và nạp trên Virtex7 FPGA board. Bên trong kiến trúc, nhóm sử dụng kiểu dữ liệu là số nguyên. Thiết kế của nhóm đã thử nghiệm trên một thiết kế mạng bốn lớp, trên tập dữ liệu chữ sé viết tay MNIST. Kết quả sẽ được đánh giá theo hai tiêu chí: ¢ Tinh chính xác của thuật toán: Kết quả sẽ được đánh giá dựa vào kết quả tính toán của mạch (hardware) và so sánh với kết quả dựa trên mô hình cơ sở lý thuyết (software).

¢ Tai nguyên phan cứng: Việc đánh giá các thông số này sẽ được thực hiện trên phần mêm tool vivado của Xilinx. MỞ ĐÀU Hiện nay, các mạng nơ ron tích chập đang được sử dụng rộng rãi trong các ứng dụng liên quan đến thị giác máy tính, AI,. Da số các mạng nơ ron tích chập đều được thiết kế để triển khai trên CPU, GPU và Server. Đối với dữ liệu thu thập từ camera, các ứng dụng thường sẽ được triển khai theo mô hình xử lý tập trung tại Server, từ đó, gây ra các trường hợp tắc nghẽn Server nếu dữ liệu cần được xử lý cùng lúc quá lớn.

Ngoài ra, quá trình truyền dữ liệu từ Client sang Server và ngược lại khiến cho dữ liệu không đáp ứng được thời gian thực. Do đó, dé khắc phục những nhược điểm đó, nhóm mong muốn hiện thực mạng nơ ron tích chập trên FPGA, và xem nó như một end-device, dữ liệu đưa vào và trả về ngay tại Client, không thông qua quá trình truyền dữ liệu nào khác. Hiện nay, các phương pháp đã được nghiên cứu liên quan đến đề tài thường chỉ triển khai một phần của mạng nơ ron tích chập. Chính vì vậy, mục tiêu của khoá luận được đề ra là thiết kế mạng nơ ron tích chập có khả năng tăng tốc tính toán, sử dụng kiểu dữ liệu số nguyên và hiện thực đầy đủ các lớp cơ bản của mạng nơ ron tích chập.

Các phần tiếp theo của khóa luận sẽ được tô chức như sau: © Chương | trình bày về tông quan đề tài, tính cấp thiết của dé tài cũng như là nghiên cứu nồi bậc liên quan đến đề tài của nhóm. © Chương 2 giới thiệu cơ bản về cơ sở lý thuyết của mạng no ron tích chập cũng như là các thành phần bên trong nó. © Chương 3 đưa ra thiết kế tổng quan của hệ thống, mô tả cơ bản về cách hệ thống hoạt động. © - Chương 4 tập trung đi sâu vào thiết kế chỉ tiết các thành phan trong thiết kế hệ thống.

© _ Chương 5 cho biết quy trình dé chạy kết quả mô phỏng của mạch, kết quả tổng hợp logic và đánh giá kết quả đề tài dựa trên sự so sánh với 1 vài nghiên cứu khác. Chương6 liệt kê một vài ứng dụng mà nhóm đã thực hiện trong quá trình làm thực hiện đề tài. Chương 7 tông kết, đưa ra kết luận, những khó khăn gặp phải và hướng phát triển tiếp theo của đề tài. GIỚI THIỆU TONG QUAN DE TÀI Trong những năm gan đây, mạng no ron tích chập (CNNs) đã đạt được những thành tưu to lớn trong các ứng dụng thị giác máy tính như phân loại hình ảnh [1], phát hiện đối tượng [2] và nhận diện gương mặt [3].

CNNs đã áp dung chủ yếu trên ảnh 2D dé tự động trích xuất các đặc điểm không gian và đã nâng cao đáng kê độ chính xác sự phân loại hình ảnh. CNNs yêu cầu 1 lượng lớn bộ nhớ vì có hàng triệu tham số trong 1 CNNs điền hình. Trong khi đó, việc tính toán CNN với hơn hàng tỉ phép toán để chỉ để suy luận một đầu vào. Ví dụ, VGG16 [4], một CNN 2D nhận diện hình ảnh với 16-layer cần khoảng 31 GOp/s (Giga Operation per second) để nhận diện.

Do đó, các chương trình tính toán CNN thường được chạy trên 1 server bao gồm rất nhiều CPU va GPU. Hơn nữa, với Deeplearning framework tương thích bao gồm như Caffe [5], Theano [6], and TensorFlow [7]. việc training va testing trên CNNs trở nên hiệu quả hon trên những nền tang nay. Trong khi những CPU và GPU là những nền tảng quan trọng đối với CNNs, việc tối ưu bộ tính tính toán đề có hiệu suất tốt hơn và năng lượng tiêu hao tốt hơn là vấn đề cần được quan tâm.

Ví dụ, trường hợp hệ thống nhúng cho xe ô tô điều khién tự động và rô bot, năng liệu tiêu hao ít là rất cần thiết dé có thé áp dụng được CNN. Nhờ những lợi thế về hiệu suất cao, tiết kiệm năng lượng và sự linh hoạt FPGA đã được xem như là nền tang dé tăng tốc CNNs. Như đã báo cáo trong các cuộc khảo sát gần đây [8,9], nhiều bộ tăng tốc CNN dựa trên FPGA đã được sử dụng cho CNN 2D và nhiều công cụ hỗ trợ cho việc ánh xạ CNN 2D trên FPGA đã được làm ra. Hướng tiếp cận nay đã chứng minh rằng nó chỉ hiệu quả với các tích chập 11x11, 7x7 và kém hiệu quả hơn đối với tích chập 3x3, 1x1.

Một số thiết kế bộ gia tốc tinh toán tích chập 2D bằng cách giảm số lượng tính toán như thuật toán Winograd [11], và thiết kế [12] còn mở rộng ra đối với tích chập 3D. Tuy nhiên, thuật toán Winograd rất nhạy cảm đối với các kernel tích chập. Đối với các kernel tích chập với kích thước khác nhau thì cần sử dụng những ma trận khác nhau. Do đó thuật toán Winograd hoàn toàn phù hợp mô hình CNN với các kernel có —<$—$ 4 kích thước tích chập đồng nhất như VGG trong khi nó lại không phù hợp với mô hình CNN với các kernel có nhiều kích thước tích chập như AlexNet.

Một cách tiếp cận khác là ánh xạ CNN vào các ma trận như việc triển khai CPU và GPU [13.14] áp dụng cách tiếp cận này vào trong thiết kế bộ gia tốc tính toán CNN trên FPGA sử dụng OpenCL framework. Mối quan tâm chính ở đây là nó tạo nên độ sao chép các thuộc tính đầu vào có thé dẫn đến sự kém hiệu quả trong việc lưu trữ cũng như việc truy cập các kiến trúc bộ nhớ phức tạp. Đặc biệt, Weight Matrix và feature Matrix đều được mở rộng ra bởi kernel 3D convolution, điều này làm tăng đáng kể yêu cầu bộ nhớ. Một layer tích chập với 1 lượng lớn kênh đầu vào sẽ được chia thành nhiều layer tích chập với kênh đầu vào ít hơn.

Thách thức ở đây là làm sao đề tính toán các phép nhân ma trận hiệu quả trên FPGA. Sự khác nhau với tính toán dựa trên OpenCL framework [13,14], việc ứng dụng mảng 2D MAC cho việc nhân các ma trận.

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

Tài liệu "Thiết Kế Bộ Tăng Tốc CNN: Khóa Luận Tốt Nghiệp Kỹ Sư Kỹ Thuật Máy Tính" cung cấp cái nhìn sâu sắc về việc thiết kế và tối ưu hóa bộ tăng tốc cho mạng nơron tích chập (CNN), một công nghệ quan trọng trong lĩnh vực nhận dạng hình ảnh và học sâu. Tác giả không chỉ trình bày các nguyên lý cơ bản mà còn đi vào chi tiết về các kỹ thuật và công cụ cần thiết để phát triển một bộ tăng tốc hiệu quả. Độc giả sẽ tìm thấy những lợi ích thiết thực từ việc áp dụng các phương pháp này, giúp cải thiện hiệu suất và tốc độ xử lý của các ứng dụng AI.

Để mở rộng kiến thức của bạn về lĩnh vực này, bạn có thể tham khảo thêm tài liệu Triển khai mạng nơron tích chập trên nền tảng fpga và ứng dụng trong nhận dạng ảnh, nơi bạn sẽ tìm hiểu về cách triển khai mạng nơron trên FPGA cho nhận dạng hình ảnh. Ngoài ra, tài liệu Khóa luận tốt nghiệp kỹ thuật máy tính nhận diện làn đường bằng phần cứng ai trên fpga sẽ cung cấp cho bạn cái nhìn về ứng dụng AI trong nhận diện làn đường, một lĩnh vực có liên quan mật thiết đến thiết kế bộ tăng tốc CNN. Cuối cùng, tài liệu Nghiên cứu một số đặc tính của các mạng nơ ron nhân tạo nhằm tạo ra các mẫu đối nghịch để kiểm tra độ tin cậy của một số mô hình nhận dạng sẽ giúp bạn hiểu rõ hơn về các đặc tính của mạng nơron và cách kiểm tra độ tin cậy của các mô hình nhận dạng. Những tài liệu này sẽ là nguồn tài nguyên quý giá để bạn khám phá sâu hơn về công nghệ và ứng dụng của mạng nơron trong thực tiễn.