Bối cảnh và vấn đề nghiên cứu

Trong xu thế phát triển của cuộc Cách mạng Công nghiệp 4.0, Học sâu (Deep Learning) và Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) đã trở thành công cụ nền tảng cho nhiều ứng dụng thực tế như nhận dạng đối tượng, thị giác máy tính và hệ thống xe tự hành. Để đáp ứng nhu cầu tính toán ngày càng lớn của các mô hình học máy, các nhà sản xuất bán dẫn đã phát triển các vi mạch chuyên dụng (AI chips) phục vụ cho các cấu trúc mạng như YOLO, GoogLeNet, VGG-16.

Tuy nhiên, hầu hết các vi mạch AI thương mại hiện nay chỉ tập trung triển khai phần cứng cho quá trình lan truyền xuôi (Feed-forward) nhằm mục đích suy luận/kiểm thử (Testing/Inference), trong khi toàn bộ quá trình huấn luyện và cập nhật trọng số (Training) vẫn phải thực hiện trên hệ thống máy chủ đám mây (Cloud). Sự phụ thuộc này dẫn đến sự gia tăng mạnh mẽ về chi phí đầu tư máy chủ, trung tâm dữ liệu và vi mạch truyền thông mạng Ethernet khi khối lượng dữ liệu huấn luyện mở rộng quy mô. Nhằm giảm tải áp lực hạ tầng máy chủ và tối ưu hóa chi phí sản xuất, việc hiện thực hóa một khối phần cứng sở hữu trí tuệ (IP Core) có khả năng thực hiện cả hai chế độ học (Learning) và kiểm thử (Testing) trực tiếp trên chip là một yêu cầu kỹ thuật cấp thiết.

Khóa luận tốt nghiệp ngành Kỹ thuật Máy tính của tác giả Lê Minh Phúc và Bùi Hữu Trí (Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP.HCM, thực hiện năm 2021 dưới sự hướng dẫn của TS. Lâm Đức Khải) đặt ra hai nhiệm vụ nghiên cứu chính:

  1. Thiết kế mô hình CNN trên phần cứng có khả năng thực thi đồng thời cả hai chế độ học (Learning) và kiểm thử thời gian thực (Testing). Hệ thống bao gồm cấu trúc Feed-forward (cho kiểm thử và một phần quá trình học) và cấu trúc Backpropagation (cho việc cập nhật tham số) tương thích nhau, hoạt động với định dạng số thực dấu chấm động 32-bit (Floating-point) và được thực nghiệm với tập dữ liệu chữ số viết tay MNIST.
  2. Thiết kế mô hình mạng VGG-16 trên phần cứng phục vụ nhận diện thời gian thực với hiệu năng và độ chính xác cao. Mục tiêu này áp dụng phương pháp lượng tử hóa (Quantization) để chuyển đổi tính toán sang dạng số nguyên 8-bit (8-bit integer), giúp tiết kiệm diện tích tài nguyên vi mạch và gia tăng tốc độ xử lý.

Đối tượng nghiên cứu của đề tài là kiến trúc phần cứng CNN Datapath IP và VGG-16 Quantized IP. Phạm vi nghiên cứu tập trung vào việc thiết kế ở mức truyền thanh ghi (RTL - Register-transfer Level), kiểm tra tính đúng đắn chức năng thông qua mô phỏng dạng sóng (Waveform simulation) trên ModelSim SE và hiện thực, tổng hợp tài nguyên phần cứng trên công cụ Xilinx Vivado 2020.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình toán học

