Chương 1. GIGI THIEU TONG QUAN. - Giới thiệu để ti eee eccsseeecessnnecessneccessneccesnnscessnsscesnnsceesanecesnneeeesnneeeesens 2 1. Cac nghiên cứu liÊn Qua1.
Tổng quan d6 tài. Mục tiêu để tài. ch nhieu 4 Chương 2. CO SỞ LÝ THUYÊẾT.-- 2-2 2+SE+EE+EE2EE2EEEEE2EEEEEEEEEEEEErkerrerree 5 2.
Mô hình mạng ShuffleNet v2.- - - c1 HS HH ng HH rệt 5 2. Convolution Layer — Lớp tích Chap. Depthwise Separable ConvOÏufIOT.- --- << s ke ksikseekeesereeeee 9 "PP H9 na 280 nh. Pooling Layer — Lớp tổng hợp.-------: + ©-++++x++zx++rx++rxrzrxesreee 11 2.
Fully Connected Layer — Lớp kết nối tổng hop. Hàm kích hoạt ReLLU.- --- -¿- 2 St + St **E*EESEESEEkkrsrrerrrrsreerei 12 2. Hàm kích hoạt ŠigImOI.-- << + E1 E1 9v vn ng nh rư 13 2. Qui gh nnHhg 14 2.L- Ăn TH HH ngư 15 2.
Tap dữ liệu hình ảnh ImageÌNet.- ---- 5 S5 + sseersseerreeree 17 Chương 3. MO HÌNH THIET KÊ.- 2-2 ©5¿+<+EE+E£+EE£EE++EEerxerxezrxerxee 19 3. Hién thực lượng tử HO. Kiến trúc tổng Quam.
Thiết kế bộ đệm dữ liệu. Khối conv_controller.---: 5e 5z se St SEeE+ESESESESESESEEEEEEEEErererersrssee 26 3. Khối PC_CONV_IMAC 11177. Khối Depthwise Convolution.
Khối DWconv_controller. Khối cnn_controller _convlxI. Khối pe_convlxI_ ma .------©¿+-<+k+£Et2EE£EEtEEE+EEerkerrserkrree 43 3.----:- ket ke xEE1E1121111121121121111 1. Khối cnn_controller_pOOÏITIE.
Khối pe_poolingsecccecceccsscessessessecsecsessecseeseesessessessessessessessesssssssssssesseess 47 3. Khối linear_controller. Khối Channel Shuffle .csccssesccssseessseecsssecessseecessneeesssneecssneeessnesessseess 53 Chương 4. KIEM TRA VÀ ĐÁNH GIÁ THIET KỂ.
Kiểm tra khối Convolution. Chạy behavioral simulafIOI. Tài nguyên sau khi tổng hợp.---:-- + ©++2x++cx++zx+zrxrzrxrzrxee 59 4. So sánh kết quả mô phỏng phan cứng so với phần mềm.
Kiểm tra khối MaxPOol. Chạy behavioral simulafIOT. Tai nguyên sau khi tong hợpp. Chạy post-synthesis simulÌafIOT.
So sánh kết quả mô phỏng phan cứng so với phần mềm. Kiểm tra khối 3x3 DWCONV.S2- SE St St SESEEESEEEEEEEEEEEESErrrrrrererrree 64 4. Chạy behavioral simulafIONI. Tai nguyên sau khi tong hop.
So sánh kết quả mô phỏng phần cứng so với phần mềm. Kiểm tra khối IXICOnV. Chạy behavioral simulatIOn. Tài nguyên sau khi tong hOp.
Chạy post-synthesis simulÌafIOI. So sánh kết quả mô phỏng phan cứng so với phần mềm. Kiểm tra khối ShuffleUnit Spatial down sampling. Chạy behavioral simulatIOn.
Tai nguyên sau khi tong hợp. Chạy post-synthesis sImulÌafIOI. Kiểm tra khối ShuffleUnit basic.-¿--cc+©cc+eeecxverrrrreerrre 72 4. Chạy behavioral simulafIOTI.
Tai nguyên sau khi tong hợp. Chạy post-synthesis simulafiOI. So sánh kết quả mô phỏng phan cứng và phần mềm. Kiểm tra khối Global Pool.
Chạy behavioral simulafIOII. Tai nguyên sau khi tổng hợp. Chạy post-synthesis sImulafiOH. So sánh kết quả mô phỏng phan cứng và phần mềm.
Kiểm tra khối Fully connected. Tài nguyên sau khi tong hợp. Chạy post-synthesis sImulafIOH. So sánh kết quả mô phỏng phần cứng và phần mềm.
Kiểm tra mô hình ShuffleNet v2. Chạy behavioral simulafIOTI. Tai nguyên sau khi tong hợp. Chay post-synthesis simulafiOI.-- s5 + xe rrkt 85 Chương 5.-:- 2 S2+S<+SE+EE9EE2EEEEE2E12E1211211211212212 1.
Gt Ua occ eeccceeeescsssseecesssneeesssneeeecsssneeseesnnseesessnneecessnnnesessnneeseesnneseessnes 86 5. Khó khăn gap phat. Hướng phat triển đề tai. cccecccccccccccsscesessessessessessessessessessessessesscsseseesseseeaee 87 DANH MỤC HÌNH Hình 2.
(a) Shuffle Basic Unit; (b) Shuffle Unit spatial down sampling. Tổng quan kiến trúc của khối ShuffleNet v2 0. Pháp tích chập với kích thước bộ lọc là 3, Stride = 1, Padding = 1. Depthwise Separable COTIVOÏIẨÏORN.
5 << SE VE+*eEEeeeEeeeeeeeeresexs 10 Hình 2. Channel Shuffle trong ShuffleNet[ ] ].-- --«+sc+svksseksseessseessees 10 Hình 2. Pooling với kích thước bộ lọc = 2, Stride = 2.cc+ssceesss 11 Hình 2. Ví du lớp Fully Connected với dau vào là 3 và đâu ra là 5.
Đồ thị hàm kích hoạt ÑeLU.--------c5ccesccE+terrrtrkteerrrrtrrrrrrie 12 Hình 2. Do thị hàm kích hoạt sigiOid.-- - +: 2-55 £+E£+EE+E‡E£EEE+Errrrrreres 13 Hình 2. Biểu đô sai số của phương pháp PLAINỊL19].- 2©cs+ce+cc+cczeezecres 14 Hình 2. Biểu đồ hàm Sojf†jMaxx.
Ví dụ về lượng tử hóa từ số Floating Point sang số Integer 8. Dyamic Quantization Của PfOTCH.- s«ssss+ss‡‡+++vEV+seeeExeeeeesssssxs 16 Hình 2. Static Quantization CUA PfOFCH.ằẶ sec + S+sekEteeeereeeeessssesrs 16 Hình 2. Static Quantization Aware TTaÏHHÌNG.
Một số hình ảnh của tập dữ liệu ImageÌNet[ 2 Ï ]. Sơ đô khối tích chập với số nguyên 8 Dit .-----©cc©cz+ce+cxccccscscces 21 Hình 3. Kiến trúc tổng quan mô hình phân 2711-280088náŸ. Khối ShuffleNet IP.
- - + <+k+EE‡E£EEEEEEEEEEE21E11E111E11211111111 11x11 xe 23 Hình 3. Thiết kế khối ĐuƒÏ€F.----+- + ©tSE+E‡Sk‡EE+ESEEEEEEEEEEEEEEEEEEEEEEEEEEEEErkrrrrkerkes 24 Hình 3. Kiến trúc khối ConnVOÏHIiOH. Sơ do chuyển trạng thái ứng với padding != 0 và stride = 1.
Sơ do chuyển trạng thái ứng với padding != 0 và stride > 1. Kiến trúc của khối conv_confrolÏeF cocceccscscsssescsesssssssssesesessvscscscssssscscsesesens 28 Hình 3. Ví dụ về hình ảnh có kích thước 7x7 và vùng đệm pPADDING = 1. Kiến trúc khối D€_ COTIV_ THH(C.
Kiến trúc khối 2/08/1772, n. Kiến trúc khối pe_conv_ mac _ AfqJOdfÏ,.- s cs<ss+sskk+sekkeseseeeee 30 Hình 3. Cau trúc cơ bản của DSP48E2[22] coccscsssessesssessesssessessesssesseesesssessesssessecs 31 Hình 3. Các bước thực hiện 2 phép nhân ac và bc trên DSP[23].
Kiến trúc khối Asp_uall Mult 80000n8. Kiến trúc khối Adder Tree. Kiến trúc khối D€_ COTV_ ĐIH̓€T _ OHÍ. 5< SE EESsekkeseesrekeree 35 Hình 3.
Mô tả tích chập depthwise. s5 - <5 xxx ki kvkesvke 36 Hình 3. Khối Depthwise Convolution. Kiến trúc controller của khối DWW€onV.-----s-©cz©5s+cs+csc>csecsees 38 Hình 3.
Kiến trúc khối ;88141-4/-8,/777PEE0007575AAee. Kiến trúc khối D€_COHVIDẨWW, TC. Minh họa cho cách tích chập của lớp IxÏCOPVW. Kiến trúc khối 1X1 COn.ecccccccccc:ccccccccxvtisrcxvrerrtrrrrrrtrrrrrrvee 4I Hình 3.
Sơ đồ chuyển trạng thái của khối xÏconV.------s©-secce5ceecsee: 43 Hình 3. Minh họa pool Kernel 3X3. c5 SE +EEESeeeeeseeerseeerssreesrs 44 Hình 3. Kiến trúc khối PoOliHg.--- 2-52 52+St+EE‡EE‡EE+EE+EEEEErrrrrrerreres 46 Hình 3.
Sơ đồ chuyển trạng thái FSM của khối controller pooling. Kiến trúc cnn_controllerZ72071ẺẼ5. Kiến trúc khối pe_poolifig.--:- ¿52 5s+S++EE‡EE+EE+EE+EEEEErErrrrrreree 47 Hình 3. Kiến trúc chỉ tiết của avg_pooÏifg.----c-c- s+ce+k+c+kerkexrkererereereee 48 Hình 3.
Kiến trúc chỉ tiết của mỉn_pooÌing.------ s s+ce+xe+x+Ek+x+kerrrxrreres 48 Hình 3. Kiến trúc chỉ tiết của IHAX_ DOOÏÏH. SG SE ng ke 48 Hình 3. Kiến trúc khối Liner cescecsesscessessesssessesssessessssssessesssessessesssessecsusssessessseeses 50 Hình 3.
Kiến trúc khối linear Controller ceccccccccccccscscscssssssssssvesesesevscscscssssscssscscsess 51 Hinh 3. Khoi PO _ViNCAV_INAC we na. Khoi Pe_linear_MaC_AAtaPAth. Vi dụ Channel Shuffle với g = 3, số kênh đâu vào là 6.
Khoi Channel Shuffle c. Quy trình verify trong VÏVQO. Tổng quan phương thức verify thiết kế.- + 5s s+c+ec+eczeereerreres 56 Hình 4. a) Hình ảnh ban dau; b) Hình ảnh sau khi tiền xử lí.
Tín hiệu load_weight cho phép nạp trọng số vào mô hình. Tín hiệu en cho phép đưa pixel ảnh vào tính tOđH. Tín hiệu done cho biết khối tích chập đã tinh toán xong. Tai nguyên khối Convolution sau khi Systhesis c.
Tai nguyén khối Convolution sau khi Implementation,. Báo cáo timing của khối CONVOLUTION. Tài nguyên khối max pool sau khi Systhesis .:©25-555cc5ccccscc: 62 Hình 4. Tài nguyên khối max pool sau khi Implementation.
Báo cáo timing của khối MAX ĐOOlL.--- 25+ 5s+52+E+E£+E££E+EE+Eererereereee 62 Hình 4. Tín hiệu valid cho biết dữ liệu dau ra sẵn SỒHI. Kết quả đặc trưng đầu ra lớp maxpool từ phân mễMm. Kết quả đặc trưng đầu ra lớp maxpool từ Phan cứng.
Nạp trọng số hoàn tat sau đó tín hiệu en = 1 .-----scscs+s+ecssz 64 Hình 4. Tín hiệu en cho phép dua các điểm ảnh vào thực hiện tính toán. Tín hiệu done báo hiệu khối thực hiện tính toán XOI.Ă cà Si 65 Hình 4. Kết quả khối 3x3 DWConv sau khi ŠystÏieSiS.
Kết quả khối 3x3 DWConv sau khi Implementation. Báo cáo timing của khối 3x3 DWWCOnv.---5-525Ss+c+esrerereereee 66 Hình 4. Kết quả đặc trưng dau ra lớp 3x3 DWConv từ phan mm. Kết quả đặc trưng dau ra lớp 3x3 DWConv từ phan cứng.
Tài nguyên khối IxIConv sau khi SysthesiS.--:©25-555cc5ccccscc: 68 Hình 4. Tài nguyên khối 1x1 Conv sau khi Implementatioh. Báo cáo timing của khối IxCOIV. Nạp trọng số vào Khối.
TXT CONV vesessessssssessesssessesssessessesssecsessessessessseeses 69 Hình 4. Tín hiệu done cho biết khối thực hiện tính toán xong. Kết quả đặc trưng đâu ra lóp 1xIConv từ Phan mễMm. Kết quả đặc trưng đâu ra lóp 1x1 Conv từ phần cứng.
Kết quả khối ShuffleUnit stage2 sau khi SysthesiS. Tài nguyên khối ShuffleUnit stage 2 sau khi Implementation. Báo cáo timing của khối ShuffleUnit stage?. Tin hiéu en = 1 dé dua giá trị vào tính toán sau khi nap trong SỐ.
Giá trị đầu ra hợp lệ khi valid = l.----2--2©55cs+cc+ec+eczeezeczrres 72 Hình 4. Khối ShuffleUnit basic được nap trong TU. Tài nguyên sau khi tổng NOP SYHẨÏ€SÏS. SG Hit 73 Hình 4.Tài nguyên sau khi tổng hop lmplermentatiOn.--- 2-52 25e 2+ce+ss73 Hình 4.
Báo cáo timing của khối ShuffleUnit. Delay giữa xung clock và tín hiệu VdÏHở.- --- 55 s+<<sss++ss++ss+ 74 Hình 4. Biểu đồ thé hiện chênh lệch giữa phần mém và phần cứng. Tín hiệu en được bật để đưa pixed vào khói để tính toán.
Tín hiệu en cho phép đưa dit liệu vào khối pool. Tín hiệu valid cho biết dữ liệu đầu ra SGN sàng. Tài nguyên khối GlobalPool sau khi tong hợp Synthesis. Tài nguyên khối GlobalPool sau khi tong hop implementation.
Báo cáo timing khối GlobalPool. Bảng so sánh kết quả giữa software và hardware (avgpool). Biểu đô thể hiện sự chênh lệch qua tắt cả các kênh đầu ra (avgpool). Tài nguyên khối FullyConnected sau khi Šynthesis.
Báo cáo timing của khối FullyConnieef€d. - 55-5 5e+St+E+E+EzEeres 79 Hình 4. Bảng so sánh kết quả giữa software và hardware (fC). Biểu đô thể hiện sự chênh lệch qua tat cả các kênh đầu ra (ƒc).
Reset IP ShU[fl€ÌN@[.- «ch ng HH HH ng 81 Hình 4. Nap trọng số cho IP ShuffleNet. Sau khi IP đã nạp xong tất cả trong SỐ.-------©cc©cc+ccccccrrcereeres 82 Hình 4. Đưa dữ liệu ảnh vào IP ShuƒƒleÌN©f.cẶSĂ Khi, 82 Hình 4.
Một số hình ảnh được sử dụng dé kiểm tra IP ShuffleNet. Kết quả kiểm tra IP ShuffleNet. Kết quả model ShuffleNet v2 sau khi Systh€SiS. Báo cáo timing cua model ShuffleNet v2 DANH MỤC BANG Bang 2.1: Kiến trúc tong thé của mô hình ShuffleNet v2.--- 2 e+ce+c+ee+eerxeei 5 Bang 2.2: So sánh các phương pháp Sigmoid trên FPGA[19] .3: Công thức tính hàm Sigmoid theo phương pháp PLANJI9].1: Kết quả lượng tử hóa mô hÌnh.-- 2-55 ©5£5+e2S++£+eExczx+rxerxrzreersees 19 Bảng 3.2: Các tín hiệu của khối M7122 PẼẼẺe---(‹(‹(‹((‹1Õ- 23 Bảng 3.3: Các tín hiệu của khối CONVOLUTION .4: Các tham số cầu hình khối ConvoÏMiOn.----©-2- 5c ©5e+cs+cscc+csccss 25 Bảng 3.5: Các tín hiệu khối CONV_CONKIOLLED ceccccccccsssscsvscscscsvsvscscscscssscsssssssesssereseseees 26 Bang 3.6: Cac tham số cầu hình khối conv_confrolÏer.-: se se se sstsEsEstsessssa 26 Bảng 3.7: Số lượng trong số khối ConnVOÌufÏOH.8: Các tín hiệu cua khối Depthwise Convolution.9: Các tham số cau hình khối Depthwise Convolution .10: Số lượng trọng số của 3x3DWConv.---5-©52©c<+cc+cscsrtezresrseei 39 Bang 3.11: Các tín hiệu của khối XI COND .-5-©22-55c©522c<+£tec£+rertezreerseei 41 Bảng 3.12: Các tham số cầu hình khối 1X1 CONV cecessescsssesssssssssstessessessssssssessesseessees 42 Bảng 3.13: Số lượng trọng số khối 1X] Convolution .14: Các tín hiệu cua khối POOÏÏT1Đ.
KH rc 44 Bang 3.15: Các tham số cầu hình cho khối POOÏÏH.16: Các tín hiệu của khối LiTi€AF.--- 5-52 52+s+EE+E+E+EE+EeEEeE+Eerkerrkereee 49 Bảng 3.17: Các tham số cầu hình cho khối LiH€AF.1: Tóm tắt kết quả đạt được hiỆn TqiÌ. cv ksitssrkesrrssersse 86 DANH MỤC TU VIET TAT CNN Convolutional Neural Network FPGA Field Programmable Gate Arrays SoCs Systerm on Chips ASIC Application-specific Integrated circuit GPU Graphics Processing Unit ARM Advanced RISC Machine HDL Hardware Description Language VHDL VHSIC Hardware Description Language FIFO First In, First Out DSP Digital Signal Processing ReLU Rectified Linear Unit FSM Finite State Machine MAC Multiply - Accumulate TÓM TẮT KHÓA LUẬN Trong đề tài nhóm tập trung nghiên cứu và thiết kế các khối có trong mô hình mạng ShuffleNet bằng ngôn ngữ đặc tả phần cứng Systerm Verilog.