DANH MỤC BANGBả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 Bảng 4.2: Mô tả tín hiệu khối Broadcaster Bảng 4.3: Mô tả tín hiệu khối Hidden Layer Bản
Trang 1ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
Trang 2ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
TRAN QUANG DIEU - 16520213
TRƯƠNG ANH HÀO - 16520353
KHÓA LUẬN TÓT NGHIỆP
THIET KE BỘ TANG TÓC TÍNH TOÁN CNN
DESIGN CNN ACCELERATOR
KỸ SƯ NGÀNH KỸ THUAT MAY TÍNH
GIẢNG VIÊN HƯỚNG DẪN
ThS HO NGỌC DIEM
TP HÒ CHÍ MINH, 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 70/QD-DHCNTT
ngày 27 tháng 01 năm 2021 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Đầu tiên, em muốn cảm ơn các quý thầy, cô và các giảng viên đã và đang giảng dạy tại
trường Dai học Công nghệ Thông tin — Dai học Quốc gia Thành phố Hồ Chí Minh đã
góp công xây dựng trường của chúng ta ngày hôm nay.
Trong quá trình học tập và rèn luyện tại trường, em nhận được sự chỉ bảo tận tình, nhận
được những kiến thức, kinh nghiệm quý báu của các thay, cô, từ đó đã giúp em có được
kiến thức chuyên môn, sâu rộng như ngày hôm nay Ngoài ra, em còn được trang bị kỹ năng mềm trong quá trình theo học tại trường, giúp em có thé bước vững trong cuộc sống và trong tương lai.
Tiếp theo, em xin cám ơn các thầy cô thuộc Khoa Kỹ thuật Máy tính đã giúp đỡ em trong những lúc khó khăn về học vụ, đăng ký học phần và hỗ trợ hết mình để em có thể mượn thiết bị trong lúc làm khoá luận.
Dé có thể hoàn thành khoá luận này, em xin cám ơn thay Trần Dai Dương đã luôn luôn
giúp đỡ tận tình hướng dẫn từ lúc em là sinh viên năm ba đang thực hiện Đồ án 1.
Sau cùng, em muốn gửi lời cám ơn đến gia đình và bạn bè đã luôn là hậu phương vững chắc, là chỗ dựa tinh thần giúp em có thé hoàn thành khoá luận.
Thành phố Hồ Chí Minh, tháng 01 năm 2021
Sinh viên thực hiện
Trần Quang Diệu Trương Anh Hào
Trang 5MỤC LỤC
CHƯƠNG I GIGI THIỆU TONG QUAN DE TÀI
CHUONG 2 CƠ SỞ LÝ THUYET
CHƯƠNG 3 THIET KE HE THONG
CHUONG 4 THIET KE CHI TIẾT
6.1 Phát hiện ký tự “X” trong Bang chữ cái
6.2 Nhận diện các số 0-9 trong MNIST
CHƯƠNG 7 KET LUẬN VÀ HƯỚNG PHAT TRIEN ĐÈ TÀI
44
48 51 55 55 58 60 60
60
61 62
Trang 6Pipeline Register
Hidden Layer 0 và 1 Multiply and accumulate circuit ForwardMaccum Multiply and accumulate circuit BackwardMaccum Activation function circuit
Hinh 4.10: Error back propagation circuit
Hinh 4.11: Load / bias circuit
Hinh 4.12: Output Layer
Quy trình mô phỏng và cách đánh giá
Sơ đồ khối mạng nơ ron Testbench
Input Layer (TEST mode /no BURST).
Hidden Layer 0 (TEST mode / no BURST).
Hidden Layer 1 (TEST mode / no BURST).
Output Layer (TEST mode / no BURST).
Valid signal and Ready signal (learning mode).
Valid signal and Ready signal (inference mode / normal mode).
Valid signal and Ready signal (inference mode / burst mode).
Hình 5.10: Pipeline hệ thống
Hình 5.11: Pipeline ForwardMaccum
Trang 7Hình 5.12: Kết qua mô phỏng post-synthesis 1
Hình 5.13: Kết quả mô phỏng post-synthesis 2
Hình 5.14: Thiết kế của nhóm
Hình 5.15: Thiết kế của đề tài [15]
Hình 6.1: Hình biểu điễn chữ cái alphabet 9x9
Hình 6.2: Hình chữ số 0 viết tay
Hình 6.3: Hình chữ viết tay sau khi đã được chuyền sang ma trận
Hình 6.4: Tài nguyên và độ trễ của mạch
Hình 6.5: Năng lượng sử dụng của mạch
Hình 7.1: Mô hình hệ thống sử dụng thuật toán YOLO lên mang CNN [16]
48 49 Bi
51
55 58
58
59 59 61
Trang 8DANH 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
Bảng 4.2: Mô tả tín hiệu khối Broadcaster
Bảng 4.3: Mô tả tín hiệu khối Hidden Layer
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
Bảng 4.6: Mô tả tín hiệu khối Neuron (ReLU) của Hidden Layer
Bảng 4.7: Mô tả tín hiệu khối Delta của Hidden Layer
Bảng 4.8: Mô tả tín hiệu khối Bias Weight của Hidden Layer
Bảng 4.9: Mô tả tín hiệu khối Output Layer
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
Bảng 4.12: Mô tả tín hiệu khối Delta của Output Layer
Bảng 4.13: Mô tả tín hiệu khối BiasWeight của Output Layer
Bảng 5.1: Một số trường hợp thử nghiệm trong chế độ TEST / không có BURST.
Bang 5.2: Kết quả tổng hợp logic
Bảng 5.3: Một số trường hợp Test case post-synthesis
33 33 34
40
44 50 52 53 56 57
Trang 9DANH 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
Trang 10TÓ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.
Trang 11MỞ ĐÀ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.
Trang 12Chương 6 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.
Trang 13CHƯƠNG 1 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 Thiết kế [10] trong
việc tính toán tích chập 2D với thuật toán Fast Fourier Transform (FFT) 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ó
—<$—$
Trang 14kí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 Mang 2D MAC có thể
mở rộng và kích thước chủ yếu phụ thuộc vào phần cứng, độ rộng của bộ nhớ, độ lớn của
sự ánh xạ.
'Vào năm 2019, sinh viên Huỳnh Vĩnh Phú - Trường Đại học Công nghệ Thông tin
đã công bó dé tài thiết kế và hiện thực mạng noron tích chập trên FPGA [15] với các tính
năng như sau:
Khối Forward
Active function: ReLU
Khối floating point 32 bits
Trang 15e Active function: ReLU
e Tan số hoạt dong 170MHz
Trong khóa luận này nhóm sẽ trình bài thiết kế bộ tăng tốc CNN dựa trên những
mục tiêu mà nhóm đã dé ra.
Trang 16CHƯƠNG2 ˆ CƠ SỞ LÝ THUYÉT
Bộ não con người có nhiều tế bào thần kinh Chúng nhận tín hiệu đầu vào và xử lý
để tạo ra một kết quả khác Ví dụ, khi chúng ta chạm vào vật nóng, đầu vào nóng này sẽ
được gửi đến tủy sống thông qua các tế bào thần kinh cảm giác (interneurons) và sau đó sẽ
phan ứng dé nhanh chóng rút tay ra khỏi vật nóng.
Mạng lưới thần kinh là các tế bào thần kinh của con người bắt chước bằng cách sử
dụng mô hình toán học Mạng nơ-ron về cơ bản có ba layer, tức là (1) input layer (2) hidden layer (3) output layer, câu trúc này được gọi là cấu trúc 3 layer Có những mô hình trong
đó hidden layer bao gồm hai hoặc nhiều layer Hình 2.1 cho thấy một mô hình mạng
nơ-ron có cau trúc 4-layer với 2 hidden layer.
* [OO
®D 2 ®
Hình 2.1: Cầu trúc mạng nơ ron 4 layer
Mạng noron chuyền đổi một số tín hiệu đầu vào (tín hiệu này được chuyển qua mô hình mạng nơron) Và ở cuối đầu ra, có một supervisor (đầu ra lý tưởng) mà chúng tôi đã
đưa ra trước đó như Hình 2.2.
Trang 17Lấy giá trị chênh lệch giữa đầu ra va supervisor, tham số mạng nơron sẽ thay đổi đồng thời cho đến khi đầu ra giống với tín hiệu giám sát.
ans =1
ans =0
Hình 2.3 cho thấy mô hình mạng nơ-ron với mỗi tham số trong layer tương ứng của nó.
Định nghĩa của từng tham số như mô tả ở Bảng 2.1
Bang 2.1: Mô tả chức năng cua từng ký hiệu
Ký hiệu Mô tả
ki tín hiệu dau vào
wis trọng so giữa dau ra thứ i của input layer va dau vào thứ j của hidden layer 1
b? bias thứ i của hidden layer 1
đầu vào thứ i của hidden layer 1
T¡
a? đầu ra thứ i của hidden layer 1
wis trong so giữa đầu ra thứ ¡ của hidden layer 1 và đầu vào thứ j của hidden layer 2 b3 bias thứ i của hidden layer 2
đầu vào thứ i của hidden layer 2
Trang 18a} đầu ra thứ i của hidden layer 2
wij trong số giữa dau ra thứ i của hidden layer 2 va đầu vào thứ j của output layer
bệ bias thứ i của output layer
zt đầu vào thứ i của output layer
a} đầu ra thứ i của output layer
zc, zi” va z là tông cua bias và tích của mỗi trọng sô từ tín hiệu dau vào và chính
tín hiệu đầu vào Các tính toán được mô tả ở công thức (2.1), (2.2) (2.3):
Z? = Wijk + Wik, + Wks + bệ (2.1)
Z2 = WSa? + Wa? + W3a? + bệ (2.2)
:
Zi = Wa? + Wa} + Wa? + bệ (2.3)
a’, a? va ai! là activation function cho zi”, z¡ và z¡ một cách tương ứng Chúng ta
có thé sử dụng bat ky function nào có thé phân biệt và chuẩn hóa như activation function.
Ví dụ: nếu chúng ta sử dụng hàm ReLU, các phương trình cho a? và p(z7) được tính toán
bằng công thức (2.4) và (2.5):
2 2a? = a(z?) = fi @ > 9) (2.4)
Trang 19Từ đây, chúng ta sẽ sử dụng phương pháp truyền ngược trong đó tham sé weight và bias thay đổi đồng thời với hàm chi phi dé tối ưu hóa việc tính toán tham số mới từ đầu ra
đến đầu vào Bằng cách sử dụng giá trị C, chúng ta có thé tính toán độ đốc (gradient descent) của weight and bias Khái niệm của các phép tính được hiển thị ở công thức (2.8)
và (2.9).
(Awïi , Awii , Awii , Abƒ , AbÏ , Abƒ ,) =
( ac ac ac ac ac oe 8)
n Swi! Đưậy wh bE aoe ang) (2:
aC O(Cy+ Cot ac, ac:
Ma2& = Gt Ger) Or } 2 + = 52h, (2.9)
Ow, owt, owt, owt,
6) là giá trị sai số cho weight và bias Từ các phương trình này, chúng ta có thể sử dụng nó để tính giá trị delta từ hàm chỉ phí (cost function) Ví dụ, nhóm tính toán hàm
gradient của oe va 2e được mô ta ở công thức (2.13) va (2.14) Cách hoạt động của hàm
aw?, ab?
Cost Function được mô ta như trong Hình 2.4.
Cost function
ans = 0
Trang 20Các sai số õj được tính toán bằng các công thức (2.10), (2.11), (2.12):
5} = (at — tị)a'(Z7) (2.10)
ðÏ = (6w + btw ++ )a’ (zz) (2.11)
Of = (ðÏwä + ð$wä + ¬:)đ'(2Ÿ) (2.12)
ac 2 jay = 0Ÿ: (2.13)
TT = 6? (2.14)
Từ day, chúng ta có thé thay đổi weight va bias thành một giá trị mới Các tính toán dùng để cập nhật giá trị weight và bias mới được tính toán bằng công thức (2.15), (2.16),
(2.17), (2.18), (2.19), (2.20):
(new) wi, = (old)wj + Awj (2.15)
(new)wÄ = (old)wj + Awỷ (2.16)
(new)wä = (old)wj + Awỷ (2.17)
(new)bj; = (old)bj; + Abt (2.18)
(mew)bậ, = (old)b3, + Ab} (2.19) (new)bj; = (old)bj + Abj (2.20)
Sau khi thay đổi thành tham số mới, chúng ta có thé bắt dau lại dé chèn tín hiệu đầu vào và phép tính sẽ tiếp tục cho đến khi kết quả đầu ra cho giá trị gần nhất, tức là sự khác
biệt nhỏ nhất giữa giá trị đầu ra và giá trị giám sát.
Do đó, sơ đồ của hệ thống mạng nơ-ron này sẽ hoạt động theo như Hình 2.5 Tính
toán sẽ dừng khi giá trị đầu ra giống với giá trị của supervisor.
Trang 21Set initial value of weight and
bias as random number
Calculate gradient descent of
weight and bias
Trang 22CHƯƠNG 3 THIET KE HE THONG
Hình 3.1 cho thấy một cách tổng quan nhất data flow toàn bộ thiết kế của nhóm.
iData AM Input iData_AM_State0 iData AM StateO iData AM StateO loData BM Output
iData_AS_Statel Hidden iData_AS_State1 Hidden iData_AS_Statel
Layer Layer Input
Layer ‘oData_BM_Weight
Output Layer oData_BM_Weight (oData_BM_Weight|
0Data_BM_Deltad joData_BM_Deltad) Data_BM_Deltad)
iData_AS_Teacher
Hinh 3.1: Thiét ké tong quan
Dựa vào Hình 3.1, nhóm sẽ trình bày một cách tổng quan về data flow của từng layer:
¢ Input Layer: dùng dé chuyền dữ liệu data input đến cho Hidden Layer 0
¢ Hidden Layer 0 va 1: Sau khi nhận được data input, layer này sẽ thực hiện tinh
toán product-sum rồi dùng hàm kích hoạt dé xuất ra data output cho layer tiếp theo
¢ Output Layer: cũng tương tự như Hidden Layer, kết quả tính toán ở lớp này sẽ là
output của toàn bộ hệ thông
Quy trình thé hiện data flow của mạch dé thực hiện các bước tính toán mạng nơ ron
back propagation bao gồm 6 bước cơ bản:
e Bước 1: Chon data Teacher
e Bước 2: Thực hiện tính toán Forward
e Bước 3: So sánh output va data Teacher
e Bước 4: Thực hiện tính toán Backward
e Bước 5: Cập nhật lại trọng số
¢ Bước 6: Lap lại bước 2 cho đến khi nào ta nhận được kết quả output và data
teacher gần hội tụ lại với nhau, lúc đó ta sẽ thu được kết quả như mong muốn
Trang 23CHƯƠNG 4 THIET KE CHI TIẾT
4.1 Thiết kế tong quan
Hình 4.1 cho thay mot so đồ khối của mạch mạng nơ-ron mà nhóm thiết kế Hình 4.1 cho thấy một Multi-Layer Perceptron (MLP) bao gồm hai hidden layer và một output layer Mỗi layer bao gồm bốn loại kết hợp mô-đun mach sau đây:
Multiply and accumulate circuit (Maccum)
Activation function circuit (Neuron)
Error back propagation circuit (Delta)
Load / Bias circuit (BiasWeight)
Tất cả các layer cũng như là mô-đun tạo nên mạch đều đã được tham số hóa Mạch có
các thông số chính có thé được điều chỉnh như sau:
NI: Số lượng tế bào thần kinh trong input layer
NH0: Số lượng tế bào thần kinh trong hidden layer 0
NHI: Số lượng tế bào thần kinh trong hidden layer 1
NO: Số lượng tế bào thần kinh trong output layer
WV: Độ rộng bit của giá tri dau ra của noron
Mỗi mô-đun được kết nối bằng phương pháp handshake sử dụng tín hiệu Valid và tín
hiệu Ready Các mũi tên trong Hình 4.1 chỉ ra kết nối của từng mô-đun Phan kết nói được biểu thị bằng mũi tên cham chỉ giao tiếp trong chế độ suy luận Giao diện chỉ tiết của từng
module sẽ được mô tả ở Hình 4.1.
Trang 24— a ¬ ra:
-f Input Layer 7 _ Hidden Layer 0 `, i Hidden Layer 1 ì / Output Layer \
Ị cự HN 0m,
Ị f |
[iDah AM Input | AM | Forward Rau [| Ì ¡ [Forward ReLU | | | | Forward ReLU | |
+ Brats Maccum| Hidden ¡ Maccum Hidcen| | | ¡_ Masam Output j
Ị Ị ị i
i | ! Ị Ị
| Ì | Ï |
Ị | _ | i i
i LAS ; | | iData AS Sael | iDaa AS Statel ị
i oi 7 + | wwe | | ï & ị Lạy ¡
| i |_| Weight Weight {na BM Weigh |_| Weight Ï
i i i | ola Backword| PD BM Dela) | Det i
i i | Hidden Maccum [1 | Ouput i
Trang 25Mạch product-sum, Activation function circuit và Load / Bias circuit được sử dụng để
tính toán sự lan truyền thuận của MLP Mạch product-sum (đối với truyền tiến forward)
của mỗi layer nhận cả đầu ra của layer trước đó và Weight and bias được cung cấp bởi
mạch load / bias, sau đó tính toán trạng thái bên trong của nơron bằng phép product-sum Trang thái bên trong của no-ron được đưa vào Activation function circuit và giá trị đầu ra
của nơ-ron được tính toán Quá trình này được thực hiện cho tất cả các layer.
Mach error back-propagation được sử dụng dé tính toán back-propagation của output layer của MLP Mạch error back-propagation nhận đầu ra của noron (output layer nhận
trạng thái bên trong của noron vì nó không áp dụng activation function) và tín hiệu teacher.
Mạch này tính toán sự khác biệt giữa đầu ra của nơ-ron và tín hiệu teacher Điều này tương
ứng với sự khác biệt của Mean Squared Error được thiết lập như một error function.
Mạch error propagation và mạch product-sum được sử dụng để tính toán propagation của layer MLP ẩn Đầu tiên, mạch product-sum sản phẩm nhận cả trọng số
back-của layer tiếp theo và sai số back-của layer tiếp theo, và thực hiện phép product-sum Tiếp theo, mạch error backpropagation nhận kết quả của phép toán tổng tích và trạng thái bên trong
của nơ-ron, và tính toán lỗi Ở đây, trạng thái bên trong của nơ-ron được sử dụng để kiểm
tra giá trị vi phân của hàm kích hoạt trong layer đó Quá trình này được thực hiện cho tất
cả các hidden layer.
Weight và bias MLP được cập nhật bởi mạch load / bias của mỗi layer Load / Bias circuit có một thanh ghi để lưu giữ weight va bias Mạch này nhận được cả lỗi do mạch error backpropagation đưa ra và đầu vào được cung cấp bởi Activation function circuit của
layer trước, sau đó tính toán lượng cập nhật của weight va bias, đồng thời ghi lại weight và
bias đã cập nhật.
Trang 26Hinh 4.2: Input Layer
Bang 4.1: Mô tả tín hiệu khối Input Layer
Input Layer Name port Function
input iData_AM_Input Lưu trữ đầu vào của mạch
output oData_BM_State0 | Truyén dau vào tới ForwardMaccum của Hidden
Layer dé tinh product-sum
oData_BM_Statel Truyền đầu vào đến BiasWeight của Hidden Layer
để tính toán cập nhật weight
"mm
Trang 27Bảng 4.2: Mô tả tín hiệu khối Broadcaster
Broadcaster 0 Name port Function
input iData_AM Lưu trữ đầu vào của mạch
output oData_BMO Truyén dau vào tới ForwardMaccum của layer tiếp theo
oData_BM1 Truyén dau vao dén Broadcaster 1
Broadcaster 1 Name port Function
input iData_AM Lưu trữ đầu vào từ Broadcaster 0Oufput oData_BMO Truyén dau vao dén BiasWeight cua layer tiép theo
Trang 28Broadcaster là một mô-đun dé truyền dữ liệu nhận được từ một nguồn dữ liệu đếnhai chỗ dữ liệu Khi nó nhận dữ liệu từ một nguồn dữ liệu, nó sẽ chuyên dữ liệu đến từng
phần trong hai chỗ chứa dữ liệu Cho đến khi hai chỗ dữ liệu nhận được dữ liệu, chúng
không nhận dữ liệu từ nguồn dữ liệu và làm ngưng tré luồng dit liệu
Broadcaster và Combiner có một Register tích hợp (một hàng đợi có độ sâu là 1) và
hoạt động như một trình điều khiển của giao thức handshake Mô-đun Register có chế độ
bình thường và chế độ liên tục Trong chế độ bình thường, truyền dữ liệu chỉ có thể đượcthực hiện sau mỗi hai chu kỳ xung clock, nhưng nó có thể được thực hiện với một lượngnhỏ tài nguyên mạch Mặt khác, trong chế độ liên tục, dữ liệu có thé được truyền mỗi chu
kỳ xung nhịp, nhưng số lượng tài nguyên mạch cần thiết để gắn kết sẽ tăng lên
19
Trang 294.2.1.2 Pipeline Register
Hình 4.5 mô tả sơ đồ khối mạch của Pipeline Register Pipeline Register được sử
dung dé chia quá trình xử lý trong một mô-đun thành nhiều giai đoạn và thực hiện xử lý
pipeline Pipeline Register được đặt giữa mỗi giai đoạn và chuyên di liệu từ giai đoạn này
sang giai đoạn tiếp theo Khi tín hiệu Ready ở phía đầu ra là CAO và tín hiệu Valid ở phíađầu vào là CAO, dữ liệu được chuyền sang giai đoạn tiếp theo
Hình 4.6 cho thấy thiết kế chi tiết cua Hidden Layer 0 và 1 Nó bao gồm 5 khối
chính: Forward Maccum, Backward Maccum, Bias Weight, Delta va Neuron Ca Forward
Maccum va Backward Maccum đều được sử dung dé tinh product-sum, nhưng khối
forward sẽ tinh toán giữa dữ liệu đầu vào va weight bias và khối backward tính toán giữa
dữ liệu sai số và weight Khối bias weight được sử dung dé tao trong số va cap nhat trong
số Delta được sử dụng dé tính toán sự lan truyền lỗi giữa dữ liệu đầu ra của nơ ron và dữliệu sai số Khối Neuron (ReLU) được sử dụng để activation function cho đầu ra củaForward Maccum Chi tiết chức năng của từng port được mô tả ở Bảng 4.3
20
Trang 30Hinh 4.6: Hidden Layer 0 va 1
Bang 4.3: Mô tả tín hiệu khối Hidden Layer
Hidden Layer 0 Name port Function
va 1
input iData_AM_StateO Lưu trữ đầu vào từ Layer trước vào
ForwardMaccum
1Data_AS_ Statel Lưu trữ đầu vào từ Layer trước vào BiasWeight
1Data_AM_ Weight Lay weight dé tinh BackMaccum
iData_AM_Delta0 Lay delta dé tính toán BackwardMaccum (port này
chỉ có trong Hidden Layer 1)
output oData_BM_Delta0 Truyền giá tri delta đến Layer trước
theo
trong Hidden Layer 1)
sneer
21
Trang 314.2.2.1 Product-sum operation circuit (Forward Maccum)
Sơ đồ khối của mach product-sum được hién thị ở Hình 4.7 Hình 4.7 cho thấy mạch tính toán giá trị đầu vào cho mạch nơ-ron (FowardMaccum) Chi tiết chức năng của từng
port được mô tả ở Bảng 4.4.
Hình 4.7: Multiply and accumulate circuit ForwardMaccum
Mach product-sum là mạch thực hiện phép product-sum can thiết dé tinh giá trị đầuvào cho mạch nơron và mạch truyền lỗi Mạch product-sum bao gồm nhiều mô-đun
Maccum và nó có cùng sô lượng với sô phân tử ở phía đâu ra Maccum bao gôm một mạch
nhân (Mul) có cùng sỐ phần tử với số phần tử đầu vào và một mạch product-sum (Sum)
22
Trang 32Trong mạch product-sum, các mạch cộng được sắp xếp theo hình cây Tat cả các mô-đuntrong mạch product-sum được kết nối bằng giao thức handshake và độ lệch của thời gian
dữ liệu đo sự khác biệt về số lượng giai đoạn của mạch tính toán được hấp thụ.
Công thức được sử dụng trong mạch này là (2.1), (2.2), (2.3)
Đối với Hidden layer 0
e FordwardMaccum: Z? = Wik, + W3k, + Wk; + bệ (2.1)
Đối với Hidden Layer 1
e FordwardMaccum: Zÿ = Wa? + Wa? + Wa? + b (2.2)
Đối voi Output Layer
e ForwordMaccum: Z* = W1aÿ + Wa? + Wjaÿ + b‡ (2.3)Bang 4.4: Mô tả tín hiệu khối Forward Maccum cua Hidden Layer
Forward Name port Function
Maccum
input iData_AM_WeightBias Nhận trong sô dé tính product-sum
iData_AM_State0 | Nhận dữ liệu dau vào dé tinh product-sum
output oData_BM_Accum0 Truyén đầu ra tới Neuron
oData_BM_ Accuml Truyền đầu ra tới delta
4.2.2.2 Product-sum operation circuit (Backward Maccum)
Sơ đồ khối của mach product-sum được hiển thi ở Hình 4.8 Hình 4.8 cho thấy mạchtính toán giá tri đầu vào cho mạch truyền lỗi (BackwardMaccum) không cộng thêm giá trịbias sau khi tính toán product-sum Chi tiết chức năng của từng port được mô tả ở Bảng
4.5.
23
Trang 33iData_AM_Deltla0 [proadcaste L Maccum
Hinh 4.8: Multiply and accumulate circuit BackwardMaccum
Mach product-sum là mạch thực hiện phép product-sum cần thiết dé tinh giá trị đầuvào cho mạch nơron và mạch truyền lỗi Mạch product-sum bao gồm nhiều mô-đun
Maccum và nó có cùng số lượng với số phần tử ở phía đầu ra Maccum bao gồm một mạch
nhân (Mul) có cùng số phần tử với số phần tử đầu vào và một mạch product-sum (Sum)
Trong mạch product-sum, các mạch cộng được sắp xếp theo hình cây Tất cả các mô-đun
trong mạch product-sum được kết nối bằng giao thức handshake và độ lệch của thời gian
dữ liệu đo sự khác biệt về số lượng giai đoạn của mạch tính toán được hấp thụ.
24
Trang 34Công thức được sử dụng trong mạch này là (2.12) và (2.11)
Đối với Hidden layer 0
e© BackwardMaccum: ôÿW7;, + d3w3, + - (2.12)
Đối với Hidden Layer 1
e BackwardMaccum: ổ/W{ + 6¢w3, + - (2.11)
Bang 4.5: Mô tả tín hiệu khối Backward Maccum
Backward Name port Function
Maccum
input iData_AM_Weight | Nhận weight dé tinh BackwardMaccum
iData_AM_Delta0 Nhận delta dé tính BackwardMaccum
output oData_BM_Accum2 | Tính toán product-sum cho delta tiếp theo
4.2.2.3 Activation Function Circuit (Neuron)
Hình 4.9 cho thay so đồ khối của Activation function circuit Activation functioncircuit chấp nhận đầu vào từ mach product-sum cua layer riêng của nó Dau vào tín hiệu
cho Activation function circuit được chia theo trạng thái bên trong của nơ-ron, và mỗi tín
hiệu được đưa vào khối ReLU được thé hiện trong hình Chi tiết chức năng của từng port
được mô tả ở Bảng 4.6.
Khối ReLU cắt tín hiệu đầu vào từ 0 đến MAX (giá trị lớn nhất có thê được lấy với
độ rộng bit của tín hiệu đầu ra) Hàm ReLU ban đầu không có giới hạn trên đối với giá trịđầu ra Tuy nhiên, trong mạch thiết kế này, đặc điểm kỹ thuật là giới hạn độ rộng bit củagiá tri đầu ra của hàm kích hoạt Điều nay là do độ rộng bit của tín hiệu đầu vào của nơ-
ron không tăng theo từng layer của mạng nơ-ron.
25
Trang 35Hình 4.9: Activation function circuit
Tat ca các giá trị được tính toán bởi môi khôi ReLU được đưa vào Broadcaster Bởi
Broadcaster, dau ra cua Activation function circuit được đưa vào mạch product-sum của
layer tiếp theo va Load / Bias circuit của chính nó
Công thức được sử dụng trong mach này là (2.4), (2.5)
Z¿ (z? > 0)
0œ? <0)
of = a) = |
(2?) = max(0,zŸ) (2.5)
Bang 4.6: Mô tả tín hiệu khối Neuron (ReLU) của Hidden Layer
Neuron Name port Function
input iData_AM_ Accum0 | Nhận đầu vào từ ForwardMaccum đề tinh toán ReLU
output oData_BM_ State0 Truyền đầu ra tới Layer tiếp theo
oData_BM_ Statel Truyền đâu ra tới BiasWeight của layer tiếp theo
—mm—>>==s==ễ=ễễễễ=ễ==esamm>->œ>aạzẽ2z<s-ỶỲỶ-.-.- ——————————
26
Trang 364.2.2.4 Error propagation circuit (Delta)
Hình 4.10 cho thấy so đồ khối của Error propagation circuit Mach truyền lỗi sẽnhận tính hiệu từ khối Forward và khối Backward (Output Layer không có khối này) détính toán sai số cần thiết dé cập nhật giá trị tai của mạng CalcDelta là một mô-đun tínhtoán các lỗi Chỉ tiết chức năng của từng port được mô tả ở Bảng 4.7
Đối với hidden layer:
So sánh giá trị không đổi 1 và 0 với giá trị đầu ra (al) của mach product-sum của
quá trình lan truyền thuận (forward)
e 0<al <l > Giá trị đầu ra của mạch product-sum giống (a2)
e ngược lại > Đầu ra 0
Đối với output layer:
(Giá trị đầu ra của mạch product-sum của quá trình lan truyền thuận (a1)) - (Gia tri
đầu ra của mạch product-sum của quá trình back-propagation (a2)) là đầu ra.
Ngoài ra, kết quả product-sum có thé nhỏ hơn -1 hoặc lớn hơn 1, do đó machSaturation thực hiện xử lý bão hòa giá tri đầu ra
Công thức được sử dụng trong mạch này là (2.10), (2.11), (2.12)
Đối với Output Layer
e DeltaOutput: ổ‡ = (af — tf;)a'(zŸ) (2.10)
Đối với Hidden Layer 1
e Delta Hidden Layer 1:6? = (ổ‡Wj# + Sfw, + -)đ'(Zÿ) (2.11)Đối voi Hidden Layer 0
e Delta Hidden Layer0: 5? = (ổÿwï + d3w3, + -)@'(Z?) (2.12)
27