Khóa luận xây dựng trên các nền tảng toán học và cấu trúc xử lý của mạng nơ-ron nhân tạo:

  • Thuật toán Lan truyền xuôi (Feed-forward): Giá trị đầu vào của mỗi nơ-ron được tính theo công thức tích lũy tuyến tính: $$\text{val} = \sum w_i x_i + b$$ với $w_i$ là trọng số, $x_i$ là tín hiệu đầu vào và $b$ ($w_0$) là trọng số định thiên (bias weight).
  • Phép toán Tích chập (Convolution): Trích xuất đặc trưng hình ảnh qua ma trận bộ lọc (Kernel matrix $K$) kích thước $K \times K$ ($K$ là số lẻ) trượt trên ma trận ảnh đầu vào $A$: $$y_{ij} = \text{sum}(A \odot K)$$ Khóa luận khảo sát ba phương thức đệm (Padding): Valid padding (không đệm, kích thước đầu ra bằng $\text{width}{\text{in}} - \text{width}{\text{kernel}} + 1$), Same padding (đầu ra bằng kích thước đầu vào), và Full padding (kích thước đầu ra bằng $\text{width}{\text{in}} + \text{width}{\text{kernel}} - 1$).
  • Tầng gộp (Pooling Layer): Giảm số lượng tham số và kích thước bản đồ đặc trưng (Sub-sampling/Down-sampling) gồm Max Pooling, Average Pooling và Sum Pooling.
  • Hàm kích hoạt (Activation Functions):
    • Hàm Sigmoid: $\sigma(z) = \frac{1}{1 + e^{-z}}$, đạo hàm $\sigma'(z) = \sigma(z)(1 - \sigma(z))$.
    • Hàm Tanh: $\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}$, đạo hàm $\tanh'(x) = 1 - \tanh^2(x)$.
    • Hàm ReLU: $f(x) = \max(0, x)$, đạo hàm $f'(x) = 1$ khi $x > 0$ và bằng $0$ khi $x \le 0$.
    • Hàm Softmax: $S_i = \frac{e^{z_i}}{\sum e^{z_j}}$, dùng tính toán phân phối xác suất phân lớp ở tầng cuối.
  • Hàm mất mát và Lan truyền ngược (Loss Function & Backpropagation): Sử dụng hàm mất mát Cross-Entropy kết hợp Softmax với đạo hàm sai số phục vụ cập nhật trọng số là: $$\frac{\partial E}{\partial z_k} = q(k) - p(k)$$ trong đó $q(k)$ là xác suất tính toán của mạng và $p(k)$ là nhãn mong muốn (One-hot format). Đối với các tầng tích chập và gộp, thuật toán tính toán ma trận mask vị trí cực đại trong quá trình Max Pooling để ánh xạ đạo hàm ngược trở lại.
  • Thuật toán lượng tử hóa (Quantization): Chuyển đổi dữ liệu dấu chấm động 32-bit sang số nguyên 8-bit theo công thức: $$Y_q = \text{round}\left(\frac{a}{q_y}\right)$$ với $Y_q$ là giá trị sau lượng tử hóa, $a$ là giá trị trước lượng tử hóa và $q_y$ là hệ số tỉ lệ (Scale).

Phương pháp nghiên cứu và thực nghiệm

  • Thiết kế phần cứng: Xây dựng các khối chức năng bằng ngôn ngữ mô tả phần cứng (Verilog HDL), thiết kế kiến trúc đường dữ liệu (Datapath), tối ưu hóa đường ống (Pipelining) và bộ đệm dòng (Line-buffer) nhằm giảm thiểu độ trễ tính toán.
  • Phương pháp xấp xỉ chuỗi Taylor: Hiện thực hàm số mũ ($e^x$) cho khối Softmax bằng chuỗi khai triển Taylor kết hợp bộ chuẩn hóa (Scaling) đầu vào về miền $[-1, 1]$.
  • Mô phỏng và kiểm tra tính đúng: Sử dụng phần mềm ModelSim SE để chạy mô phỏng hành vi (Behavioral simulation), gỡ lỗi dạng sóng (Waveform debugging) và đối sánh độ chính xác với mô hình tính toán trên MATLAB.
  • Tổng hợp và đánh giá tài nguyên phần cứng: Sử dụng phần mềm Xilinx Vivado 2020 để tổng hợp mạch, kiểm tra độ tiêu thụ tài nguyên Look-Up Table (LUT), Flip-Flop (FF), bộ nhớ khối BRAM, bộ xử lý DSP và tần số hoạt động tối đa ($F_{\max}$).

Nguồn dữ liệu sử dụng

  • Tập dữ liệu MNIST: Tập dữ liệu chuẩn gồm ảnh chữ số viết tay đen trắng chuẩn hóa kích thước $28 \times 28$ pixel, chia làm 10 lớp (từ chữ số 0 đến 9), dùng để huấn luyện và kiểm thử mô hình CNN Datapath IP.
  • Tập dữ liệu Rock-Paper-Scissors: Dữ liệu hình ảnh nhận diện cử chỉ tay (oẳn tù tì).
  • Mô hình VGG-16: Kiến trúc mạng nơ-ron sâu 16 tầng (13 tầng tích chập, 3 tầng kết nối đầy đủ) được công bố bởi nhóm nghiên cứu Visual Geometry Group (Đại học Oxford) trên tập dữ liệu chuẩn ImageNet.

