1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Cải tiến giải thuật Deep Q-Network (DQN) sử dụng công nghệ SoC

48 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cải tiến giải thuật Deep Q-Network (DQN) sử dụng công nghệ SoC
Tác giả Hồng Anh Minh, Nguyễn Văn Thắng
Người hướng dẫn TS. Nguyễn Minh Sơn
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật máy tính
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 48
Dung lượng 46,56 MB

Cấu trúc

  • 2.1.1. Cai đặt môi trường........................ --- --- c1 1112113113113 1 1911811111111 11 1 E11 ng rệt 5 2.1.2. Khơng gian hành động của mơi trường Cartpoẽe....................... ..- ---- --‹++-ô++<+ 6 2.1.3. Không gian quan sat của môi trường Cartpole...................... ... .-- -----++s+++x++x+s 7 2.2. Reinforcement LL€aTnInỉ.......................- --- 2: 5c 2+ 3333321821121 EEEEEESEESEESkrrkrrkrrkrrerre 7 2.2.1. Deep Q-Learn1ng..................... ... --- --- - + TH TT HT TH nghe 8 2.2.2. Loss Function: Mean Square ETTOT.......................-- ¿2+2 *+*£+E+eEEeeeeeeeeeeees 9 2.2.3. Thuật toán Gradient desCennf.......................-- - ¿+ - + 213222112221 E +31 vecsrkersreerzee 9 2.2.4. Activation Function: Tianh((X)........................ - -- 5c 3S 3£ EE+vEEeeeeereeerseerse 10 2.3. Neural Network 1 .Ố (12)
  • 2.3.1. Thuật toán Forward-prOpagafIOI.................... ..- -- +: + tk Stsssirsrrsrrrreerske 12 2.3.2. Thuật toán Back-Propagat1ON................... ..- --- + + St 123 + 3 EErrrirrrrrrrrrrrey 13 2.3.3. Các thông số paraimet©r..................---- + 2 s+Sx+2E+EE+EE£EEEEEE2E171712211211 2x xe. 15 2.4. PetaLinux 0n (19)
  • 2.5. AXI4 PTOẨOCỌL........................ Gà 1T ng TH HT nh HH Tàn Hàn ng 17 2.6. Giới thiệu kit Zynq Ultrascale MPSoC và lý do sử dụng (0)
    • 2.6.1. Giới thiệu board MPSoC Genesys ZU 5EV.......................- 5c cccsssseereees 19 2.6.2. Lý do sử dụng kit ZynQ UltraScale MPSoC dé hiện thực...................... 22 Chương 3. THIẾT KE HỆ THNG.......................... 2-22 +2+SE£+EE+EEE£EEE2EE+2EEtEEEEEEerrxrrrree 23 (26)
  • 3.3. Mô tả thiết kế DQN Core IP theo chuẩn AXI (AXI_DỌN) (33)
    • 3.3.1. M6 ta interface oo... eee (0)
    • 3.3.2. Sơ đồ khối thiết Ke oe. eccceeecccsssseeesssseecessnseeesssnneessssnneesssnneeesssnneesss 27 3.3.3. Sơ đồ chuyền trạng thái hoạt động........................---2- 2 ++x2Extzzxrrxzrrree 28 3.4. Mô tả thiết kế hệ thống phần cứng ......................---- 2 2 s+Sx+£E£2E+2EE2EEeEEzEzrxered 29 3.4.1. Mô tả thiết kế AXI Central Direct Memory Access....................--.------s- 30 3.4.2. Mô tả thiết kế AXI Interconnect...............---- 2: 2s2+++2E+£E+£E+2Exzrxerreees 31 3.4.3. Mô tả thiết kế Processor System Reset ......cccsccesssesssesseessesssessessesseesseeens 31 3.4.4. Mô tả thiết kế Zynq UltraScale+ MPSOC .i.seecseccsssesssseseesessesseesseesseesees 32 3.4.5. Mô tả thiết kế AX GPIO......................--- ¿52 S22EE‡2E2EEEEEEEEEEEEEEEEEEEEEEErrrkrred 33 3.4.6. Mô tả thiết kế AXI Protocol Converfer.................-----c:::ccccvvcsvcvrvvrsrrree 33 3.4.7. Mô tả thiết kế Integrated Logic Analysis.................---- 2 5z+cx+zzsczzssres 34 3.5. Sơ đồ hoạt động phần cứng....................----¿- 2: 5¿+S%+Sx‡EEEEEE2EEEEXEEE2E12E1 111112. crvee 34 Chương 4. KET QUẢ..................... -- 2-52 2S2S22E1EE1EEEEE12E151111121121127111121121111 11.11 1e xe. 35 4.1. Kết quả kiểm tra sai số thiẾt KẾ....................--- 2-2 5+ 2+EESEESEEEEEEEEEEEEEEEEEErrrerreri 35 4.2. Kết quả implementation thiết kế........................-- 2-22 +2 z+EE2EE2EEtEEESEEzEErrrkerrree 36 4.3. Kết quả huấn luyện mô hình........................ -- 2-22 +EE£2EE£2EE£EEESEEE2EEzEErrkrrrrrere 37 4.4. So sánh kết quả thiết kế với các nghiên cứu liên quan (34)
  • 4.5. So sánh thiết kế so với thiết KE cũ.......................---cccvcrrrrtirrrrrtrirrrrrrrrrrrrrred 39 Chương 5. KET LUẬN VÀ HƯỚNG PHAT TRIEN DE TÀI (46)

Nội dung

Tất cả môi trường training và mạng Neural Network đều được nạp xuống SoC dé thực hiện huấn luyện và cập nhật trọng SỐ, đồng thời đưa ra hành động dé training với môi trường Cartpole.. Nh

Cai đặt môi trường - - c1 1112113113113 1 1911811111111 11 1 E11 ng rệt 5 2.1.2 Khơng gian hành động của mơi trường Cartpoẽe - ‹++-ô++<+ 6 2.1.3 Không gian quan sat của môi trường Cartpole -++s+++x++x+s 7 2.2 Reinforcement LL€aTnInỉ .- - 2: 5c 2+ 3333321821121 EEEEEESEESEESkrrkrrkrrkrrerre 7 2.2.1 Deep Q-Learn1ng - - - + TH TT HT TH nghe 8 2.2.2 Loss Function: Mean Square ETTOT . ¿2+2 *+*£+E+eEEeeeeeeeeeeees 9 2.2.3 Thuật toán Gradient desCennf . - ¿+ - + 213222112221 E +31 vecsrkersreerzee 9 2.2.4 Activation Function: Tianh((X) - 5c 3S 3£ EE+vEEeeeeereeerseerse 10 2.3 Neural Network 1 Ố

Môi trường Cartpole được phát triển trên nền tảng thư viện OpenAI Gym, một bộ công cụ Python dành cho nghiên cứu và phát triển thuật toán học tăng cường Tính đến thời điểm hiện tại, OpenAI Gym đã cung cấp hơn 700 môi trường mã nguồn mở cho người dùng.

Vào năm 2018, OpenAI cho phép người dùng tạo môi trường riêng của mình Điểm mạnh lớn nhất của OpenAI là cung cấp một giao diện thống nhất để làm việc với các môi trường này, đồng thời đảm nhận việc chạy mô phỏng, giúp người dùng tập trung vào các thuật toán học tăng cường.

Mỗi đối tượng trong môi trường Cartpole (env) có các chức năng chính như sau: Hàm step() nhận một hành động và trả về bốn đối tượng: observation, đại diện cho sự quan sát của môi trường; reward, giá trị float cho biết điểm thưởng từ hành động trước đó; done, gia trị Boolean báo hiệu kịch bản đã hoàn thành; và info, một dictionary Python chứa thông tin chi tiết Hàm render() tạo ra biểu diễn trực quan của môi trường, trong khi hàm reset() đặt lại môi trường về trạng thái ban đầu Mỗi đối tượng env đi kèm với các hành động và quan sát được xác định rõ ràng, được đại diện bởi action_space và Obser_space.

2.1.2 Không gian hành động của môi trường Cartpole

Bảng 2.1 Không gian hành động của môi trường Cartpole [2]

Môi trường Cartpole có hai hành động chính: hành động 0 di chuyển xe sang trái và hành động 1 di chuyển xe sang phải, như được mô tả trong bảng 2.1.

2.1.3 Không gian quan sát của môi trường Cartpole

STT Gia tri quan sat Min Max

Bảng 2.2 Gia tri quan sát của môi trường Cartpole

Bảng 2.2 trình bày môi trường quan sát của Cartpole với bốn thông số quan trọng: vị trí xe đẩy, tốc độ xe đẩy, góc nghiêng và tốc độ góc nghiêng Thuật toán DQN sẽ sử dụng bốn giá trị này để đưa ra các hành động tương ứng được liệt kê trong bảng 2.1.

Học tăng cường (Reinforcement Learning) là một trong ba dạng của Machine

Learning bên cạnh học giám sát (Supervised Learning) va học không giám sát

Reinforcement Learning is fundamentally based on trial-and-error, where experiences are gained through repeated attempts By leveraging the potential for endless exploration and experimentation, Reinforcement Learning has emerged as one of the most effective methods for advancing machine learning.

Trong reinforcement learning, có một số thuật ngữ quan trọng như sau: Agent là thực thể có khả năng quan sát môi trường và thực hiện hành động tương ứng Môi trường (Environment) là không gian xung quanh mà agent tồn tại và tương tác Trạng thái (State) là thông tin mà agent nhận được từ môi trường Hành động (Action) là phương thức mà agent sử dụng để tương tác và thay đổi môi trường, dựa trên trạng thái hiện tại S(t) Quan sát (Observation) diễn ra khi môi trường thay đổi trạng thái sau khi nhận được hành động từ agent Chính sách (Policy) là một ánh xạ từ các trạng thái của môi trường đến các hành động mà agent sẽ thực hiện, giữ vai trò cốt lõi trong việc xác định hành vi của agent nhằm đạt được mục tiêu Phần thưởng (Reward) là giá trị mà agent nhận được từ môi trường khi thực hiện hành động Cuối cùng, một tập hợp các trạng thái và hành động cho đến trạng thái kết thúc được gọi là Episode.

Dé agent biết phải chon action nào dé đạt được reward lớn nhất sẽ sử dụng một giá trị gọi là Q-value được tính bằng công thức Gradient Descent.

Deep Q-Learning involves several key steps: the environment provides the network with a state \( s \), and the output consists of the Q-values for the corresponding actions The agent selects an action based on a policy and executes that action The environment then returns the new state \( s' \) and the reward \( r \), which are the results of the action \( a \) This experience tuple \([s, a, r, s']\) is stored in memory Subsequently, experiences are sampled into batches for training purposes.

NeuralNetwork e Lặp lại đến khi kết thúc M episodes.

2.2.2 Loss Function: Mean Square Error

Mean Square Error (MSE), hay còn gọi là L2 Loss, là một hàm mất mát quan trọng trong các mô hình hồi quy, đặc biệt là hồi quy tuyến tính MSE được tính bằng tổng bình phương của sự chênh lệch giữa giá trị thực (y: mục tiêu) và giá trị dự đoán của mô hình (Ÿ: dự đoán) theo công thức 2.1.

1 Khởi tao gia tri x = xo tùy ý.

2 Gan x = x — learning rate * f(x) (learning rate là một hằng số đương (0 hoặc 1)).

3 Tính lai f(x): Nếu f(x) đủ nhỏ thì dừng lại, ngược lại tiếp tục bước 2.

Thuật toán sẽ thực hiện bước 2 nhiều lần (từ 100 đến 1000 lần, tùy thuộc vào bài toán và hệ số learning rate) cho đến khi giá trị f(x) đạt mức đủ nhỏ.

Việc chọn hệ số learning rate là rất quan trọng và có ba trường hợp chính Thứ nhất, nếu learning rate quá nhỏ, hàm số sẽ giảm rất ít, dẫn đến việc cần nhiều lần lặp để đạt giá trị nhỏ nhất Thứ hai, nếu learning rate hợp lý, sau một số lần lặp vừa phải, hàm số sẽ đạt giá trị đủ nhỏ Cuối cùng, nếu learning rate quá lớn, hiện tượng overshoot sẽ xảy ra, khiến hàm số không bao giờ đạt được giá trị nhỏ nhất.

Hàm tanh nhận đầu vào là một số thực và chuyển đổi thành giá trị trong khoảng (-1; 1), như thể hiện trong hình 2.2 Tương tự như hàm Sigmoid, hàm Tanh cũng bị bão hòa ở hai đầu, khiến gradient thay đổi rất ít Tuy nhiên, do hàm Tanh đối xứng qua 0, nó khắc phục được nhược điểm của hàm Sigmoid, vì hàm Sigmoid không có trung tâm là 0, điều này gây khó khăn cho quá trình hội tụ.

Hình 2.2 Đồ thị hàm Tanh(x) Trong đề tài sử dụng hàm Tanh(x) dựa theo lý thuyết liên phân số của Lambert

[4] được mô tả ở công thức 2.2. f(x) = 7 (2.2)

Mạng nơ-ron (neural network) là một mô hình toán học phức tạp được sử dụng để xử lý thông tin, kết nối các nút đơn giản, gọi là tế bào thần kinh Sự liên kết giữa nhiều tế bào thần kinh tạo thành một mạng lưới tương tự như nơ-ron trong não bộ, từ đó có tên gọi là mạng nơ-ron Công nghệ này được ứng dụng rộng rãi trong nhiều lĩnh vực như trò chơi điện tử, thị giác máy tính, nhận dạng giọng nói, lọc mạng xã hội, dịch tự động và chẩn đoán y tế.

Ba thành phần chính của mạng nơ-ron bao gồm: Lớp đầu vào (Input layer), đại diện cho dữ liệu đầu vào; Lớp ẩn (Hidden layer), thực hiện vai trò là các nút trung gian phân chia không gian đầu vào thành các vùng có ranh giới, nhận tập hợp đầu vào có trọng số và tạo ra đầu ra thông qua hàm kích hoạt.

(activation function). e Lớp đầu ra (Output layer): đại diện cho dau ra của mạng nơ-ron.

Mỗi mô hình luôn có 1 input layer, 1 output layer, có thé có hoặc không các hidden layer được thé hiện qua hình 2.3.

Mỗi nút trong lớp ẩn và lớp đầu ra đều liên kết với tất cả các nút ở lớp trước đó, với các trọng số riêng biệt Ngoài ra, mỗi nút còn có hệ số bias riêng của mình.

Hình 2.3 Mô hình Neural Network sử dụng trong đề tài

Thuật toán Forward-prOpagafIOI - +: + tk Stsssirsrrsrrrreerske 12 2.3.2 Thuật toán Back-Propagat1ON - - + + St 123 + 3 EErrrirrrrrrrrrrrey 13 2.3.3 Các thông số paraimet©r + 2 s+Sx+2E+EE+EE£EEEEEE2E171712211211 2x xe 15 2.4 PetaLinux 0n

Hinh 2.4 Layer 1 Neural Network yo=outHywe! + outH,wl?l+ outH;wẽ2]+ outH,w?! +p)? (2.3)