Thiết kế và triển khai hệ thống phần cứng

1. Kiến trúc tổng thể CNN Datapath IP

Khối CNN Datapath IP được thiết kế để hoạt động với hệ thống đồng hồ đơn (Single clock), tín hiệu đồng bộ valid_in, và hai tín hiệu reset bất đồng bộ tích cực mức thấp (rst_n reset toàn hệ thống; rst_backprop reset trạng thái tính toán nhưng giữ nguyên bộ nhớ tham số).

Hệ thống có hai chế độ hoạt động chính được điều khiển qua chân en_update:

  • Chế độ kiểm thử (Testing mode - en_update = 0): Chỉ kích hoạt nhánh Feed-forward để xử lý suy luận thời gian thực với độ trễ thấp; nhánh Backpropagation được ngắt hoàn toàn nhằm tiết kiệm năng lượng.
  • Chế độ học (Learning mode - en_update = 1): Kích hoạt tuần tự cả nhánh Feed-forward để tạo đầu ra dự đoán và nhánh Backpropagation để tính toán sai số, sau đó cập nhật trực tiếp trọng số và kernel vào bộ nhớ tham số.
Tên cổng tín hiệu Độ rộng (bit) Hướng Chức năng mô tả
clk 1 Input Tín hiệu xung nhịp đồng hồ hệ thống
rst_n 1 Input Tín hiệu reset bất đồng bộ toàn hệ thống (Active-low)
rst_backprop 1 Input Tín hiệu reset bất đồng bộ nhánh học (giữ nguyên RAM tham số)
en_update 1 Input Chọn chế độ: Mức cao (Learning mode), Mức thấp (Testing mode)
pixel_in 8 Input Dữ liệu điểm ảnh đầu vào (Image pixel)
valid_in 1 Input Tín hiệu báo dữ liệu pixel_in hợp lệ
kernel_in $4 \times 32$ Input Giá trị kernel khởi tạo ban đầu
weight_in $10 \times 32$ Input Giá trị trọng số khởi tạo ban đầu
load_kernel 1 Input Tín hiệu nạp kernel ban đầu vào bộ nhớ tham số
load_weight 1 Input Tín hiệu nạp trọng số ban đầu vào bộ nhớ tham số
label_in 10 Input Nhãn đầu vào dạng mã hóa One-hot (ví dụ: 10_0000_0000 là lớp 0)
predict 4 Output Kết quả nhãn dự đoán của mạng
valid_out_forward 1 Output Tín hiệu báo kết quả dự đoán predict hợp lệ
done_backprop 1 Output Tín hiệu báo hoàn thành một chu kỳ cập nhật lan truyền ngược

2. Các phân vùng chức năng trong nhánh Feed-forward

  • Khối Tích chập (Convolve Module): Thiết kế cho bộ lọc kích thước $3 \times 3$. Khối sử dụng 2 bộ đệm dòng (Double Line-buffers) để xây dựng cửa sổ trượt (Sliding window) với độ trễ từ lúc nhập dữ liệu đến khi xuất ra khỏi bộ đệm là $\text{WIDTH} \times 2 + 2$ chu kỳ. Mạch nhân-tích lũy (MAC) sử dụng cây cộng số thực và bộ nhân số thực dấu chấm động tối ưu hóa đường ống hoàn toàn, chỉ mất 6 chu kỳ tính toán (so với 47 chu kỳ của tài liệu tham chiếu [1]). Tổng độ trễ để xuất pixel tích chập đầu tiên của ảnh kích thước $28 \times 28$ chỉ mất 93 chu kỳ xung nhịp (so với 121 chu kỳ ở [1]).
  • Khối ReLU (ReLU Module): Hiện thực bằng mạch dồn kênh (MUX 32-bit) đơn giản: nếu bit dấu âm thì xuất giá trị 0, nếu dương thì truyền thẳng dữ liệu đầu vào. Tín hiệu valid_out được nối tắt trực tiếp từ valid_in không phát sinh độ trễ chu kỳ.
  • Khối Max Pooling (Max Pooling Module): Sử dụng một bộ đệm dòng đơn (Single line-buffer) cho cửa sổ trượt $2 \times 2$ cùng mạch phát hiện bước nhảy (Stride detection) bằng các bộ đếm. Bộ so sánh 4 giá trị đầu vào gồm 3 tầng pipeline (trễ 3 chu kỳ) nhằm tăng tần số hoạt động. Khối này đồng thời trích xuất tín hiệu mask_out (4-bit) lưu vết vị trí phần tử cực đại để cung cấp cho quá trình Backpropagation.
  • Khối Flatten Perceptron: Là một nơ-ron trong tầng kết nối đầy đủ (Fully Connected Layer). Khối nhận dữ liệu từ tầng trước, thực hiện nhân với trọng số lấy từ bộ nhớ tham số, đẩy vào bộ đệm và đưa qua cây cộng số thực (Adder tree). Quá trình nhân mất 6 chu kỳ và cây cộng mất 28 chu kỳ xung nhịp.
  • Khối Softmax Khả tổng hợp (Synthesizable Softmax Module): Hoạt động trong chế độ học (Learning mode). Để vượt qua hạn chế của các hàm số mũ phần mềm không thể tổng hợp trên FPGA, nhóm tác giả thiết kế:
    1. Khối Scaling: Chuẩn hóa miền giá trị đầu vào về đoạn $[-1, 1]$.
    2. Khối Exponential: Tính toán hàm mũ dựa trên chuỗi khai triển Taylor bằng các bộ nhân và cộng số thực dấu chấm động kết hợp bộ nhớ chứa tham số Taylor.
    3. Khối Sum & Division: Tính tổng các giá trị hàm mũ và thực hiện phép chia dấu chấm động (Floating-point Division) để tạo xác suất đầu ra cho từng lớp.

3. Các phân vùng chức năng trong nhánh Lan truyền ngược (Backpropagation)

  • Khối CFED (Calculate FC Error and Delta): Tính giá trị delta của tầng kết nối đầy đủ bằng cách lấy đầu ra Softmax trừ đi nhãn label_in (mất 7 chu kỳ với bộ trừ dấu chấm động song song). Sau đó, khối MAC thực hiện nhân vector delta với trọng số hiện tại để tính sai số lan truyền về tầng trước (mất tổng cộng 34 chu kỳ gồm 6 chu kỳ nhân và 28 chu kỳ cộng).
  • Khối CDCP (Calculate Delta Conv-Pooling): Tính toán delta lan truyền ngược từ tầng Pooling về tầng Convolve. Thay vì dùng các bộ nhân số thực dấu chấm động tốn kém tài nguyên, khối thực hiện phép nhân dữ liệu sai số với ma trận mask (chỉ gồm các giá trị logic 0 và 1) thông qua hệ thống các cổng logic AND thuần túy. Thiết kế này giúp mạch chỉ tốn đúng 1 chu kỳ trễ để xuất kết quả và tiết kiệm đáng kể diện tích vi mạch.
  • Khối CECC (Calculate Error Conv-Conv): Đảm nhiệm việc tính sai số giữa hai tầng tích chập liên tiếp bằng giải thuật "Full-padding Convolve". Thay vì sử dụng bộ nhớ mở rộng chứa các lớp đệm số 0 gây lãng phí RAM, kiến trúc sử dụng một bộ nhớ khung (Frame memory) kích thước thực kết hợp với bộ tính toán địa chỉ (Address Calculator) và bộ đệm dịch (Buffer and Shifter - BAS). Bộ tính toán địa chỉ điều hướng cửa sổ trượt, các vị trí nằm ngoài vùng ảnh thực sẽ được bộ dịch gán giá trị bằng 0. Độ trễ cực đại của khối CECC cho dữ liệu đầu vào kích thước $26 \times 26$ là 182 chu kỳ xung nhịp.
  • Khối Cập nhật tham số (Update Weight & Update Kernel): Thực hiện trừ giá trị trọng số/kernel cũ cho tích của hệ số học (learning rate) với giá trị đạo hàm tương ứng để ghi đè vào RAM tham số.

Nội dung chính theo từng chương

Chapter 1: Introduction and Project's Goal

Chương 1 trình bày tổng quan về sự phát triển của công nghệ trí tuệ nhân tạo và vai trò của mạng nơ-ron tích chập trong xử lý ảnh. Tác giả chỉ ra nhược điểm của các dòng chip AI hiện tại khi tách rời việc suy luận trên biên (Edge) và việc huấn luyện trên đám mây (Cloud), dẫn đến gánh nặng chi phí hạ tầng mạng và máy chủ. Chương này xác định rõ 2 mục tiêu cốt lõi: thiết kế IP CNN có khả năng vừa học vừa kiểm thử bằng tính toán số thực dấu chấm động 32-bit trên tập MNIST, và thiết kế IP VGG-16 tối ưu phần cứng bằng phương pháp lượng tử hóa số nguyên 8-bit.

Chapter 2: Theoretical Background

Chương 2 hệ thống hóa cơ sở lý thuyết toán học và kiến trúc học sâu:

  • Nguyên lý hoạt động của nơ-ron sinh học và mô hình nơ-ron nhân tạo, thuật toán Feed-forward.
  • Chi tiết cấu trúc mạng CNN, phép tích chập, các kiểu Padding (Valid, Same, Full), bước trượt (Stride), các cơ chế Pooling và tầng Fully Connected.
  • Khảo sát các hàm kích hoạt (Sigmoid, Tanh, ReLU, Softmax) kèm ưu/nhược điểm (hiện tượng bão hòa đạo hàm, hiện tượng Dying ReLU).
  • Cơ chế toán học của thuật toán lan truyền ngược (Backpropagation) cho cả tầng kết nối đầy đủ và tầng tích chập, phương pháp tạo ma trận mask phục vụ khôi phục kích thước đạo hàm qua tầng Max Pooling.
  • Cấu trúc mạng VGG-16 chuẩn gồm 13 tầng tích chập và 3 tầng kết nối đầy đủ.
  • Giới thiệu tập dữ liệu chuẩn MNIST (nguồn gốc từ cơ quan điều tra dân số và học sinh trung học Hoa Kỳ, chuẩn hóa về $28 \times 28$ pixel).
  • Cơ sở giải thuật lượng tử hóa và các công cụ phát triển phần cứng (ModelSim SE, Xilinx Vivado 2020).

Chapter 3: System Architecture Design and Implementation

Chương 3 là trọng tâm kỹ thuật của khóa luận, mô tả chi tiết thiết kế phần cứng:

  • Định nghĩa sơ đồ khối, giao tiếp tín hiệu I/O và nguyên lý hoạt động của CNN Datapath IP trong hai chế độ Testing và Learning.
  • Thiết kế chi tiết từng khối phần cứng trong nhánh Feed-forward: khối Convolve (tối ưu đường ống nhân 6 chu kỳ, cộng 7 chu kỳ), khối ReLU (MUX logic), khối Max Pooling (bộ so sánh 3 tầng pipeline kèm mạch sinh mask), khối Flatten Perceptron (bộ đệm hàng đợi và cây cộng), và khối Softmax khả tổng hợp (chuỗi Taylor, bộ chuẩn hóa Scaling, bộ chia số thực dấu chấm động).
  • Thiết kế chi tiết từng khối phần cứng trong nhánh Backpropagation: khối CFED (tính delta và sai số tầng FC), khối CDCP (tối ưu phép nhân mask bằng cổng logic AND), khối CECC (tính sai số tích chập Full-padding bằng Address Calculator và BAS mà không cần RAM đệm).
  • Thiết kế các module số học dấu chấm động 32-bit (bộ cộng, bộ nhân, bộ chia, bộ tính hàm mũ).
  • Thiết kế kiến trúc VGG-16 lượng tử hóa 8-bit (Quantization module, khối bộ nhớ Mem block, tín hiệu điều khiển).
  • Xây dựng môi trường kiểm thử Testbench và quy trình mô phỏng kiểm tra tính đúng đắn của thiết kế.

Chapter 4: Conclusion and Development Directions

Chương 4 tổng kết kết quả thực nghiệm, đánh giá hiệu năng và phân tích tài nguyên phần cứng:

  • Trình bày dạng sóng mô phỏng (Waveform) của CNN Datapath IP và VGG-16.
  • Đánh giá độ chính xác nhận diện qua từng epoch huấn luyện (bắt đầu từ epoch 0, epoch 12, epoch 24).
  • Đo đạc sai số tính toán giữa phần cứng RTL và mô hình toán học MATLAB của các khối (Convolve, Pooling, FC, Softmax, CFED, CECC, CDCP, Update weight/kernel).
  • Tổng hợp tài nguyên phần cứng triển khai trên FPGA và đối sánh định lượng với các nghiên cứu trước ([1] và [2]).
  • Đánh giá các mục tiêu đã đạt được, phân tích hạn chế kỹ thuật và đề xuất hướng mở rộng nghiên cứu.

Kết quả và đóng góp

1. Kết quả thực nghiệm và đối sánh hiệu năng

Thiết kế phần cứng của khóa luận đạt được các chỉ số hiệu năng và tối ưu hóa tài nguyên vượt trội khi so sánh với công trình nghiên cứu đối sánh [1] trên cùng cấu trúc mạng:

Tiêu chí so sánh Nghiên cứu đối sánh [1] Khóa luận này Mức độ cải thiện
Độ trễ toàn nhánh Feed-forward 1156 chu kỳ 968 chu kỳ Giảm 16.26% độ trễ
Tần số hoạt động cực đại ($F_{\max}$) 166.xx MHz 201.694 MHz Tăng 21.0% tốc độ xung nhịp
Tiêu thụ tài nguyên logic (LUT) Cơ sở (100%) Giảm 18.24% Tiết kiệm 18.24% diện tích LUT
Độ trễ bộ nhân dấu chấm động 47 chu kỳ 6 chu kỳ Nhanh hơn 7.83 lần
Độ trễ xuất pixel đầu (Khối Convolve $28 \times 28$) 121 chu kỳ 93 chu kỳ Giảm 23.14% độ trễ khởi tạo
Khả năng tổng hợp khối Softmax Chỉ mô phỏng (Dùng hàm Verilog) Tổng hợp được trên phần cứng Chuỗi Taylor + Bộ chia FP
Khả năng huấn luyện trên phần cứng Không hỗ trợ (Chạy qua Keras) Hỗ trợ đầy đủ Backpropagation Tích hợp nhánh tính toán ngược

2. Các đóng góp kỹ thuật chính

  • Kiến trúc tích hợp hai chế độ (Dual-mode Datapath): Hiện thực thành công trên cùng một IP Core khả năng suy luận thời gian thực (Testing mode) và khả năng cập nhật trọng số trực tiếp trên phần cứng (Learning mode) sử dụng định dạng số thực dấu chấm động 32-bit.
  • Tối ưu hóa tài nguyên cho phép tính lan truyền ngược:
    • Thay thế toàn bộ các bộ nhân số thực dấu chấm động trong khối CDCP bằng hệ thống cổng logic AND dựa trên ma trận mask 1-bit, giúp tiết kiệm lớn diện tích vi mạch và giảm độ trễ xuống còn 1 chu kỳ.
    • Sáng tạo cơ chế tính toán địa chỉ (Address Calculator) kết hợp bộ đệm dịch (BAS) trong khối CECC để thực hiện phép tích chập Full-padding trên bộ nhớ khung thực mà không cần cấp phát thêm các ô nhớ đệm số 0.
  • Hiện thực hóa khối Softmax và hàm mũ khả tổng hợp: Thiết kế thành công kiến trúc phần cứng cho hàm Softmax thông qua chuỗi khai triển Taylor và bộ chuẩn hóa tỉ lệ, giải quyết triệt để vấn đề phụ thuộc vào các hàm thư viện mô phỏng không tổng hợp được.
  • Hiện thực mô hình VGG-16 lượng tử hóa 8-bit: Đề xuất và triển khai kiến trúc VGG-16 sử dụng hoàn toàn các phép toán số nguyên 8-bit (cộng, nhân, dịch bit), giảm mạnh dung lượng bộ nhớ và nâng cao hiệu năng xử lý nhận diện thời gian thực.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế kỹ thuật

  • Độ trễ bộ cộng dấu chấm động: Để tối ưu hóa hiệu năng tổng thể và diện tích, bộ cộng số thực dấu chấm động trong thiết kế tốn 7 chu kỳ xung nhịp (lớn hơn mức 4 chu kỳ trong nghiên cứu tham chiếu [1]), dẫn đến cây cộng trong khối Flatten Perceptron tốn 28 chu kỳ (so với 21 chu kỳ ở [1]).
  • Bộ so sánh Max Pooling: Khối so sánh của tầng Max Pooling sử dụng 3 tầng pipeline (trễ 3 chu kỳ), nhiều hơn 1 chu kỳ so với thiết kế của [1] (2 chu kỳ).
  • Hạn chế thời gian thực của khối Softmax: Khối Exponential tính theo chuỗi Taylor và khối Softmax được thiết kế tối ưu hóa diện tích tài nguyên cho chế độ học (Learning mode) nên không hỗ trợ xử lý luồng dữ liệu thời gian thực (Real-time stream).
  • Hiện tượng tích lũy sai số: Xuất hiện sai số gia tăng nhất định qua các epoch khi cập nhật tham số trên phần cứng số thực dấu chấm động (ghi nhận trong Bảng 4.18 của báo cáo).

Hướng nghiên cứu và phát triển

  • Tối ưu hóa sâu hơn cấu trúc đường ống của bộ cộng và bộ chia số thực dấu chấm động để rút ngắn số chu kỳ trễ mà vẫn duy trì tần số xung nhịp cao.
  • Nâng cấp khối tính toán hàm mũ và hàm Softmax để đạt tốc độ xử lý thời gian thực, phục vụ cho các bài toán phân loại đa lớp phức tạp hơn.
  • Mở rộng kiến trúc CNN Datapath IP để hỗ trợ các kích thước ma trận ảnh linh hoạt, độ sâu kênh màu đa dạng và các mô hình học sâu hiện đại khác.
  • Tích hợp thêm các bộ điều khiển truy xuất bộ nhớ ngoài (DDR/SRAM controller) và giao tiếp ngoại vi tốc độ cao (PCIe, AXI Bus) để triển khai thử nghiệm trên các kit phát triển FPGA thực tế (Hardware in the loop).

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo chuyên môn giá trị cho sinh viên, học viên cao học và các kỹ sư thuộc các chuyên ngành:

  • Kỹ thuật Máy tính (Computer Engineering): Tham khảo phương pháp thiết kế đường dữ liệu (Datapath), xây dựng bộ đệm dòng (Line-buffer), kỹ thuật điều khiển luồng dữ liệu đồng bộ bằng các tín hiệu valid_in / valid_out.
  • Thiết kế Vi mạch và Hệ thống nhúng (IC Design / FPGA): Nghiên cứu các giải pháp tối ưu hóa phần cứng số, phương pháp thiết kế các khối số học dấu chấm động 32-bit (cộng, nhân, chia, hàm mũ) và kỹ thuật tiết kiệm tài nguyên bộ nhớ logic.
  • Kỹ thuật Phần cứng AI (AI Hardware Acceleration): Cung cấp mô hình tham chiếu chi tiết về việc chuyển đổi các thuật toán học máy từ dạng phương trình toán học / phần mềm (MATLAB, Keras) sang kiến trúc phần cứng mức thanh ghi RTL có khả năng tự huấn luyện (On-chip training).

Các nội dung có giá trị tham khảo ứng dụng cao nhất bao gồm:

  1. Bản vẽ kiến trúc và bảng mô tả tín hiệu I/O chi tiết của từng khối trong đường dữ liệu Feed-forward và Backpropagation (Mục 3.1 đến 3.10).
  2. Kỹ thuật tích chập Full-padding không tốn RAM đệm trong khối CECC (Hình 3.10, 3.11).
  3. Thiết kế mạch Softmax khả tổng hợp dựa trên khai triển Taylor và mạch chuẩn hóa Scaling (Hình 3.7).

Câu hỏi thường gặp

1. Sự khác biệt căn bản nhất giữa CNN Datapath IP trong khóa luận này so với nghiên cứu đối sánh [1] là gì?

Điểm khác biệt lớn nhất là nghiên cứu [1] chỉ thiết kế phần cứng cho nhánh Feed-forward phục vụ kiểm thử (Inference) và phải huấn luyện trọng số gián tiếp qua thư viện Keras trên máy tính, trong khi CNN Datapath IP của khóa luận tích hợp hoàn chỉnh cả nhánh Lan truyền ngược (Backpropagation) trên phần cứng, cho phép chip tự thực hiện cả quá trình học (Learning) và kiểm thử (Testing). Ngoài ra, khối Softmax trong khóa luận hoàn toàn tổng hợp được trên phần cứng (Synthesizable), thay vì chỉ dùng hàm mô phỏng phần mềm như [1].