Hình 2.4 minh họa lớp layer 1 của Mạng Nơ-ron (Neural Network) cùng với giá trị trọng số được tính theo công thức 2.3 Trong đó, e outH đại diện cho kết quả của từng node trong hidden layer, wi! là trọng số tương ứng với node yo, x là thứ tự node đầu vào, o_ y là thứ tự node đầu ra trong tầng tiếp theo, và o [2] là số thứ tự tầng Ví dụ, wil là trọng số thứ nhất tương ứng với node thứ 0 của tầng tiếp theo, trong khi bí là bias tương ứng với node yo.

LY y¡ được tính toán tương tự như yo

Hạ= tanh(xạwÙ1 + x¡wll+ x;wlll+ x3wht! +bh) (2.4)

Hình 2.5 minh họa lớp layer 2 của Mạng Nơ-ron, trong đó giá trị trọng số được tính theo công thức 2.4 Dữ liệu đầu vào bao gồm các giá trị x0, x1, x2, x3, trong đó wii là trọng số tương ứng với node Hạ Thứ tự node đầu vào được ký hiệu là x, trong khi y là thứ tự node đầu ra trong tầng tiếp theo Số thứ tự của tầng được ký hiệu là [1] Cụ thể, wll là trọng số đầu tiên tương ứng với node thứ 0 của tầng tiếp theo Bias tương ứng với node Ho được ký hiệu là b, và hàm kích hoạt được sử dụng là tanh().