2. Thiết kế đã làm thế nào để thực hiện phép tích chập Full-padding trong khối CECC mà không gây lãng phí bộ nhớ?

Thay vì cấp phát một bộ nhớ lớn có các lớp đệm giá trị 0 xung quanh dữ liệu ảnh, thiết kế sử dụng một bộ nhớ khung (Frame Memory) kích thước thực vừa đủ chứa điểm ảnh. Việc giả lập đệm số 0 được thực hiện bởi sự phối hợp giữa khối tính toán địa chỉ (Address Calculator) và bộ đệm dịch (Buffer and Shifter - BAS). Address Calculator điều hướng vị trí cửa sổ trượt, và những phần tử nằm ngoài vùng ảnh thực sẽ được BAS tự động gán bằng 0 trước khi đưa vào bộ nhân và cộng.

3. Tại sao khối CDCP lại sử dụng các cổng logic AND thay cho các bộ nhân số thực dấu chấm động?

Trong quá trình lan truyền ngược qua tầng Max Pooling, giá trị đạo hàm chỉ cần nhân với ma trận mask vị trí cực đại đã lưu ở pha Feed-forward. Do các phần tử trong ma trận mask chỉ mang giá trị nhị phân là 0 hoặc 1, phép nhân số thực lúc này tương đương với phép toán logic: giữ nguyên giá trị nếu mask bằng 1 và xóa về 0 nếu mask bằng 0. Việc sử dụng cổng logic AND thuần túy giúp tiết kiệm đáng kể tài nguyên LUT/DSP trên vi mạch và giảm độ trễ xuống chỉ còn 1 chu kỳ xung nhịp.

4. Khối Softmax được hiện thực trên phần cứng như thế nào để đảm bảo tính khả tổng hợp?

Khối Softmax được hiện thực qua ba bước: (1) Sử dụng mạch Scaling để chuẩn hóa toàn bộ miền giá trị đầu vào về đoạn $[-1, 1]$; (2) Tính toán hàm số mũ $e^x$ bằng phương pháp khai triển chuỗi Taylor kết hợp bộ nhớ chứa tham số Taylor và các bộ nhân/cộng số thực dấu chấm động; (3) Đưa các giá trị hàm mũ qua bộ cộng tổng (Sum) và sử dụng bộ chia dấu chấm động (Floating-point Division) để chia từng giá trị mũ cho tổng, tạo ra xác suất chuẩn hóa.

5. Phương pháp lượng tử hóa (Quantization) được áp dụng cho mô hình VGG-16 như thế nào?

Phương pháp lượng tử hóa được áp dụng để chuyển đổi toàn bộ dữ liệu và trọng số từ định dạng số thực dấu chấm động 32-bit sang định dạng số nguyên 8-bit theo công thức $Y_q = \text{round}(a / q_y)$. Nhờ đó, các phép tính trong mô hình VGG-16 chỉ cần sử dụng bộ cộng, bộ nhân và bộ dịch bit số nguyên 8-bit, giúp giảm mạnh diện tích vi mạch, tiết kiệm bộ nhớ và gia tăng tốc độ nhận diện thời gian thực.


Kết luận

Khóa luận tốt nghiệp của tác giả Lê Minh Phúc và Bùi Hữu Trí đã thiết kế và hiện thực thành công trên phần cứng kiến trúc CNN Datapath IP có khả năng thực thi đồng thời cả hai chế độ học (Learning) và kiểm thử (Testing) với định dạng số thực dấu chấm động 32-bit, cùng kiến trúc VGG-16 tối ưu hóa bằng phương pháp lượng tử hóa 8-bit. Thiết kế đạt hiệu năng vượt trội so với các nghiên cứu trước về độ trễ xử lý (968 chu kỳ), tần số hoạt động ($201.694\text{ MHz}$) và mức độ tiết kiệm tài nguyên logic (giảm $18.24%$ LUT). Công trình đóng góp nhiều giải pháp kiến trúc phần cứng sáng tạo như khối Softmax khả tổng hợp bằng chuỗi Taylor, phép nhân mask bằng cổng logic AND và cơ chế tích chập Full-padding không cần bộ nhớ đệm.