H,,H>,H; được tinh toán tương tự như Ho

Từ các đầu vào x, chúng ta có thể tính giá trị dự đoán J Tuy nhiên, nhiệm vụ chính là tìm kiếm các hệ số W (trọng số) và b (bias) Thuật toán gradient descent là một phương pháp quan trọng để thực hiện điều này, trong đó việc xác định đạo hàm của các hệ số đối với hàm mất mát (loss function) là yếu tố cốt lõi Quy trình tính đạo hàm của các hệ số trong mạng nơ-ron được thực hiện thông qua thuật toán Backpropagation.

Thuật toán Gradient Descent được sử dụng để tối ưu hóa, với hàm loss dựa trên công thức Mean Square Error Công thức 2.5 được áp dụng để cập nhật các trọng số tương ứng với đầu ra.

Wnew — Woa + a[ r + y(1 - done) maxQ' (s,a ) - Q(s,a)] OH (2.5) a

Công thức trên được tham khảo và phát triển từ công thức Gradient Descent được trình bày tai MIT Deep Learning [4].

Với hàm mat mát (loss function) được thé hiện ở công thức (2.6): loss = + ([r + ymaxQ (s.a)] - Q(s.a))? (2.6)

W„ey: Trọng số sau khi cập nhật.

Woia: Trọng số trước khi cập nhật. a: Hệ số học (Learning rate). r: điểm thưởng (reward).

+: Hệ số chiết khấu (gamma hay discount factor). maxQ ' (s,a): Giá trị Q lớn nhất của trang thái tiếp theo. a

Q(s,a): Giá trị Q của hiện tại.

OH: Đạo hàm của node tiền phong ảnh hưởng đến trọng số đang cần cập nhật.

Tính đạo hàm của wi! theo ham loss dựa theo công thức (2.7), (2.8), (2.9), (2.10) va được mô ta qua hình 2.6. dloss _ dloss dQ doutHg dHo

= - TT 2.7 wil dQ ` douH ` dHạ ` wll đ.2 ° Se QL r +ymaxQf(s.4) ] (2.8)

Hinh 2.6 M6 hinh thu nho cua NeuralNetwork su dung cho viéc cap nhat whi dQ 2 2 ° Fang V0 YL) 2 Woo! | Wor (2.9)

Voi: ir 1, 1], 1l, ° Ho=xowh! x;wlil4 xawl xạw|) Hol! ° outHy =tanh(Hạ)

H] Áp dụng công thức với các trong số còn lại của lớp thứ 1 wxy

Các thông số parameter được mô tả qua bảng 2.3 được sử dụng trong đề tài

Bảng 2.3 Các thông số parameter

Max_epsilon 1.0 100% chọn hành động ngẫu nhiên

Min epsilon 0.01 1% chọn hành động ngẫu nhiên

Epsilon decay intervals | 10000 |Khoảng giảm từ max epsilon => min epsilon

Gamma 0.99 |Hé số chiết khấu gamma

Memory_size 50000 |Kích thước bộ nhớ lưu trữ experiences

Số lượng kinh nghiệm tối thiểu trước khi

Min relay_ s1ze 1000 ; train batch_size 32

Target update frequency 1000 [Sau 1000 bước mới cập nhật Target_net

Max_num_step 40000 [Train trong 40000 bước di (trong 40000 bước đi sẽ có rât nhiêu ván chơi)

Learning rate 0.01 |Hệ số học

Learning rate là một trong những siêu tham số quan trọng nhất của mô hình, được định nghĩa là tỷ lệ cập nhật trọng số của mô hình dựa trên các mini-batch Độ lớn của learning rate ảnh hưởng trực tiếp đến tốc độ hội tụ của hàm loss đến điểm cực trị toàn cục Tác động của learning rate được thể hiện rõ trong Hình 2.7.

A smail learning rate requires many updates before reaching the minimum point

The optimal learning rate swiftly reaches the minimum point

Too large of a learning rate causes drastic updates which lead to divergent behaviors

Hình 2.7 minh họa các trường hợp của Learning rate Khi Learning rate quá nhỏ, các cập nhật trọng số sẽ diễn ra chậm, giúp tìm ra điểm cực tiểu chính xác hơn nhưng đồng thời cũng tiêu tốn nhiều thời gian để hội tụ Điều này có thể dẫn đến việc mô hình bị kẹt trong các cực tiểu cục bộ không mong muốn.

Khi sử dụng Learning rate quá lớn, thuật toán có thể học nhanh chóng, nhưng điều này dẫn đến việc nó dao động xung quanh hoặc thậm chí nhảy qua điểm cực tiểu.

Việc chọn learning rate phù hợp là rất quan trọng, vì nó giúp cân bằng giữa tốc độ hội tụ của thuật toán và khả năng tìm ra điểm cực tiểu Một learning rate không quá nhỏ cũng không quá lớn sẽ đảm bảo hiệu quả tối ưu trong quá trình học.

Mỗi bài toán cụ thé sẽ có các cách khác nhau dé tìm ra Learning rate phù hợp.

Gamma: y là hệ số chiết khấu, được sử dụng để xác định tầm quan trọng của phần thưởng trong tương lai.

PetaLinux là bộ công cụ phát triển phần mềm (SDK) Linux nhúng cho các thiết kế hệ thống trên chip (SoC) dựa trên FPGA, hỗ trợ nhiều dòng bo mạch như Versal Adaptive SoC, Zynq UltraScale+ MPSoC và Zynq 7000 SoC Các gói hỗ trợ bo mạch PetaLinux (BSP) cung cấp thiết kế tham khảo, giúp người dùng bắt đầu làm việc và tùy chỉnh dự án của mình PetaLinux có mã nguồn mở, cho phép người thiết kế tự do tùy chỉnh Tệp BSP được cung cấp bao gồm tất cả các tệp thiết kế, cấu hình, phần cứng đã được xây dựng và thử nghiệm, cùng với hình ảnh phần mềm để tải xuống hoặc khởi động trong môi trường mô phỏng QEMU Với PetaLinux, người dùng có thể khởi động và chạy trên phần cứng chỉ trong khoảng 5 phút sau cài đặt, sẵn sàng cho việc phát triển ứng dụng, thư viện và trình điều khiển.

Trong đề tài sử dụng giao thức AXI4 để thiết kế kiến trúc phần cứng, mô hình hoạt động của BUS AXI4 được mô tả trong hình 2.8 Nhóm thực hiện việc truyền dữ liệu giữa môi trường CartPole và bộ xử lý dữ liệu, nơi nhận dữ liệu từ môi trường và bắt đầu xử lý với thuật toán DỌN AXI4 là một giao thức BUS thuộc họ AMBA (Advanced Microcontroller Bus Architecture) được phát triển bởi ARM Giao thức AXI4 được ưa chuộng nhờ tính mở, cùng với nhiều đặc điểm hỗ trợ cho các hệ thống hiệu năng cao và tần số cao.

Hình 2.8 Mô hình hoạt động BUS AXI4

AXI operates through five independent channels: the Read Address channel (AR), which transmits address and control information for read transactions from the master to the slave; the Read Data channel (R), responsible for sending read data and response information from the slave back to the master; the Write Address channel (AW), which conveys address and control information for write transactions from the master to the slave; the Write Data channel (W), tasked with transferring write data from the master to the slave; and the Write Response channel (B), which communicates the response of a write transaction from the slave to the master.

AXI4 PTOẨOCỌL Gà 1T ng TH HT nh HH Tàn Hàn ng 17 2.6 Giới thiệu kit Zynq Ultrascale MPSoC và lý do sử dụng

Giới thiệu board MPSoC Genesys ZU 5EV .- 5c cccsssseereees 19 2.6.2 Lý do sử dụng kit ZynQ UltraScale MPSoC dé hiện thực 22 Chương 3 THIẾT KE HỆ THNG 2-22 +2+SE£+EE+EEE£EEE2EE+2EEtEEEEEEerrxrrrree 23

Đề tài được tôi ưu hóa phù hợp với tài nguyên trên Board MPSoC Genesys ZU

5EV thuộc hãng Xilinx được minh hoa qua hình 2.9 Trên board Genesys ZU

SEV có đầy đủ tính năng, độ linh động cao, tốc độ xử lý cao sử dụng Zynq

Hình 2.9 Kit MPSoC Genesys ZU 5EV

Dưới day là một số hỗ trợ của board Genesys ZU SEV:

- Cau hinh: o Mạch cấu hình JTAG trên board cho phép cau hình qua USB o_ Đầu đọc USB FTDI được dùng để lập trình và sửa lỗi

- Bo nhớ: o 4GB DDR4 SODIMM 2133 MT/s o Khe thé SD, tốc độ đọc tối đa 104 MB/s o 5.1 Mb Block RAM

- Giao tiếp và mạng: o SFP+ 10G Ethernet đầu nối thu phat o UART tới USB o Céng Ethernet 1Ghz

- Hiến thị: o HDMI Video OUT o Céng hién thi Dual-Lane 1.2a o 4x PL LEDs o 1x MIOLEDs

Bộ tạo dao động có tần số xung nhịp lên tới 250 MHz, sử dụng xung nhịp hệ thống cho FPGA Ngoài ra, bộ tạo này còn có khả năng lập trình với tần số 156.250 MHz như một đầu ra mặc định.

-_ Điều khiển va I/O: o Năm nút nhân PL o Bốn công tắc PL o_ Hai nút nhắn MIO

Mô tả các thành phan trên board Genesys ZU SEV được thé hiện qua bảng 2.4.

Bang 2.4 Các thành phần trên board Genesys ZU SEV

10 INIT, DONE, ERR and STS LEDs

21 Wireless and SSD activity LEDs

27 Zynq Ultrascale+, heat sink and fan

29 SIM card slot (on the bottom side)

2.6.2 Ly do sử dung kit ZynQ UltraScale MPSoC để hiện thực.

Genesys ZU 5EV đáp ứng đầy đủ các yêu cầu cần thiết cho việc thực hiện đề tài, bao gồm giao tiếp UART giữa host và FPGA Board tích hợp ARM Cortex-A53, tạo thuận lợi cho việc kết nối giữa FPGA và host cũng như giữa các IP Hơn nữa, board hỗ trợ xung nhịp cao, giúp tăng tốc độ xử lý dữ liệu hiệu quả.

Chương 3 THIET KE HE THONG

Chương 2 đã giới thiệu các lý thuyết tổng quát và thuật toán liên quan đến đề tài, trong khi chương 3 sẽ đi sâu vào chi tiết thiết kế hệ thống.

3.1 Mô tả tong quan hệ thống

TP Natural Network ni Floating Point

Cartpole Environment ere state, weight, bias to NN ARM Cotex A53 IP DQN - AXI4 Multiplier

Board: Genesys ZU SEV Hardware (EL

Hình 3.1 Tổng quan thiết kế hệ thống

Hệ thống được mô tả trong hình 3.1, bắt đầu với ARM Cortex A53 khởi động và cấu hình PetaLinux, sau đó chạy môi trường Cartpole Trong quá trình này, môi trường cung cấp thông số cho DQN Core IP, cho phép nó tiếp nhận dữ liệu, thực hiện tính toán, đưa ra hành động và cập nhật trọng số cho hành động tiếp theo Kết quả hành động sẽ được gửi lại môi trường để tính điểm thưởng, trong khi dữ liệu đầu ra được lưu trữ trong DDR4 Cuối cùng, Processor ARM Core sẽ lấy giá trị từ DDR4 và gửi lại môi trường Chức năng của từng khối trong hệ thống được trình bày chi tiết trong bảng 3.1.

Bảng 3.1 Bảng mô tả chức năng từng khối trong hệ thống

Là khối IP có chức năng tính toán hành động và

DQN Core IP „ tự cập nhật trọng sô.

UART Công kết nối dé nạp dữ liệu USB Công kết nối với thiết bị ngoại vi CDMA Là bộ truy cập bộ nhớ trực tiếp

DDR4 Bộ nhớ lưu trữ Cartpole và dữ liệu đầu ra của DQN Core IP

ARM Cortex A53 Bộ xu lý

3.1.1 Mô tả DQN Core IP cải tiến

Hệ thống DQN được mô tả qua hình 3.2, trong đó DỌN Core IP đảm nhận vai trò đưa ra hành động và tự động cập nhật trọng số Đầu vào của hệ thống bao gồm trạng thái môi trường, trọng số và bias từ môi trường Cartpole (mã Python) Đầu ra là hành động được trả về từ môi trường, từ đó tính điểm thưởng như thể hiện trong hình 3.2.

3.2 Quy trình thiết kế hệ thống

Nghiên cứu về thuật toán

DỌN và DỌN Core IP

Thiết kế lại và đóng gói DQN

Core IP theo chuân AXI

Thiết kế kiến trúc với

Thiết kế device tree cho hé dieu hanh

Cai dat, cau hình môi trường PetaLinux

Quy trình thiết kế hệ thống được minh họa trong hình 3.3, bắt đầu bằng việc nhóm nghiên cứu các khái niệm về Deep Learning, thuật toán Deep Q-Network, và các thành phần như Loss Function: Mean Square Error, AXI Bus, cùng với DQN Core IP Sau đó, nhóm sử dụng ngôn ngữ mô tả phần cứng Verilog để thiết kế và đóng gói IP theo tiêu chuẩn AXI.

Tiếp tục nghiên cứu về Bus AXI, chúng ta sẽ tìm hiểu cách hoạt động và thiết kế driver cho DQN Core IP sử dụng phần mềm Vitis Tiếp theo, thiết kế device tree cho hệ điều hành sẽ được thực hiện, từ đó tiến hành cài đặt và cấu hình môi trường PetaLinux.

Sau khi hoàn tất thiết kế phần cứng và cấu hình môi trường Cartpole trên hệ điều hành, bước tiếp theo là nạp phần mềm vào board và tiến hành huấn luyện mô hình Cartpole Sau quá trình huấn luyện, môi trường Cartpole có khả năng tự hoạt động và đạt được số điểm gần như tuyệt đối, lên tới 200.

Mô tả thiết kế DQN Core IP theo chuẩn AXI (AXI_DỌN)

Sơ đồ khối thiết Ke oe eccceeecccsssseeesssseecessnseeesssnneessssnneesssnneeesssnneesss 27 3.3.3 Sơ đồ chuyền trạng thái hoạt động -2- 2 ++x2Extzzxrrxzrrree 28 3.4 Mô tả thiết kế hệ thống phần cứng 2 2 s+Sx+£E£2E+2EE2EEeEEzEzrxered 29 3.4.1 Mô tả thiết kế AXI Central Direct Memory Access . s- 30 3.4.2 Mô tả thiết kế AXI Interconnect . 2: 2s2+++2E+£E+£E+2Exzrxerreees 31 3.4.3 Mô tả thiết kế Processor System Reset cccsccesssesssesseessesssessessesseesseeens 31 3.4.4 Mô tả thiết kế Zynq UltraScale+ MPSOC i.seecseccsssesssseseesessesseesseesseesees 32 3.4.5 Mô tả thiết kế AX GPIO - ¿52 S22EE‡2E2EEEEEEEEEEEEEEEEEEEEEEErrrkrred 33 3.4.6 Mô tả thiết kế AXI Protocol Converfer . -c:::ccccvvcsvcvrvvrsrrree 33 3.4.7 Mô tả thiết kế Integrated Logic Analysis . 2 5z+cx+zzsczzssres 34 3.5 Sơ đồ hoạt động phần cứng ¿- 2: 5¿+S%+Sx‡EEEEEE2EEEEXEEE2E12E1 111112 crvee 34 Chương 4 KET QUẢ 2-52 2S2S22E1EE1EEEEE12E151111121121127111121121111 11.11 1e xe 35 4.1 Kết quả kiểm tra sai số thiẾt KẾ - 2-2 5+ 2+EESEESEEEEEEEEEEEEEEEEEErrrerreri 35 4.2 Kết quả implementation thiết kế 2-22 +2 z+EE2EE2EEtEEESEEzEErrrkerrree 36 4.3 Kết quả huấn luyện mô hình 2-22 +EE£2EE£2EE£EEESEEE2EEzEErrkrrrrrere 37 4.4 So sánh kết quả thiết kế với các nghiên cứu liên quan

DQN Core IP bao gồm ba thành phần chính: khối Neural Network để dự đoán hành động cho trạng thái tiếp theo, khối Update để cập nhật trọng số và độ lệch cho Neural Network, và khối Control để phân chia chức năng cho các module một cách hợp lý Thiết kế có một thanh RAM với 35 thanh ghi 32 bits, trong đó 34 thanh ghi lưu giữ giá trị trọng số, còn thanh cuối cùng lưu giữ các giá trị input khác của DQN Core IP (Valid_in).

Hình 3.5 trình bày sơ đồ khối của DỌN Core IP, trong khi bảng 3.3 cung cấp mô tả chi tiết về chức năng của từng khối trong thiết kế của DQN Core IP.

Hình 3.5 Mô tả các khối trong DỌN Core IP data_in[34] —32_—> act data_in[0] 32 clk resetn

Bang 3.3 Mô tả khối chức năng trong IP DQN

Neural Network Dự đoán hành động cho trạng thái tiếp theo.

Cập nhật trọng số (weight) và độ lệch (bias) cho Neural Network

Update ở trang thái tiếp theo.

Control Phân chia chức nang cho các module.

3.3.3 So đồ chuyến trạng thai hoạt động

Hình 3.6 Sơ đồ chuyền trạng thai

Sơ đồ trạng thái bắt đầu hoạt động khi nhận tín hiệu start, nhập 34 dữ liệu (state, weight, bias) của trạng thái hiện tại để khối Neural Network thực hiện tính toán Sau khi hoàn tất, mạch kiểm tra tín hiệu mode; nếu mode = 0, mạch trả lại hành động (act) dự đoán cho trạng thái tiếp theo Nếu mode = 1, mạch tiếp tục nhập 34 input cho các giá trị của trạng thái tiếp theo (weight_next, bias_next, next state) và dựa vào giá trị Tanh từ khối Neural Network đầu tiên cùng với Qmax_next từ khối thứ hai, tính toán các trọng số mới dựa trên các hyperparameter đã cài đặt Mỗi trọng số hay bias được tính toán sẽ được xuất ra ngõ data_out, đồng thời tín hiệu valid_out sẽ được bật để báo hiệu có output, cho đến khi tất cả trọng số được xuất hoàn tất.

3.4 Mô tả thiết kế hệ thống phần cứng

Hệ thống phần cứng được mô tả qua hình 3.7 và chỉ tiết từng khối của thiết kế được mô tả theo bảng 3.4.

Hình 3.7 Hình ảnh chỉ tiết thiết kế phần cứng

Bảng 3.4 Bảng mô tả chức năng từng khối

AXI Central Direct Memory Access

Bộ DMA (Direct Memory Access) giúp đọc/ghi trực tiếp vào bộ nhớ.

AXI Interconnect Bộ định tuyến có chức năng thực hiện giao tiếp giữa các master và slave trong hệ thông Processor System Reset Bộ Reset hệ thống

Zynq UltraScale+ MPSoC_ | Bộ xử lý Zynq

IP update DỌN axi 0 DON Core IP được thiết kế theo chuan AXI.

AXI GPIO_ * GPIO dùng để debug.

AXI Protocol Converter Bộ chuyên đổi AXI Full sang AXI Lite.

; Debug core dùng dé giám sát mạch dưới board

Integrated Logic Analysis ail thoi gian thuc.

3.4.1 Mô tả thiết kế AXI Central Direct Memory Access axi_cdma_1

— s axi lite aclk cdma_introut = © s_axi_lite_aresetn

AXI Central Direct Memory Access

Hình 3.8 Thiết kế AXI Central Direct Memory Access

Khối AXI CDMA, như được thể hiện trong hình 3.8, cho phép khối AXI DQN truy cập và xử lý dữ liệu nhanh chóng trên bộ nhớ DDR4 thông qua giao thức AXI4 Các thanh ghi được khởi tạo và trạng thái được điều khiển qua giao thức AXI4-Lite giữa Master và Slave, tương thích với bộ xử lý ARM Cortex A53 AXI CDMA hoạt động như một cầu nối giữa ZynQ và DDR4.

3.4.2 Mô ta thiết kế AXI Interconnect axi_interconnect_0

Hinh 3.9 Thiét ké AXI Interconnect

AXI Interconnect, như thể hiện trong hình 3.9, được sử dụng để kết nối một hoặc nhiều thiết bị Master với một hoặc nhiều thiết bị Slave thông qua việc ánh xạ bộ nhớ AXI Giao diện AXI tuân thủ thông số kỹ thuật AMBA® AXI phiên bản 4.

ARM®, bao gồm tập hợp con giao diện thanh ghi điều khiển AXI4-Lite IP AXI

Interconnect được sử dụng để truyền ánh xạ bộ nhớ, trong đó IP AXI Interconnect có thể được lấy từ danh mục IP VivadoTM dưới dạng pcore từ Bộ công cụ phát triển nhúng.

AXI Interconnect, được phát triển từ EDK hoặc lõi độc lập của danh mục IP CORE GeneratorTM, hỗ trợ chuyển đổi độ rộng dữ liệu tích hợp và tốc độ xung nhịp đồng bộ/không đồng bộ Nó cũng cho phép chuyển đổi giữa các giao thức AXI4-Lite và AXI3, với khả năng hỗ trợ master chỉ đọc và chỉ ghi, giúp tối ưu hóa mức sử dụng tài nguyên.

3.4.3 Mô tả thiết kế Processor System Reset rst_ps7_0_100M

— slowest_sync_clk mb_reset —

“© ext reset in bus_struct_reset[0:0] = © aux_reset_in peripheral_reset{0:0] =

“ mb_debug_sys_rst interconnect_aresetn(0:0] ©

Hinh 3.10 Thiét ké Processor System ResetProcessor System Reset cho phép điều chỉnh thiết kế cho phù hợp với ứng dụng bang cách đặt các thông số nhất định dé bật/tắt các tính năng Các tính năng có thé tham số hóa cho thiết kế.

3.4.4 Mô tả thiết kế Zynq UltraScale+ MPSoC zynq_ ultra_ Ps_e 0- i) 5 AM HPC0 FPD M.AXIHPM1.FPb +j‡>—=

—— maxihpm1_fpd_aclk emio_enetO_enet_tsu_timer_cnt(93:0) =

Zynq UltraScale+ MPSoC, như minh họa trong hình 3.11, là một SoC không đồng nhất với nhiều công cụ xử lý và thiết bị ngoại vi tốc độ cao Hệ thống bộ xử lý bao gồm APU lõi tứ dựa trên ARM® CortexTM A53, APU lõi kép dựa trên ARM Cortex R5 RPU, bộ xử lý đồ họa Mali, bộ quản lý nền tảng và bộ giải mã video (VCU) Nó hỗ trợ chuyển giao các ứng dụng quan trọng như đồ họa và video sang các khối xử lý chuyên dụng, đồng thời quản lý hiệu quả nguồn điện và các chế độ hoạt động thông qua các miền power và đảo điện có kiểm soát Với nhiều tùy chọn kết nối, khối DSP và các lựa chọn khác, Zynq UltraScale+ MPSoC mang đến khả năng linh hoạt cho các ứng dụng hiện đại.

PL, Zynq UltraScale+ MPSoC có tính linh hoạt tổng thé dé phù hợp với nhiều nhu câu ứng dụng của người dùng.

ZynqTM UltraScale+TM MPSoC mang đến khả năng mở rộng bộ xử lý 64 bit, kết hợp giữa điều khiển thời gian thực và các công cụ phần mềm, phần cứng để xử lý đồ họa, video, sóng và gói Được xây dựng trên nền tảng với bộ xử lý thời gian thực và logic lập trình linh hoạt, sản phẩm này có ba biến thể chính: thiết bị bộ xử lý ứng dụng kép (CG), thiết bị bộ xử lý ứng dụng kép và GPU (EG), cùng với thiết bị codec video.

(EV), tao ra khả năng không giới hạn cho các ứng dụng như như 5G Wireless,

ADAS thé hệ tiếp theo và Internet-of-Things Hình 3.12 mô tả các thành phan trong core ZynQ MPSoC.

Trong kiến trúc này, ZynQ đóng vai trò là hệ thống xử lý chính, đảm nhiệm chức năng xử lý và điều khiển các khối con, như được minh họa trong hình 3.12.

3.4.5 Mô tả thiết kế AXI_GPIO

Hình 3.13 Thiết kế AXI_GPIO

AXI GPIO, như được thể hiện trong hình 3.13, cung cấp giao diện đầu vào/đầu ra cho mục đích chung thông qua giao thức AXI4 Thiết bị này có thể được cấu hình thành một hoặc hai kênh, với chiều rộng của mỗi kênh có thể được cấu hình độc lập GPIO thường được sử dụng trong thiết kế để phục vụ cho việc debug và kích hoạt bộ ILA (Integrated Logic Analyzer).

3.4.6 Mô ta thiết kế AXI Protocol Converter axi_protocol_convert_0 i+ sax 5 aclk @ =Eẽ M_AXL + aresetn

Hinh 3.14 Thiét ké AXI Protocol Converter

AXI Protocol Converter, như hình 3.14, là khối chuyển đổi giao thức thuộc họ AMBA, cho phép chuyển đổi giữa các giao thức như AXI4 và AXI, hoặc từ AXI4 sang AXI4-LITE Thiết kế DQN Core IP sử dụng AXI-LITE thay vì AXI4-FULL của ZynQ Ultrascale+ nhằm giảm thiểu số lượng gate không cần thiết AXI Protocol Converter đảm bảo tính chính xác trong việc thực hiện các giao dịch qua Bus AXI.

3.4.7 Mô tả thiết kế Integrated Logic Analysis la T

Hinh 3.15 Thiét ké Integrated Logic Analysis Integrated Logic Analysis được thê hiện qua hình 3.15, là lõi phân tích logic có thé được sử dụng dé giám sát các tín hiệu bên trong của thiết kế ILA bao gồm nhiều tính năng nâng cao của máy phân tích logic hiện đại, bao gồm các phương trình kích hoạt Boolean và trình kích hoạt chuyển tiếp cạnh Bởi vì ILA đồng bộ với thiết kế đang được giám sát nên tất cả các ràng buộc về xung nhịp được áp dụng cho kiến trúc cũng được áp dụng cho các thành phần bên trong ILA Ở thiết kế này sử dụng ILA dé kiểm tra xem DQN Core IP có thé hoat động chính xác ở các tần số khác nhau hay không, và đồng thời cũng kiểm tra được khi đóng gói theo AXI thì

DỌN có còn hoạt động bình thường như trước không.

3.5 Sơ đồ hoạt động phần cứng

DQN Core IP >> (Intergrated Logic

Hình 3.16 Sơ đồ hoạt động phan cứng

Sơ đồ hoạt động phần cứng được thể hiện qua hình 3.16, cho thấy thiết kế hoạt động hoàn toàn trên môi trường PetaLinux trên board Trong quá trình này, CartPole sẽ cung cấp 4 giá trị không gian quan sát, bao gồm vị trí cart, vận tốc cart, góc pole và vận tốc góc pole Môi trường Python, do ARM Cortex A53 xử lý, sẽ thực hiện tính toán và trả về cho DQN IP 24 trọng số và 6 độ chệch để cập nhật trọng số Cuối cùng, sau khi DQN_IP tính toán và đưa ra hành động, môi trường Python sẽ tính điểm thưởng.

So sánh thiết kế so với thiết KE cũ . -cccvcrrrrtirrrrrtrirrrrrrrrrrrrrred 39 Chương 5 KET LUẬN VÀ HƯỚNG PHAT TRIEN DE TÀI

Phân mẻm [DĐ Phản cúng [ĐI Nghiên cứu [2] Đề xuất

Trong kiến trúc đề xuất của nhóm, thiết kế đã tự động cập nhật trọng số bằng phần cứng, khác với nhóm kế thừa chỉ sử dụng kết quả từ môi trường cartpole trên phần mềm Nhóm hiện tại đã cải tiến quy trình bằng cách gửi trọng số và tự cập nhật chúng trên phần cứng, từ đó đưa ra hành động an toàn và đạt được số điểm tối đa nhanh hơn so với nhóm kế thừa Sự khác biệt này được thể hiện rõ qua bảng 4.4.

Bảng 4.4 So sánh thời gian huấn luyện

Huấn luyện phân mém (sec) | Huấn luyện phan cứng(sec) Nghiên cứu số [2] ~1471s ~6 phút / hành động

Chương 5 KET LUẬN VA HUONG PHÁT TRIEN DE TÀI

Kết luận, đề tài đã hoàn thành các mục tiêu đề ra, bao gồm việc cải tiến giải thuật Deep Q-Network trên phần cứng và thiết kế kiến trúc hoàn chỉnh với BUS AXI Nhóm đã nắm bắt được thiết kế IP DỌN trên công nghệ SoC và đạt được kết quả mong muốn Tuy nhiên, nhóm vẫn chưa hiện thực hóa IP DỌN trên phần cứng.

Nhóm gặp khó khăn trong việc truyền tải dữ liệu xuống board Genesys ZU 5EV, dẫn đến việc tiêu tốn nhiều thời gian để tìm hiểu sâu hơn về các thuật toán Deep Learning Họ cần nắm rõ cách cập nhật giá trị trọng số sau khi huấn luyện, cũng như cách hoạt động của IP DỌN, chuẩn BUS AXI và PetaLinux.

Học tăng cường sâu là một mô hình yêu cầu sử dụng nhiều thuật toán phức tạp Nhóm gặp khó khăn trong việc nắm vững kiến thức cơ bản về học sâu, học tăng cường, các chính sách tương tác với môi trường và các thuật toán ổn định cho mô hình Bên cạnh đó, kiến thức về phần cứng FPGA, đặc biệt là cách sử dụng LUTRAM và BRAM, cũng là một thách thức lớn.

Quá trình Synthesis và Implementation mat nhiều thời gian do đó gây khó khăn trong quá trình sửa lỗi.

Nhóm nghiên cứu đang hướng tới việc ứng dụng mô hình kiến trúc Deep Q-Network trên nền tảng FPGA cho các bài toán thực tế, như xe tự hành và tự động hóa trong công nghiệp, thay vì chỉ giới hạn trong việc tương tác với môi trường giả lập.

Ngày đăng: 30/11/2024, 02:21

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN