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

Luận văn thạc sĩ Khoa học máy tính: Giải pháp tăng tốc AI trong các hệ thống dựa trên RISC-V

94 12 1
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 đề Giải pháp tăng tốc AI trong các hệ thống dựa trên RISC-V
Tác giả Đặng Thành Lập
Người hướng dẫn PGS. TS. Trần Ngọc Thịnh
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Khoa học Máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 94
Dung lượng 3,47 MB

Nội dung

Các chip AI ngày nay được nghiên cứu và ứng dụng cho các mục đíchthương mại trong các lĩnh vực huấn luyện dữ liệu, big data đều sử dụng các tiêu chí trên.Trong đề tài này tôi đề xuất một

Trang 1

ĐẶNG THÀNH LẬP

GIẢI PHÁP TĂNG TỐC AITRONG CÁC HỆ THỐNG DỰA TRÊN RISC-V

Chuyên ngành: Khoa Học Máy TínhMã số: 8480101

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 06 năm 2024

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM

Cán bộ hướng dẫn khoa học: PGS TS Trần Ngọc Thịnh

(Ghi rõ họ, tên, học hàm, học vị và chữ ký)Cán bộ chấm nhận xét 1: PGS.TS Trần Mạnh Hà (Phó Ban ĐT - ĐHQG)

(Ghi rõ họ, tên, học hàm, học vị và chữ ký)Cán bộ chấm nhận xét 2: TS Phạm Trung Kiên (ĐHQT)

(Ghi rõ họ, tên, học hàm, học vị và chữ ký)Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.HCM ngày 18tháng 06 năm 2024.Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)1 Chủ tịch: PGS.TS Trần Văn Hoài

2 Thư ký: TS Lê Trọng Nhân

Trang 3

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: ĐẶNG THÀNH LẬP MSHV: 2270247 Ngày, tháng, năm sinh: 30 - 04 - 1991 Nơi sinh: Quảng Ngãi Chuyên ngành: Khoa Học Máy Tính Mã số: 8480101 I TÊN ĐỀ TÀI:

Tên tiếng việt: Giải pháp tăng tốc AI trong các hệ thống dựa trên RISC-V.Tên tiếng anh: AI Acceleration Solution in RISC-V based systems

II NHIỆM VỤ VÀ NỘI DUNG:1 Tìm hiểu tập lệnh RISC-V, lý thuyết AI, Deep Learning, dataset MNIST Dùng Kerasđể huấn luyện, validate, test mô hình CNN với 70000 (10000 testing) dataset MNIST trênnền tảng Google Colab

2 Xây dựng model CNN kết hợp Wallace Tree Adder và Parallel Prefix Adder CNN), hỗ trợ tính toán suy luận trên nền tảng core RISC-V với ngôn ngữ C/C++ bằngphương pháp HLS Vitis 2023.2 Kiểm thử, Built và export RTL để dùng trong Vivado.3 Tinh chỉnh core RISC-V BlackParrot, tích hợp hệ thống phần cứng, phần mềm (modelWalaP-CNN vào RISC-V, simulate trên Vivado 2023), build Bitstream và flash kiểm thửtrên FPGA VC707, so sánh đánh giá hiệu suất thực thi, năng lượng, tài nguyên với coreRISC-V gốc và với các công trình trước đó

(WalaP-III NGÀY GIAO NHIỆM VỤ: 15 - 01 - 2024 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 20 - 05 - 2024 V CÁN BỘ HƯỚNG DẪN: PGS.TS Trần Ngọc Thịnh

Tp HCM, ngày tháng năm 2024

CÁN BỘ HƯỚNG DẪN(Họ tên và chữ ký)

HỘI ĐỒNG NGÀNH(Họ tên và chữ ký)

TRƯỞNG KHOA(Họ tên và chữ ký)

Trang 4

Để hoàn thành đề tài luận văn này, tôi xin chân thành gửi lời cảm ơn và bày tỏ lòngbiết ơn sâu sắc tới quý thầy, cô trong khoa Khoa học và Kỹ thuật Máy tính, bộ môn Kỹthuật Máy tính, trường Đại học Bách Khoa Tp Hồ Chí Minh, những người luôn hết lòngtận tụy cống hiến tài năng và tri thức của mình cho sự nghiệp giáo dục Đặc biệt, tôi xingửi lời cảm ơn chân thành và trân trọng nhất đến thầy PGS.TS Trần Ngọc Thịnh đã tậntình hướng dẫn, hỗ trợ và giúp đỡ trong suốt quá trình hơn 1 năm từ thực hiện tìm hiểuđề cương đến nghiên cứu và thực hiện đề tài luận văn.

Tôi cũng xin gởi lời cảm ơn đến các anh/chị, các bạn, các em cùng khoa cũng nhưkhác khoa, đặc biệt là tất cả thành viên của tập thể Lab đã hỗ trợ, giúp đỡ và góp phầnđịnh hướng nghiên cứu trong suốt quá trình học tập và sinh hoạt tại trường Đại học BáchKhoa Tp Hồ Chí Minh

Gia đình luôn là điểm tựa, là nguồn cung cấp năng lượng để vươn lên mỗi ngày Đólà cha mẹ, là vợ con, họ là động lực không mệt mỏi để tôi cố gắng hoàn thành mục tiêucủa luận văn này

Trang 5

Trong những năm gần đây, AI ngày càng phát triển mạnh mẽ, là chiến lược khoahọc công nghệ mũi nhọn của các quốc gia Đi song song với sự công nghệ phần mềm AI,phần cứng cũng có những bước tiến để đáp ứng nhu cầu huấn luyện dữ liệu, xử lý hìnhảnh hay ứng dụng trên các thiết bị tính toán biên (Edge Computing) với hiệu suất cao.Đó là đáp ứng các tiêu chí về tốc độ thực thi, sự chính xác, mức độ khả năng sử dụng tàinguyên phần cứng Các chip AI ngày nay được nghiên cứu và ứng dụng cho các mục đíchthương mại trong các lĩnh vực huấn luyện dữ liệu, big data đều sử dụng các tiêu chí trên.Trong đề tài này tôi đề xuất một khối tăng tốc AI CNN là WalaP-CNN là sự kết hợp giữmodel Deep Learning CNN và phương pháp Adder Tree Wallace + Parallel Prefix Adderđược tích hợp bên trong chip với lõi RISC-V BlackParrot x64bit, dual core bao gồm 2thành phần chính: phần cứng là hệ thống dựa trên RISC-V và phần mềm bao gồm cácchương trình C phục vụ huấn luyện và suy luận mô hình CNN trên phần cứng tươngứng Hệ thống được triển khai và đánh giá dựa trên công nghệ FPGA và High-LevelSynthesis (HLS) với thử nghiệm được thực hiện trên bo mạch Virtex VC707 Với việckiểm thử ở các Layer cơ bản, tốc độ tính toán tăng gấp nhiều lần ở Convolution Layer,Fully-Connected layer và ở Pooling Layer Mô hình được kiểm thử với dataset MNIST,đạt được độ chính xác là 98.55%, tốc độ xử lý tăng lên đáng kể so với core RISC-V gốc(đạt 0,0206 ms/frame) và mức tiêu thụ tài nguyên ở mức 55%, GOPS đạt 71.62 So sánhvới các công trình trước đó, công trình trong luận văn này cũng đạt được những độ chínhxác và thời gian thực thi nhanh hơn, đồng thời sử dụng tài nguyên phần cứng gấp 1,3lần, mặc khác công trình của tôi hỗ trợ 32bit data nên tài nguyên sử dụng nhiều hơn làcó thể chấp nhận được Có được những kết quả ban đầu, mục tiêu của luận văn là thiếtkế một model AI tích hợp trong RISC-V để ứng dụng trong các hệ thống tính toán biênIoT thời gian thực với hiệu suất cao, đây là một hướng tiềm năng của FPGA, bên cạnhcác hướng phát triển chip tiết kiệm năng lượng (ví dụ như PULP platform).

Trang 6

In recent years, AI has been developing rapidly and has become a key scientificand technological strategy for many countries Alongside advancements in AI software,hardware has also made significant strides to meet the demands of data training, imageprocessing, and applications on edge computing devices with high performance This in-volves meeting criteria for execution speed, accuracy, and efficient utilization of hardwareresources Today’s AI chips are researched and applied for commercial purposes in fieldslike data training and big data, adhering to these criteria In this project, I propose anAI CNN accelerator block called WalaP-CNN, which combines the Deep Learning CNNmodel with the Wallace Tree Adder + Parallel Prefix Adder method, integrated into a chipwith a 64-bit dual-core RISC-V BlackParrot core The system includes two main com-ponents: hardware, which is based on the RISC-V system, and software, which consistsof C programs for training and inferencing CNN models on the corresponding hardware.The system is deployed and evaluated using FPGA technology and High-Level Synthesis(HLS), with tests conducted on the Virtex VC707 board Testing basic layers showed sig-nificant computational speed increases in the Convolution Layer, Fully-Connected Layer,and Pooling Layer The model was tested with the MNIST dataset, achieving an accuracyof 98.55%, a significant processing speed improvement compared to the original RISC-V core (reaching 0.0206 ms/frame), and a resource utilization rate of 55%, with GOPSreaching 71.62 Compared to previous works, this thesis’s project achieves higher accu-racy and faster execution time, while using 1.3 times more hardware resources However,my project supports 32-bit data, so the higher resource usage is acceptable With theseinitial results, the goal of the thesis is to design an AI model integrated into RISC-V forEdge computing real-time high-performance IoT systems, which is a promising directionfor FPGA development, alongside the development of energy-efficient chips (such as thePULP platform).

Trang 7

Tôi: Đặng Thành Lập cam kết toàn bộ sản phẩm này là kết quả của quá trình nghiêncứu và hiện thực dưới sự hướng dẫn và giúp đỡ của PGS.TS Trần Ngọc Thịnh tại trườngĐH Bách Khoa Tp Hồ Chí Minh, ngoài trừ những cơ sở lí thuyết và công trình nghiêncứu được trình bày cụ thể ở phần tài liệu tham khảo Những kết quả, số liệu thu nhậpđược là kết quả rõ ràng, trung thực và không sao chép ở bất kỳ nguồn nào Nếu có bấtkỳ sai phạm nào được phát hiện, tôi sẵn sàng chịu mọi hình thức kỷ luật và trách nhiệmtrước pháp luật.

Tp Hồ Chí Mính, 06/2024

Đặng Thành Lập

Trang 8

1.1 Tính cấp thiết, mục đích nghiên cứu 1

1.2 Đề xuất phương pháp 3

1.3 Cấu trúc của luận văn 5

2 Cơ sở lý thuyết 62.1 Trí tuệ nhân tạo – Artificial Intelligence 6

2.1.1 Lý thuyết về học sâu 8

2.1.2 Khái quát vài mô hình Deep Learning 13

2.1.3 Các độ đo đánh giá mô hình Deep Learning 15

2.2 RISC-V 16

2.2.1 Giới thiệu RISC và RISC-V 16

2.2.2 Kiến trúc tập lệnh của RISC-V 19

2.2.3 Tìm hiểu một số core RISC-V 26

2.3 Wallace Tree Adder 28

2.3.1 Nguyên lý Wallace Tree 28

2.3.2 Tối ưu Wallace Tree với Prefix Adder 30

3 Các nghiên cứu liên quan 333.1 Nghiên cứu trên nền tảng RISC-V 33

3.2 Nghiên cứu trên nền tảng khác 41

Trang 9

4.1.1 Tham số hóa thiết kế tổng quát 47

4.1.2 Tham số hóa thiết kế layer tích chập 48

4.2 Thiết kế chi tiết 49

5.1.1 Thiết kế tổng quát hệ thống 55

5.1.2 Giao tiếp BlackParot core và WalaP-CNN 56

5.2 Phát triển phần mềm 57

5.2.1 Công cụ đào tạo mô hình Deep Learning 58

5.2.2 Công cụ biên dịch chương trình 58

5.2.3 Suy luận trên mô hình Deep Learning 58

5.3 Thiết kế High-Level Synthesis 59

6 Kết quả và đánh giá 616.1 Giới thiệu về dataset 61

6.2 Triển khai trên phần cứng FPGA 62

6.2.1 Giới thiệu FPGA Xilint-VC707 62

6.2.2 Các độ đo để đánh giá trên FPGA 64

6.3 Hiện thực bộ tăng tốc WalaP-CNN 66

6.3.1 Training model CNN cho bộ tăng tốc WalaP-CNN 67

6.3.2 Hiện thực WalaP-CNN trên Vitis HLS 70

6.4 Hiện thực hệ thống RISC-V WalaP-CNN 71

6.4.1 Tinh chỉnh RISC-V BlackParrot 71

6.4.2 Tích hợp BlackParrot WalaP-CNN 72

7 Kết luận 757.1 Tổng kết 75

7.2 Tiềm năng phát triển 76

Trang 10

7.2.3 Huấn luyện mô hình 767.2.4 Chuyển đổi nền tảng 77

Trang 11

2.1 Mối tương quan và các nhánh con của AI 7

2.2 Mô hình của neuron nhân tạo 8

2.3 Mô hình Feedforward Neural Network và Recurrent Neural Network 9

2.4 Mô hình tính toán của Fully-Connected Layer 10

2.5 Mô hình tính toán của Convolution Layer 10

2.6 Mô hình tính toán của Pooling Layer 11

2.13 Dot Diagram cho cây CSA với 7 toán hạng 29

2.14 Parallel prefix adder [9] 30

2.15 8-bit Sklansky adder’s của giai đoạn 2 (carry generation) [9] 31

2.16 8-bit Kogge-Stone adder’s giai đoạn 2 (carry generation) [9] 31

2.17 Sơ đồ tích hơp Prefix Adder trong Wallace tree [9] 32

3.1 Thiết kế kiến trúc bộ xử lý không đồng nhất [10] 33

3.2 Sơ đồ khối đơn giản hóa của lõi RV-CNN [12] 35

3.3 Sơ đồ khối bộ tăng tốc BNN [13] 36

3.4 Kiến trúc bộ đồng xử lý tích chập của core Hummingbird E203 [14] 37

3.5 Kiến trúc của toàn bộ module tăng tốc [16] 39

3.6 Addition tree (a) và Systolic array (b) [17] 40

3.7 GEMM Optimization [17] 40

3.8 Kiến trúc bộ tăng tốc [17] 41

3.9 Kiến trúc bộ tăng tốc tích chập với Pox × Poy × Pof MAC units [18] 42

3.10 Đơn vị PE trong thiết kế bộ tăng tốc CNN với Wallace Tree[20] 43

3.11 Mạch tính tích chập 3×3 [21] 44

3.12 Kiến trúc của lớp chập 3 × 3 trong mạng Yolo CNN[22] 44

3.13 Kiến trúc bộ gia tốc CNN (a), Kiến trúc bộ PE (b)[23] 45

3.14 Thiết kế tổng quát của mô hình (a), Tính toán tích chập (b)[24] 46

4.1 Kiến trúc model CNN được đề xuất 47

Trang 12

4.4 Sơ đồ khối của Bộ tăng tốc phần cứng CNN, bộ nhớ và Bus 51

4.5 Kiến trúc chi tiết của MAC được đề xuất 51

4.6 Cây Wallace Tree 32 bit Prefix Adder 52

4.7 Kiến trúc chi tiết của bộ cộng 8-2 53

4.8 Bộ cộng 32 bit sử dụng bộ nén 8-2 với 8 input 53

4.9 Kiến trúc chi tiết của lớp Pooling và Fully Connected 54

5.1 Sơ đồ khối về kiến trúc tổng quát của hệ thống 55

5.2 Hình mô tả sự tương quan giữa các trạng thái của WalaP-CNN 57

5.3 Tích hợp phần mềm - phần cứng bằng HLS 59

6.1 Tổng quan MNIST dataset 61

6.2 Chi tiết board VC707 [28] 62

6.3 Chi tiết model WalaP-CNN được hiện thực và kiểm thử 66

6.4 Quá trình train model trên software 68

6.5 Độ chính xác và loss của model lúc trainning 69

6.6 Confusion matrix 69

6.7 WallaP-CNN trên Vitis HLS với target board VC707 70

6.8 WallaP-CNN hoàn thành quy trình HLS và export RTL 71

6.9 Sơ đồ tích hợp hệ thống RISC-V WalaP-CNN thực hiện trong Vivado 72

Trang 13

2.1 Bảng công thức tính giá trị Confusion Matrix 15

2.2 Phần mở rộng tiêu chuẩn và phi tiêu chuẩn RISC-V ISA [3] 21

2.3 Các lõi bộ xử lý ASIC hỗ trợ Linux 64-bit RISC-V được tối ưu hóa về nănglượng/ hiệu suất gần đây Hiệu suất trên mỗi lõi được tính bằng CoreMark/ MHz theo tiêu chuẩn trong ngành Để tham khảo, bảng đã cung cấp lõiSiFive U54 có khả năng hỗ trợ Linux, mã nguồn đóng, có tính phí tươngđương (Lưu ý rằng vì các dự án nguồn mở này là các dự án đang sống,đang hoạt động nên đây chỉ là một bản tóm tắt trong khoảng thời giannhất định.) [4] 26

2.4 So sánh thông số của các core RISC-V 28

5.1 Bảng mô tả trạng thái giao tiếp giữa RISC-V core và WalaP-CNN 56

6.1 Tài nguyên phần cứng của XC7VX485T-2FFG1761 63

6.2 Tổng hợp thông tin của WalaP-CNN được kiểm thử 67

6.3 So sánh độ trễ lan truyền trong Stage trên MAC unit của các thiết kế Adder 716.4 So sánh sử dụng resource giữa BlackParrot và BlackParrot WalaP-CNN 73

6.5 So sánh hiệu suất trên FPGA với các công trình khác 74

Trang 14

1Giới thiệu đề tài

1.1Tính cấp thiết, mục đích nghiên cứuTrí tuệ nhân tạo (AI) đã có những tiến bộ vượt bậc trong những năm gần đây, cáchmạng hóa nhiều ngành công nghiệp và thúc đẩy tăng trưởng kinh tế Khối lượng côngviệc AI ngày càng tăng đòi hỏi các bộ tăng tốc phần cứng hiệu quả có khả năng xử lýkhối lượng công việc AI phức tạp RISC-V, một kiến trúc tập lệnh nguồn mở (ISA), đãnổi lên như một lựa chọn hấp dẫn cho thiết kế bộ tăng tốc AI

Chip AI là chìa khóa cho sự phát triển, triển khai và sự phổ biến của AI ngày nay.Những con chip máy tính này là nền tảng để cung cấp năng lượng và xử lý các tính toánAI quy mô lớn và chúng đang phát triển với tốc độ chóng mặt Gartner dự báo doanh thuchip AI trên toàn thế giới sẽ tăng hơn gấp đôi vào năm 2027 - tăng từ mức dự kiến 53 tỷUSD vào năm 2023 lên 119 tỷ USD vào năm 2027 Chip AI tập trung vào việc cung cấpnăng lượng cho các chức năng AI Khối lượng công việc AI đòi hỏi sức mạnh xử lý khổnglồ mà các chip đa năng, như CPU, thường không thể cung cấp ở quy mô cần thiết Để cóđược sức mạnh xử lý cao, chip AI cần được chế tạo với số lượng lớn bóng bán dẫn nhanhhơn, nhỏ hơn và hiệu quả hơn Tuy nhiên chế tạo chip với số lượng lớn bóng bán dẫnphức tạp và chi phí cao, do đó nghiên cứu này tập trung vào việc phát triển các moduleAI riêng gọi là bộ tăng tốc (AI accelerator) để hỗ trợ chip tăng tốc tính toán trong cáctác vụ AI

So với các ISA độc quyền truyền thống, RISC-V mang lại sự linh hoạt, tùy chỉnh caohơn và đặc biệt là nó miễn phí Với tính linh hoạt này, có thể điều chỉnh tập lệnh để đápứng nhu cầu của khối lượng công việc AI cụ thể, giúp cải thiện hiệu suất và tiết kiệmnăng lượng Các nhà thiết kế có thể tận dụng tính mô-đun của RISC-V để tạo ra cácphần mở rộng hướng dẫn chuyên dụng đáp ứng nhu cầu riêng của thuật toán AI, đảmbảo khả năng thực thi tối ưu và tiết kiệm điện năng

Hiệu quả chi phí của RISC-V là một yếu tố khác hỗ trợ việc áp dụng nó trong cácmáy tăng tốc AI Sử dụng RISC-V cho phép các tổ chức tránh được phí cấp phép liênquan đến ISA độc quyền Nhờ lợi thế về chi phí này, các công nghệ tăng tốc AI dễ tiếpcận hơn, cho phép nhiều ngành và doanh nghiệp hơn sử dụng sức mạnh của AI Khả năngchi trả của RISC-V khiến nó trở nên đặc biệt hấp dẫn đối với các quốc gia mới nổi vềkinh tế, nơi nhấn mạnh đến sự đổi mới và khả năng cạnh tranh

Làm nổi bật hơn nữa sự cần thiết của máy tăng tốc AI là tham vọng của các quốc

Trang 15

gia để trở thành một trung tâm AI xuất sắc Việc áp dụng RISC-V trong các thiết kếmáy gia tốc AI cho phép quốc gia đó tận dụng cơ sở hạ tầng trung tâm dữ liệu đang pháttriển của mình để phát triển các giải pháp AI tiên tiến, thu hút nhân tài hàng đầu và trởthành trung tâm nghiên cứu AI trong khu vực.

Ứng dụng hứa hẹn nhất của RISC-V có thể chia thành 3 hướng chính:

• Bộ tăng tốc AI (artificial intelligence) và ML (machine learning): Mộttrong những động lực chính của việc áp dụng RISC-V là nhu cầu về các bộ tăng tốcAI (artificial intelligence) và ML (machine learning) hiệu quả hơn và có khả năngmở rộng hơn Đây là những bộ vi xử lý chuyên dụng có thể thực hiện các phéptoán phức tạp, chẳng hạn như nhân ma trận, tích chập hoặc suy luận mạng thầnkinh, nhanh hơn và tiêu thụ ít điện năng hơn so với CPU hoặc GPU thông thường.RISC-V cho phép thiết kế các bộ tăng tốc AI và ML tùy chỉnh có thể tận dụng tínhmô-đun, khả năng mở rộng và tính mở của ISA để tối ưu hóa cho khối lượng côngviệc, kiến trúc và nền tảng cụ thể Ví dụ: một số công cụ tăng tốc AI và ML dựatrên RISC-V hàng đầu bao gồm Intelligence X280 của SiFive, K210 của Kendrytevà ET-SoC-1 của Esperanto

• HPC (high-performance computing): Một lĩnh vực khác mà RISC-V có thểtạo ra tác động đáng kể là HPC (high-performance computing), liên quan đến việcsử dụng siêu máy tính và cụm để thực hiện các tính toán khoa học và kỹ thuật quymô lớn, chẳng hạn như mô hình khí hậu, gen hoặc vật lý lượng tử RISC-V cungcấp một số lợi thế cho hệ thống HPC, chẳng hạn như chi phí thấp hơn, hiệu suấtcao hơn, bảo mật tốt hơn và đa dạng hơn RISC-V có thể cho phép phát triển cáchệ thống HPC tùy chỉnh có thể điều chỉnh ISA theo nhu cầu và yêu cầu cụ thể củacác ứng dụng, miền và người dùng khác nhau Ví dụ: một số dự án HPC dựa trênRISC-V đang diễn ra bao gồm Sáng kiến Bộ xử lý Châu Âu (EPI), nhằm mục đíchtạo ra bộ xử lý tiêu thụ điện năng thấp cho điện toán exascale và dự án Celerity,nhằm tạo ra bộ xử lý 1000 lõi cho các ứng dụng dữ liệu song song

• Edge Computing (điện toán biên): Miền thứ ba mà RISC-V có thể đóng vaitrò quan trọng là điện toán biên, bao gồm việc xử lý dữ liệu gần nguồn hơn, chẳnghạn như cảm biến, máy ảnh hoặc thiết bị thông minh, thay vì gửi dữ liệu đó lênđám mây hoặc máy chủ tập trung Điện toán biên có thể cải thiện độ trễ, băngthông, quyền riêng tư và độ tin cậy của các ứng dụng sử dụng nhiều dữ liệu, chẳng

Trang 16

hạn như IoT, thành phố thông minh hoặc xe tự hành RISC-V có thể cho phéptạo ra các thiết bị điện toán biên có thể tận dụng các tính năng tiêu thụ điện năngthấp, hiệu suất cao và có thể tùy chỉnh của ISA để thích ứng với các nhu cầu và môitrường đa dạng và năng động của biên Ví dụ: một số thiết bị điện toán biên dựatrên RISC-V hiện có bao gồm PolarFire SoC của Microchip, kết hợp CPU RISC-Vvới FPGA và BeagleV, là máy tính bảng đơn chạy Linux trên CPU RISC-V.

Khi công nghệ AI tiến bộ nhanh chóng thì sự phát triển của chip AI chuyên dụngcũng vậy Những phần cứng được chế tạo đặc biệt này được thiết kế để thực hiện cácthuật toán phức tạp và giải quyết nhiều nhiệm vụ khác nhau liên quan đến khối lượngcông việc trí tuệ nhân tạo Đồng thời, chúng mang lại mức độ hiệu quả cao hơn mà nếukhông thì không thể thực hiện được

Bằng cách tận dụng khả năng xử lý song song, chip AI có thể xử lý nhanh chóng vàhiệu quả các tập dữ liệu lớn Hình thức tính toán này cho phép nhiều tác vụ được thựchiện đồng thời

Mục đích nghiên cứu, thứ nhất là nhằm củng cố kiến thức và hiểu được việc hiện thựcmột phần cứng Thứ hai là ngoài cách chế tạo một con chip AI mới hoàn toàn thì nghiêncứu này nhằm thêm một mô-đun tăng tốc ứng dụng AI để làm các công việc chuyên biệt,từ đó giúp giải phóng CPU cho các tác vụ khác

Tính cấp thiết của nghiên cứu thể hiện ở khía cạnh khoa học và khía cạnh thực tiễn.Ở khía cạnh khoa học, như ta phân tích, đây là một trong hai cách để tăng tốc tác vụ chochip (bên cạnh việc tăng số bóng bán dẫn, cách này thường theo quy luật của Moore’sLaw) Phương pháp tích hợp thêm bộ tăng tốc AI có chi phí rẻ hơn và hiệu suất ở mứcchấp nhận được cho các ứng dụng AI Ở khía cạnh thực tiễn, ngày nay AI ngày càng pháttriển, do đó phần cứng càng cần phải phát triển hơn để đáp ứng train/test các thuật toánAI, ngay cả ở mỗi quốc gia AI ngày càng quan trọng và là mũi nhọn cộng nghệ tương lai,và công nghệ bán dẫn đóng vai trò quan trọng trong chuỗi cung ứng này

1.2Đề xuất phương phápLuận văn tiến hành tìm hiểu và hiện thực cải tiến phần cứng, hiện thực bộ tăng tốcAI và đánh giá ứng dụng chạy trên RISC-V core:

• Phần mềm – Software-Level: Mục đích của phát triển phần mềm là thiết kếvà phát triển một model Deep Learning cho mục đích tăng tốc tính toán Để giảm

Trang 17

bớt độ phức tạp của các mô hình Deep Learning, phần mềm có thể tối ưu bằng cácphương thức chính là cắt tỉa mô hình – Network Pruning và làm tròn – Quantizationcác thông số của mô hình Tuy nhiên, chỉ tối ưu cấp phần mềm thì vẫn có một sốhạn chế nhất định về độ chính xác, về sức mạnh của model khi hiện thực trên cácphần cứng thông thường và chưa đạt được yêu cầu về năng lượng Một hướng kháclà ta tập trung nâng cao sức mạnh tính toán, thời gian thực thi, độ chính xác củamodel Đương nhiên khi đó resource phần cứng sẽ tăng nhưng trong khoản phântích phù hợp, ta có thể đánh đổi nó để đạt được các tiêu chí về sức mạnh của model.

• Phần cứng – Hardware-level: Kiến trúc phần cứng đặc thù hiệu quả có thể xửlý mô hình Deep Learning một cách tiết kiệm năng lượng với hiệu suất cao Thayvì sử dụng phần cứng thông thường, các mô hình Deep Learning nên được tăng tốcvới công nghệ khác như FPGA tiết kiệm năng lượng (linh hoạt và có thể được táilập trình) hoặc ASIC chuyên dụng (tính chuyên hóa cao và phù hợp với từng trườnghợp của ứng dụng) Phần cứng sẽ được sử dụng phù hợp với độ phức tạp của phầnmềm ở trên, tiêu chí là ta phải sử dụng resource phần cứng thấp nhất và đạt đượctiêu chí về sức mạnh của model cao nhất

• Kết hợp của hai phương pháp trên: Đây là phương pháp mà tôi chọn trongluận văn khi xây dựng kiến trúc phần cứng đặc thù chạy các mô hình Deep Learning.Cách này khai thác được điểm mạnh của hai cách trên và phù hợp để tiếp tục pháttriển về sau

Tôi đề xuất một kiến trúc hệ thống cho phần cứng Deep Learning hỗ trợ cho việcsuy luận các mô hình Deep Learning CNN Hệ thống dựa trên một nền tảng RISC-V làBlackParrot – SoC mạnh mẽ khi hỗ trợ 64 bit và multi core, được tinh chỉnh cho phù hợpkết hợp với một bộ tăng tốc AI được nhúng vào Về mặt phần mềm, mô hình được dùngtrên hệ thống được hỗ trợ độ chính xác dữ liệu là 32bit floating point để đạt được đượcđộ chính xác cũng như hiệu suất cao, đây là mục đích để xây dựng và ứng dụng cho EdgeComputing theo thời gian thực

Nhiệm vụ của bộ tăng tốc AI là để thực hiện các tính toán đặc thù cho mô hìnhDeep Learning với hiệu suất cao, ứng dụng trong tính toán biên, xử lý ảnh theo thời gianthực như phân loại, phát hiện object, Trong lúc bộ tăng tốc AI tính toán, lõi RISC-VBlackParrot có thể dùng cho các tác vụ khác, ví dụ như giao tiếp cảm biến, cơ cấu chấphành, stream data lên Cloud,

Trang 18

Nhìn nhận về phương pháp này, có một vài ưu và nhược điểm như sau:

• Ưu điểm: Việc tạo ra bộ tăng tốc riêng lẻ sẽ cải thiện đáng kể tốc độ làm việccũng như hiệu suất của hệ thống ở tác vụ được tăng tốc Thêm nữa, các bộ tăngtốc rất linh hoạt trong việc thay đổi hệ thống SoC nền tảng vì chỉ cần thay đổiphương thức giao tiếp phù hợp thì hoàn toàn có thể được tích hợp vào bất kỳ mộtSoC nào khác

• Nhược điểm: Việc sử dụng bộ tăng tốc làm tăng một lượng tài nguyên tương đốiđáng kể nên cần phải tính toán về việc đánh đổi giữa tài nguyên tiêu hao và hiệusuất hệ thống Thêm nữa, việc dùng bộ tăng tốc chỉ có tác dụng với tác vụ đượctăng tốc nên nếu tác vụ này không đóng góp nhiều trong hoạt động của hệ thốngthì việc thêm bộ tăng tốc không có tác dụng gì nhiều trong việc cải thiện hiệu suấtcủa toàn bộ hệ thống

1.3Cấu trúc của luận vănChương 1: Giới thiệu đề tàiChương 2: Cơ sở lý thuyếtChương 3: Các nghiên cứu liên quanChương 4: Thiết kế bộ tăng tốc AIChương 5: Thiết kế hệ thốngChương 6: Kết quả và đánh giáChương 7: Kết luận

Chương 8: Tài liệu tham khảo

Trang 19

2Cơ sở lý thuyết

2.1Trí tuệ nhân tạo – Artificial IntelligenceCông nghệ trí tuệ nhân tạo (AI) cho phép máy tính và máy móc mô phỏng trí thôngminh của con người và thực hiện các nhiệm vụ giải quyết vấn đề Đặc điểm lý tưởng củatrí tuệ nhân tạo là khả năng hợp lý hóa và hành động để đạt được một mục tiêu cụ thể.Nghiên cứu về AI bắt đầu từ những năm 1950 và được Bộ Quốc phòng Hoa Kỳ sử dụngvào những năm 1960 khi bộ này huấn luyện máy tính bắt chước khả năng suy luận củacon người Việc phát triển AI chủ yếu sẽ tập trung vào ba khía cạnh của nhận thức: họchỏi, suy luận và tự điều chỉnh

• Các quá trình học tập: Khía cạnh này sẽ tập trung vào việc tìm kiếm, thu thập dữliệu và tạo ra các quy tắc về cách biến dữ liệu thành thông tin có thể hành động.Các quy tắc, được gọi là thuật toán, cung cấp cho các thiết bị tính toán hướng dẫntừng bước về cách hoàn thành một nhiệm vụ cụ thể

• Các quy trình suy luận: Việc lập trình AI thường hay có các quy trình này để lựachọn thuật toán phù hợp và đạt được kết quả mong muốn

• Các quy trình tự sửa lỗi: AI sẽ được lập trình để liên tục chỉnh sửa lại các thuậttoán và đảm bảo chúng cung cấp kết quả chính xác nhất có thể

Ngày nay, lượng dữ liệu được tạo ra bởi cả con người và máy móc vượt xa khả năngtiếp thu, diễn giải và đưa ra các quyết định phức tạp dựa trên dữ liệu đó của con người.Trí tuệ nhân tạo tạo thành nền tảng cho mọi hoạt động học tập trên máy tính và là tươnglai của mọi hoạt động ra quyết định phức tạp

Một số tập hợp con của AI tập trung vào các khía cạnh khác nhau của nghiên cứu vàứng dụng AI trong lĩnh vực AI lớn hơn Mỗi tập hợp con có các vấn đề, cách tiếp cận vàứng dụng riêng biệt và chúng cùng nhau bổ sung vào lĩnh vực AI phong phú và đa dạng.Trong luận văn này sẽ tập trung tìm hiểu về nhánh Machine Learning, Deep Learning vìDeep Learning (DL) có các mô hình, thuật toán sẽ được ứng dụng trong luận văn Họcmáy lấy thông tin sâu sắc từ khối lượng lớn dữ liệu bằng cách tận dụng các thuật toán đểxác định các mẫu và học hỏi trong một quy trình lặp đi lặp lại Thuật toán ML sử dụngcác phương pháp tính toán để học trực tiếp từ dữ liệu thay vì dựa vào bất kỳ phươngtrình xác định trước nào có thể dùng làm mô hình

Trang 20

Figure 2.1: Mối tương quan và các nhánh con của AI

Học máy (Machine Learing - ML) là một phần của AI cung cấp trí thông minh chomáy móc với khả năng tự động học hỏi bằng trải nghiệm mà không cần được lập trìnhrõ ràng Phương pháp học máy cho phép máy tính hoạt động tự chủ mà không cần lậptrình rõ ràng Các ứng dụng ML được cung cấp dữ liệu mới và chúng có thể học hỏi,phát triển, phát triển và thích ứng một cách độc lập Hiệu suất của thuật toán ML đượccải thiện một cách thích ứng khi số lượng mẫu có sẵn tăng lên trong quá trình ’học’ Vídụ: học sâu là một lĩnh vực phụ của học máy giúp huấn luyện máy tính bắt chước cácđặc điểm tự nhiên của con người như học từ các ví dụ Nó cung cấp các thông số hiệusuất tốt hơn các thuật toán ML thông thường

Học sâu (Deep Learning - DL) là một tập hợp con của học máy cung cấp khả năngcho máy thực hiện các nhiệm vụ giống con người mà không cần sự tham gia của conngười Nó cung cấp khả năng cho tác nhân AI bắt chước bộ não con người Học sâu cóthể sử dụng cả phương pháp học có giám sát và không giám sát để đào tạo tác nhân AI

• Học sâu được thực hiện thông qua kiến trúc mạng lưới thần kinh do đó còn đượcgọi là mạng lưới thần kinh sâu

• Học sâu là công nghệ chính đằng sau xe tự lái, nhận dạng giọng nói, nhận dạnghình ảnh, dịch máy tự động, v.v

• Thách thức chính đối với deep learning là nó đòi hỏi nhiều dữ liệu với nhiều sứcmạnh tính toán

Trang 21

2.1.1 Lý thuyết về học sâu

A PerceptronThành phần cấu thành của Neural Network là neuron hay còn gọi là perceptron,một khối tính toán cố gắng mô hình hóa hành vi của một tế bào thần kinh sinh học.Perceptron là một nơ-ron nhân tạo Đây là mạng thần kinh đơn giản nhất có thể Mạngthần kinh này là các khối xây dựng của học máy Perceptron là một trong những kiến trúcmạng nơ ron nhân tạo đơn giản nhất Nó được Frank Rosenblatt giới thiệu vào nhữngnăm 1957 Đây là loại mạng thần kinh chuyển tiếp đơn giản nhất, bao gồm một lớp nútđầu vào được kết nối đầy đủ với một lớp nút đầu ra

Figure 2.2: Mô hình của neuron nhân tạo

Về bản chất, neuron nhân tạo thực hiện tính toán tổng trọng số của tất cả các đầuvào của nó và độ lệch – bias b được thêm vào như là phần bù cho tổng, được thể hiệntheo phương trình 1 dưới đây:

g(x) =

N −1X0

Cuối cùng, đầu ra của neuron thu được khi áp dụng hàm phi tuyến Activation Function(hàm kích hoạt) vào 1 như sau:

B Neural NetworkNeural Network nhân tạo thường được biểu diễn dưới dạng đồ thị có hướng trong đócác nút đại diện cho các neuron Nếu đồ thị là đồ thị không chu trình, mạng là FeedforwardNeural Network Nếu đồ thị là đồ thị có chu trình, mạng là hồi quy Recurrent Neural

Trang 22

Network và có thuộc tính hành vi động theo thời gian Neural Network được mô tả tronghình 2.3.

Figure 2.3: Mô hình Feedforward Neural Network và Recurrent Neural Network

Các nút được tổ chức theo lớp: trong Feedforward Neural Network, mỗi neuron củalớp N nhận đầu vào của nó từ lớp N 1 và gửi đầu ra của nó tới các neuron của lớp N + 1.Các đầu vào của Neural Network hình thành lớp đầu vào –input layer và thông thường,có ít nhất một lớp xử lý các giá trị đầu vào này, được gọi là lớp đầu ra -output layer.Tất cả các lớp được chèn giữa các input layer và output layer được định nghĩa là các lớpẩn –hidden layer Số lượng các hidden layer xác định độ sâu của Neural Network Nếucó nhiều hơn ba hidden layer, Neural Network thường được gọi là Deep Neural Network.Neural Network học cách giải quyết các vấn đề khác nhau bằng cách tìm các giá trị tốiưu cho trọng số –weight và độ lệch –bias của các neuron của nó, các neuron này có thểđược tổ chức và kết nối theo những cách khác nhau

Thành phần của Neural Network:

Fully-Connected LayerLớp được kết nối đầy đủ đề cập đến một mạng lưới thần kinh trong đó mỗi nơ-ronáp dụng một phép biến đổi tuyến tính cho vectơ đầu vào thông qua ma trận trọng số.Kết quả là, tất cả các kết nối có thể có giữa các lớp đều có mặt, nghĩa là mọi đầu vàocủa vectơ đầu vào đều ảnh hưởng đến mọi đầu ra của vectơ đầu ra

Các thông số liên quan trong Fully-Connected Layer:– Input (I) có kích thước là IW (1D)

– Weight (W) có kích thước là WW × WH (2D)– Output (O) có kích thước là OW (1D)

– Bias (b) có kích thước là bW (1D)

Trang 23

Figure 2.4: Mô hình tính toán của Fully-Connected Layer

Convolution LayerFully-Connected Layer thường không phù hợp với các tác vụ như phát hiện và nhậndạng đối tượng vì mức độ kết nối cao của chúng dẫn đến việc bùng nổ về số lượng thamsố cần thiết để xử lý hình ảnh có độ phân giải cao Hơn nữa, Fully-Connected Layerxem việc xử lý các đầu vào gần nhau hoặc xa nhau là tương tự nhau, bỏ qua cấu trúckhông gian có trong hình ảnh Để khắc phục hai vấn đề này, vào năm 1998, một kiếntrúc mới đã được đề xuất, được gọi là Convolutional Neural Network (CNN), bao gồmcác Convolution Layer và khai thác các ý tưởng về tiếp nhận cục bộ (local receptive) vàchia sẻ trọng số

Figure 2.5: Mô hình tính toán của Convolution Layer

Các neuron được tổ chức theo dạng 2D, tức là bản đồ đặc trưng – feature map, vàmộtneuron của lớp này không nhận tất cả các kích hoạt của lớp trước đó, mà thay vàođó, nó được kết nối với một vùng tiếp nhận nhỏ có kích thước KW × KH Kích thước của

Trang 24

vùng tiếp nhận và của ma trận trọng số (weight matrix), thông thường được gọi là kíchthước kernel và khoảng cách giữa các trường tiếp nhận liền kề được xác định bởi thamsố bước (stride) Áp dụng ý tưởng chia sẻ trọng số, tất cả neuron của lớp này có cùngmột weight matrix, phát hiện cùng một feature ở các vị trí khác nhau của lớp trước đó.Để phát hiện nhiều feature, Convolution Layer có nhiều kênh, tức là có nhiều feature map.

Pooling LayerPooling Layer thường được đặt sau Convolution Layer Pooling Layer có các trườngtiếp nhận tương tự như Convolution Layer Đối với nhóm các neuron trong mỗi trườngtiếp nhận, chúng trả về một giá trị duy nhất chứa thông tin liên quan tới thống kê củanhóm như giá trị tối đa hoặc giá trị trung bình Thông số stride thường được đặt bằngvới kích thước của vùng tiếp nhận để các vùng này không chồng lên nhau

Pooling Layer làm giảm số lượng activation của một lớp và do đó làm giảm bộ nhớyêu cầu và số lượng tính toán cần được thực hiện sau đó Hơn nữa, Pooling Layer đạtđược sự bất biến đối với việc dịch cục bộ tương đối nhỏ Đầu ra của các ConvolutionLayer phụ thuộc rất nhiều vào vị trí của đầu vào, do đó, ngay cả đối với những biến đổinhỏ của đầu vào, vẫn có những ảnh hưởng biến đổi đáng kể đối với đầu ra Pooling Layergiảm số lượng mãu của đầu ra làm cho chúng ít bị ảnh hưởng bởi sự thay đổi nhỏ củađầu vào

Figure 2.6: Mô hình tính toán của Pooling Layer

Non-linear Activation Function- Rectified Linear Unit (ReLU) Hàm ReLU buộc activation phải lớn hơn hoặc bằngkhông Nó phổ biến vì nó hiệu quả về mặt tính toán vì nó yêu cầu một phép so sánh đơngiản giữa x và 0

Trang 25

Figure 2.7: Mô hình RELU

- Sigmoid Hàm Sigmoid chuẩn hóa đầu ra trong phạm vi (0, 1) Trái ngược với chứcnăng ReLU, Hàm Sigmoid rất tốn kém về mặt tính toán, như có thể thấy từ phương trìnhcủa nó

Figure 2.8: Mô hình hàm Sigmoid

- Hyperbolic Tangent (TanH) Hàm TanH tương đương với hàm Sigmoid về việc ràngbuộc activation trong phạm vi (1, 1), để mô hình hóa các kết quả đầu ra cũng có thểnhận các giá trị âm

Figure 2.9: Mô hình hàm Tanh

- Softmax Hàm Softmax còn được gọi là hàm số mũ chuẩn hóa – normalized nential function Nó nhận một vectơ đầu vào gồm N số: mỗi số được chuẩn hóa trongphạm vi (0, 1) và tổng của tất cả N số bằng 1 Chức năng này được sử dụng chủ yếu

Trang 26

expo-trong các lớp đầu ra nếu đầu ra đại diện cho xác suất phân loại.

sof tmax(xi) = e

xi

PN −1j=0 exj

(3)

2.1.2 Khái quát vài mô hình Deep Learning

A RNNMạng nơ-ron Hồi Quy (Recurrent Neural Networks - RNNs), với khả năng nhớ thôngqua trạng thái ẩn (Hidden state), cho phép mô hình hóa sự phụ thuộc của dữ liệu hiệntại vào dữ liệu trước đó, từ đó cải thiện đáng kể khả năng xử lý dữ liệu có tính liên mạch.Điều này làm cho RNN đặc biệt phù hợp với các nhiệm vụ liên quan đến trình tự, chẳnghạn như dự đoán chuỗi thời gian, xử lý ngôn ngữ tự nhiên và nhận dạng giọng nói Điểmđặc biệt trong kiến trúc mạng RNN là kết nối lặp lại giữa các hidden layer cho phép thôngtin được truyền từ bước (step) này sang bước khác Số lần lặp lại có thể khác nhau giữacác mạng RNN tùy thuộc vào bài toán mà mạng muốn giải quyết

Các nhược điểm của RNN:- Phải thực hiện tuần tự: Không tận dụng được khả năng tính toán song song củamáy tính (GPU/TPU)

- Vanishing gradient (Đạo hàm bị triệt tiêu): Có một vấn đề ở đây là, hàm tanh lẫnsigmoid đều có đạo hàm bằng 0 tại 2 đầu Mà khi đạo hàm bằng 0 thì nút mạng tươngứng tại đó sẽ bị bão hòa Lúc đó các nút phía trước cũng sẽ bị bão hoà theo Nên với cácgiá trị nhỏ trong ma trận, khi ta thực hiện phép nhân ma trận sẽ đạo hàm tương ứng sẽxảy ra Vanishing gradient, tức đạo hàm bị triệt tiêu chỉ sau vài bước nhân Như vậy, cácbước ở xa sẽ không còn tác dụng với nút hiện tại nữa, làm cho RNN không thể học đượccác phụ thuộc xa Vấn đề này không chỉ xảy ra với mạng RNN mà ngay cả mạng neuraltruyền thống với nhiều lớp cũng có hiện tượng này

B LSTMLSTM (Long Short Term Memory Networks) là một loại mạng thần kinh có thể tìmhiểu và ghi nhớ các phụ thuộc lâu dài Nhớ lại thông tin trong quá khứ trong thời giandài là hành vi mặc định LSTM lưu giữ thông tin theo thời gian Chúng rất hữu ích trongviệc dự đoán chuỗi thời gian vì chúng ghi nhớ các dữ liệu đầu vào trước đó LSTM cócấu trúc giống như chuỗi trong đó bốn lớp tương tác giao tiếp theo một cách riêng Bêncạnh các dự đoán chuỗi thời gian, LSTM thường được sử dụng để nhận dạng giọng nói,

Trang 27

sáng tác nhạc và phát triển dược phẩm.- Input gate (cổng vào): Cổng vào giúp quyết định bao nhiêu lượng thông tin đầu vàosẽ ảnh hưởng đến trạng thái mới Quyết định bằng cách nào, thông qua đặc điểm củahàm sigmoid (đầu ra nằm trong khoảng [0,1] [0,1]), như vậy khi một vector thông tin điqua đây, nếu nhân với 0, vector sẽ bị triệt tiêu hoàn toàn Nếu nhân với 1, hầu hết thôngtin sẽ được giữ lại.

- Forget gate (cổng quên): Cổng quyết định sẽ bỏ đi bao nhiêu lượng thông tin đếntừ trạng thái trước đó

- Output gate (cổng ra): Cổng điều chỉnh lượng thông tin có thể ra ngoài và lượngthông tin truyền tới trạng thái tiếp theo

C GANGAN (Generative Adversarial Networks) là các thuật toán học sâu tổng quát tạo racác phiên bản dữ liệu mới giống với dữ liệu huấn luyện GAN có hai thành phần: mộttrình tạo, học cách tạo dữ liệu giả và một trình phân biệt thật giả, học từ thông tin sailệch đó Việc sử dụng GAN đã tăng lên trong một khoảng thời gian gần đây Chúng cóthể được sử dụng để cải thiện hình ảnh thiên văn và mô phỏng thấu kính hấp dẫn đểnghiên cứu vật chất tối Các nhà phát triển trò chơi điện tử sử dụng GAN để nâng cấpkết cấu 2D, độ phân giải thấp trong các trò chơi điện tử cũ bằng cách tạo lại chúng ở độphân giải 4K trở lên thông qua đào tạo hình ảnh GAN giúp tạo ra hình ảnh thực tế vàcác nhân vật hoạt hình, tạo ra các bức ảnh về khuôn mặt người và hiển thị các vật thể 3D

D CNNCNN (Convolutional Neural Network) còn được gọi là ConvNets, bao gồm nhiều lớpvà chủ yếu được sử dụng để xử lý hình ảnh và phát hiện đối tượng Yann LeCun đã pháttriển CNN đầu tiên vào năm 1988 khi nó được gọi là LeNet Nó được sử dụng để nhậndạng các ký tự như mã ZIP và chữ số CNN được sử dụng rộng rãi để xác định hình ảnhvệ tinh, xử lý hình ảnh y tế, dự báo chuỗi thời gian và phát hiện các điểm bất thường.Mạng nơron tích chập (CNN) gồm 3 loại lớp chính là convolutional layer, pooling layervà fully-connected layer CNN hoạt động dựa trên cơ chế convolution, trong đó mỗi lớpđược kết nối với nhau thông qua cơ chế này Mỗi neuron ở lớp kế tiếp sinh ra từ kết quảcủa kernel áp đặt lên một vùng ảnh cục bộ của neural trước đó

Trang 28

Figure 2.10: Mô hình Convolutional Neural Network

2.1.3 Các độ đo đánh giá mô hình Deep Learning

A Confusion MatrixNó thể hiện được có bao nhiêu điểm dữ liệu thực sự thuộc vào một class, và được dựđoán là rơi vào một class Mô hình của Confusion Matrix được trình bày bảng 2.1, trongđó các giá trị của cột đường chéo (từ trên bên trái đến phía dưới bên phải) có giá trị càngcao (hoặc càng gần 100%) thì chứng tỏ model có độ chính xác trong Confusion Matrixtốt

Table 2.1: Bảng công thức tính giá trị Confusion Matrix

ActualPositive NegativePredict Positive TP - True Positive FP - False Positive

Negative FN - False Negative TN - True Negative

B Độ chính xác (Accuracy)Khi xây dựng mô hình phân loại chúng ta sẽ muốn biết một cách khái quát tỷ lệ cáctrường hợp được dự báo đúng trên tổng số các trường hợp là bao nhiêu Tỷ lệ đó đượcgọi là độ chính xác Độ chính xác giúp ta đánh giá hiệu quả dự báo của mô hình trênmột bộ dữ liệu Độ chính xác càng cao thì mô hình của chúng ta càng chuẩn xác Độchính xác được tính theo công thức:

Accuracy = T rueP ositive + T rueN egative

Nhược điểm của cách đánh giá này là chỉ cho ta biết được bao nhiêu phần trăm lượngdữ liệu được phân loại đúng mà không chỉ ra được cụ thể mỗi loại được phân loại nhưthế nào, lớp nào được phân loại đúng nhiều nhất hay dữ liệu của lớp nào thường bị phânloại nhầm nhất vào các lớp khác

Trang 29

C PrecisionPrecision trả lời cho câu hỏi trong các trường hợp được dự báo là positive thì có baonhiêu trường hợp là đúng? Và tất nhiên precision càng cao thì mô hình của chúng tacàng tốt trong việc phân loại hồ sơ BAD (BAD chính là nhóm positive) Công thức củaprecision như sau:

P recision = T rueP ositive

T rueP ositive + F alseP ositive (5)

D RecallRecall cũng là một metric quan trọng, nó đo lường tỷ lệ dự báo chính xác các trườnghợp positive trên toàn bộ các mẫu thuộc nhóm positive Công thức của Recall như sau:

Recall = T rueP ositive

T rueP ositive + F alseN egative (6)

Để tính được recall thì chúng ta phải biết trước nhãn của dữ liệu Do đó recall cóthể được dùng để đánh gía trên tập train và validation vì chúng ta đã biết trước nhãn.Trên tập test khi dữ liệu được coi như mới hoàn toàn và chưa biết nhãn thì chúng ta sẽsử dụng precision

E F1 ScoreF1 Score là trung bình điều hòa giữa precision và recall Do đó nó đại diện hơn trongviệc đánh gía độ chính xác trên đồng thời precision và recall

F1_Score = 2P recisionRecall

2.2.1 Giới thiệu RISC và RISC-V

A Giới thiệu RISCRISC (viết tắt của Reduced Instructions Set Computer – Máy tính với tập lệnh đơngiản hóa) là một phương pháp thiết kế các bộ vi xử lý theo hướng đơn giản hóa tập lệnh,trong đó thời gian thực thi tất cả các lệnh đều như nhau Hiện nay các bộ vi xử lý RISCphổ biến là ARM, SuperH, MIPS, SPARC, DEC Alpha, PA-RISC, PIC và PowerPC củaIBM

Trang 30

Figure 2.11: Kiến trúc tập lệnh RISC

Trang 31

– Khó khăn trong việc lập trình: Vì số lượng lệnh giới hạn nên việc lập trình trênkiến trúc RISC có thể khó khăn hơn so với kiến trúc CISC (Complex InstructionSet Computing).

– Không tối ưu cho các ứng dụng đa nhiệm: Kiến trúc RISC không được tối ưu chocác ứng dụng đa nhiệm, điều này có thể làm giảm hiệu suất của CPU trong các tácvụ đòi hỏi xử lý đa nhiệm

B Giới thiệu RISC-VRISC-V[1] là một ISA-Instruction Set Architecture (kiến trúc tập lệnh) mở và miễnphí được sử dụng để thiết kế các mạch tích hợp với chi phí thấp hơn dựa trên RISC(Reduced Instruction Set Architecture) RISC-V đi theo mô hình nguồn mở với thiết kếmô-đun RISC-V là một ISA có khả năng tùy biến cao

RISC-V là một kiến trúc load-store:

• Các lệnh số học của nó chỉ hoạt động trên các thanh ghi.• Chỉ có các lệnh load và store là trao đổi dữ liệu giữa thanh ghi và bộ nhớ.• Dữ liệu phải được load vào thanh ghi trước khi có thể thực hiện các tác vụ tiếp

theo liên quan đến dữ liệu đó

Mục tiêu của RISC-V:

• Trở thành ISA hoàn toàn mở được cung cấp miễn phí trong học tập và thương mại.• Phù hợp với các vi xử lý ở mọi kích cỡ

• Hoạt động tốt với nhiều loại phần mềm và ngôn ngữ lập trình phổ biến.• Phù hợp với tất cả các công nghệ triển khai: Field-Programmable Gate Array

(FPGA), Application-Specific Integrated Circuit (ASIC), full-custom chip và thậmchí cả các công nghệ thiết bị trong tương lai

• Hiệu quả cho tất cả các kiểu kiến trúc vi mô – microarchitecture như microcoded,in-order, decoupled, out-of-order,

• Hỗ trợ rộng rãi việc chuyên môn hóa để hoạt động như một cơ sở cho các máy tăngtốc tùy chỉnh

• Ổn định, trong đó ISA cơ bản không thay đổi

Trang 32

Các tính năng chính của RISC-V:

• Phổ quát – Universal: Đây là một trong những mục tiêu được đề cập ở trên, RISC-Vphải phù hợp với vi xử lý ở mọi kích cỡ, với mọi kiểu triển khai (FPGA/ASIC/SoC),với các loại phần mềm khác nhau và với các ngôn ngữ lập trình khác nhau

• Modular: Cách tiếp cận thông thường đối với kiến trúc máy tính là các kiến trúc tậplệnh gia tăng - Incremental ISA, trong đó các bộ xử lý mới phải triển khai khôngchỉ các phần mở rộng ISA mới mà còn tất cả các phần mở rộng trước đây Mụcđích là duy trì khả năng tương thích ngược để các phiên bản của chương trình hàngchục năm tuổi để chúng vẫn có thể chạy chính xác trên bộ xử lý mới nhất Tráingược lại, RISC-V được thiết kế theo kiểu module Nghĩa là, RISC-V có tập lệnhcơ bản cộng với các tập lệnh mở rộng tùy chọn Tập lệnh cơ bản luôn ổn định vàkhông thay đổi Điều này có nghĩa là các nhà thiết kế có thể loại bỏ những thứ họkhông cần cho ứng dụng của mình

• Có khả năng mở rộng – Extensible: Người thiết kế có thể thêm lệnh tùy chỉnh chocác chức năng chuyên biệt như học máy hoặc bảo mật Điều này đặc biệt quantrọng khi Định luật Moore sắp tới kết thúc

• Tự do – Freedom: Nhà thiết kế có quyền tự do làm việc trên các triển khai tối ưucủa riêng mình và giữ nguyên lựa chọn của họ

• Đông cứng – Frozen: Bằng cách đóng băng tập lệnh, có thể chắc chắn rằng phầnmềm và công cụ ngày nay sẽ hoạt động trên các hệ thống RISC-V trong nhiều thậpkỷ kể từ bây giờ

• Adoption – Reuse: Bởi vì là mã nguồn mở, RISC-V sẽ khuyến khích việc áp dụngrộng rãi hơn vì khả năng tương thích của nó Điều này cũng cho phép tăng tái sửdụng của nó

2.2.2 Kiến trúc tập lệnh của RISC-V

Tập lệnh RISC-V là tập hợp các lệnh xác định các hoạt động mà bộ xử lý RISC-Vcó thể thực hiện Các tập lệnh này được thiết kế đơn giản, hiệu quả và dễ dàng mở rộng,cho phép tùy chỉnh và tối ưu hóa ở mức độ cao Tập lệnh được tổ chức thành tập lệnhsố nguyên cơ sở và một tập hợp các phần mở rộng tùy chọn, cung cấp chức năng chuyên

Trang 33

biệt cho các ứng dụng hoặc miền cụ thể.Tập lệnh số nguyên cơ sở, còn được gọi là tập lệnh "RV32I" hoặc "RV64I", tùy thuộcvào kích thước không gian địa chỉ, cung cấp chức năng cốt lõi cần thiết cho tính toán đanăng Nó bao gồm các tập lệnh về các phép toán số học, logic và điều khiển cũng nhưtruy cập và thao tác bộ nhớ Tập lệnh số nguyên cơ sở được thiết kế tối giản và hiệu quả,tuân thủ các nguyên tắc tính toán tập lệnh rút gọn (RISC).

Các lệnh RISC-V được mã hóa bằng định dạng 32 bit có độ dài cố định, giúp đơngiản hóa việc giải mã và thực thi Các định dạng tập lệnh được phân thành sáu loại: R,I, S, B, U và J Mỗi định dạng phục vụ một mục đích cụ thể và có cấu trúc mã hóa duynhất:

• Lệnh loại R: Được sử dụng cho các thao tác thanh ghi - thanh ghi, chẳng hạn nhưcác phép toán số học và logic Chúng bao gồm ba thanh ghi toán hạng: hai thanhghi nguồn và một thanh ghi đích Ví dụ: - add (Cộng 2 thanh ghi và lưu kết quảvào một thanh ghi khác)

• Lệnh loại I: Được sử dụng cho các phép toán tức thời, chẳng hạn như các phéptoán số học và logic với giá trị tức thời Chúng bao gồm hai toán hạng thanh ghivà giá trị tức thời 12 bit Ví dụ: - li (Load giá trị tức thời)

• Lệnh loại S: Được sử dụng cho các hoạt động lưu trữ, lưu trữ dữ liệu từ thanh ghivào bộ nhớ Chúng bao gồm hai toán hạng thanh ghi và giá trị tức thời 12 bit chophần bù địa chỉ bộ nhớ Ví dụ: - sw (lưu giá trị vào thanh ghi)

• Lệnh loại B: Được sử dụng cho các hoạt động nhánh có điều kiện, chuyển điềukhiển sang lệnh khác dựa trên một điều kiện Chúng bao gồm hai toán hạng thanhghi và giá trị tức thời 12 bit cho địa chỉ đích nhánh Ví dụ: - beq (so sánh và gắnnhãn)

• Lệnh loại U: Được sử dụng cho các hoạt động có giá trị tức thời 20 bit, chẳng hạnnhư tải hằng số 20 bit vào thanh ghi hoặc setting 20 bit trên thanh ghi Ví dụ: -lui (tải giá trị tức thời)

• Lệnh loại J: Được sử dụng cho các hoạt động nhảy vô điều kiện, chuyển điều khiểnsang lệnh khác một cách vô điều kiện Chúng bao gồm một toán hạng thanh ghi vàgiá trị tức thời 20 bit cho địa chỉ đích nhảy Ví dụ: - J (nhảy)

Trang 34

Figure 2.12: Các định dạng lệnh cơ sở RISC-V[2]

Ngoài tập lệnh số nguyên cơ sở, ISA RISC-V còn bao gồm một tập hợp các phần mởrộng tiêu chuẩn cung cấp chức năng chuyên biệt cho các ứng dụng hoặc miền cụ thể Cáctiện ích mở rộng này có thể được thêm vào bộ xử lý RISC-V khi cần, cho phép tùy chỉnhvà tối ưu hóa ở mức độ cao Bộ tiện ích mở rộng RISC-V ISA [3]:

Table 2.2: Phần mở rộng tiêu chuẩn và phi tiêu chuẩn RISC-V ISA [3]Kí hiệu Tên Mô tả

I RV32I Base integer instruction setE RV32E Base integer for embedded (16-bit registers)M RV32IM Multiply/Divide extension

A RV32IMA Atomic instructionsF RV32IMAF Single-precision floating-pointD RV32IMAFD Double-precision floating-pointG RV32G Shorthand for the IMAFDQ RV32Q Quad-precision floating-pointC RV32C Compressed instructionsK RV32K Scalar cryptographyH RV32H Hypervisor extensionV RV32V Vector operationsB RV32B Bit manipulation operationsP RV32P DSP and packed SIMD instructions

Một số tiện ích mở rộng tiêu chuẩn đáng chú ý nhất là:

• Tiện ích mở rộng M: bổ sung hỗ trợ cho các lệnh nhân và chia số nguyên Các

Trang 35

tập lệnh này cho phép thực hiện hiệu quả các phép toán số học phức tạp, thườngđược sử dụng trong các ứng dụng khác nhau, chẳng hạn như xử lý tín hiệu và mậtmã.

• Tiện ích mở rộng A: còn được gọi là tiện ích mở rộng nguyên tử, cung cấp hỗ trợcho các hoạt động bộ nhớ nguyên tử Các hoạt động này cho phép truy cập đồngthời vào các tài nguyên bộ nhớ dùng chung mà không cần cơ chế đồng bộ hóa phứctạp, khiến chúng đặc biệt hữu ích trong các hệ thống đa lõi và đa luồng

• Tiện ích mở rộng F: bổ sung hỗ trợ cho các phép toán số học dấu phẩy động cóđộ chính xác đơn Số học dấu phẩy động rất cần thiết cho nhiều ứng dụng khoahọc, kỹ thuật và đồ họa, nơi yêu cầu tính toán có độ chính xác cao

• Tiện ích mở rộng D: mở rộng tiện ích mở rộng F bằng cách thêm hỗ trợ cho cácphép toán số học dấu phẩy động có độ chính xác kép Số học có độ chính xác képthậm chí còn cung cấp độ chính xác và dải động cao hơn, khiến nó phù hợp với cácứng dụng đòi hỏi khắt khe hơn, chẳng hạn như động lực học chất lỏng tính toán vàmô phỏng số

• Phần mở rộng C: còn được gọi là phần mở rộng nén, giới thiệu một tập hợp cáclệnh nén 16 bit có thể được sử dụng cùng với các lệnh 32 bit tiêu chuẩn Các lệnhnén này giúp giảm kích thước mã và cải thiện mật độ mã, điều này có thể dẫn đếnhiệu suất tốt hơn và mức tiêu thụ điện năng thấp hơn, đặc biệt là trong các hệthống bị hạn chế về bộ nhớ

• Phần mở rộng V: phần mở rộng vectơ, bổ sung hỗ trợ cho việc xử lý vectơ, chophép thực hiện hiệu quả các hoạt động song song dữ liệu Xử lý vectơ đặc biệt hữuích trong các ứng dụng như học máy, xử lý hình ảnh và mô phỏng khoa học, trongđó thao tác tương tự cần được thực hiện trên các tập dữ liệu lớn

• Phần mở rộng B: phần mở rộng thao tác bit, cung cấp một tập hợp các lệnh đểthao tác mức bit hiệu quả, chẳng hạn như hoán vị bit, đếm bit và trích xuất trườngbit Những lệnh này hữu ích trong nhiều ứng dụng khác nhau, bao gồm mật mã,nén và sửa lỗi

Các phần mở rộng tiêu chuẩn khác bao gồm: Q, L, J, T, P, N, Bằng cách cung cấpmột loạt các tiện ích mở rộng tiêu chuẩn, RISC-V ISA cho phép các nhà thiết kế tạo ra

Trang 36

các bộ xử lý phù hợp với các ứng dụng và trường hợp sử dụng cụ thể, mang lại hiệu suất,mức tiêu thụ điện năng và hiệu quả chi phí được tối ưu hóa.

Tệp thanh ghi RISC-V là thành phần chính của kiến trúc RISC-V, cung cấp một tậphợp các vị trí lưu trữ để lưu giữ dữ liệu trong quá trình thực hiện các lệnh Tệp thanh ghiđược tổ chức thành một tập hợp các thanh ghi số nguyên và thanh ghi dấu phẩy động,tùy thuộc vào phần mở rộng được triển khai trong bộ xử lý Các thanh ghi đóng một vaitrò quan trọng trong kiến trúc RISC-V vì chúng cho phép truy cập dữ liệu nhanh chóngvà giúp cải thiện hiệu suất cũng như hiệu quả của bộ xử lý

Các thanh ghi số nguyên trong kiến trúc RISC-V được sử dụng để lưu trữ và thaotác các giá trị số nguyên trong quá trình thực hiện các lệnh Bạn có thể thực hiện cácphép tính như cộng, trừ, nhân, chia, thao tác bit và so sánh bằng cách sử dụng các thanhghi này Có 32 thanh ghi số nguyên trong tập lệnh số nguyên cơ sở RV32I và 32 hoặc64 thanh ghi số nguyên trong tập lệnh số nguyên cơ sở RV64I, tùy thuộc vào kích thướckhông gian địa chỉ Mỗi thanh ghi rộng 32 bit trong ISA RV32I và rộng 64 bit trong ISARV64I

• x0: Thanh ghi này được gắn cứng vào giá trị 0 và không thể sửa đổi.• x1-x31: Các thanh ghi này là các thanh ghi có mục đích chung, một số có tên cụ

thể để biểu thị mục đích sử dụng của chúng, chẳng hạn như:

– ra (x1): Thanh ghi địa chỉ trả về, được sử dụng để lưu trữ địa chỉ trả về trongcác lệnh gọi hàm

– sp (x2): Thanh ghi con trỏ ngăn xếp, dùng để quản lý ngăn xếp (stack)

– gp (x3): Thanh ghi con trỏ toàn cục, dùng để truy cập dữ liệu toàn cục

– tp (x4): Thanh ghi con trỏ luồng, được sử dụng để lưu trữ cục bộ luồng

– t0-t6 (x5-x11): Các thanh ghi tạm thời, được sử dụng để giữ các giá trị trunggian trong quá trình tính toán

– a0-a7 (x10-x17): Thanh ghi đối số, được sử dụng để truyền đối số hàm

– s0-s11 (x8, x9, x18-x27): Các thanh ghi đã lưu, được sử dụng để bảo toàncác giá trị trong các lệnh gọi hàm

– t3-t6 (x28-x31): Các thanh ghi tạm thời bổ sung

Trang 37

Các thanh ghi dấu phẩy động trong kiến trúc RISC-V được sử dụng để lưu trữ vàthao tác các giá trị dấu phẩy động trong quá trình thực hiện các lệnh Các thanh ghinày khả dụng khi phần mở rộng F hoặc phần mở rộng D được triển khai trong bộ xử lý.Tiện ích mở rộng F cung cấp 32 thanh ghi dấu phẩy động có độ chính xác đơn, trong khitiện ích mở rộng D mở rộng các thanh ghi này để hỗ trợ các giá trị dấu phẩy động có độchính xác kép (64-bit) Các thanh ghi dấu phẩy động được tổ chức thành nhiều loại dựatrên mục đích sử dụng của chúng:

• ft0-ft7 (f0-f7): Các thanh ghi tạm thời, được sử dụng để giữ các giá trị trung giantrong quá trình tính toán

• fs0-fs11 (f8-f9, f18-f27): Các thanh ghi đã lưu, được sử dụng để bảo toàn các giátrị trong các lệnh gọi hàm

• fa0-fa7 (f10-f17): Thanh ghi đối số, được sử dụng để truyền đối số hàm.• ft8-ft11 (f28-f31): Các thanh ghi tạm thời bổ sung

RISC-V cung cấp một tập hợp các lệnh dấu phẩy động để hoạt động trên các thanhghi này Ví dụ: fadd.s là cộng hai giá trị dấu phẩy động có độ chính xác đơn và fmul.d lànhân hai giá trị dấu phẩy động có độ chính xác kép Các lệnh này khác với các lệnh sốnguyên và sử dụng các mã hoạt động khác nhau

Tiện ích mở rộng trong RISC-VPhần mở rộng RISC-V đề cập đến chức năng tập lệnh bổ sung vượt xa số nguyên cơsở RISC-V ISA ISA số nguyên cơ sở RISC-V cung cấp một bộ tập lệnh tối thiểu phổ biếntrên tất cả các triển khai RISC-V Tuy nhiên, thiết kế mô-đun của RISC-V cho phép đưavào nhiều phần mở rộng khác nhau nhằm cung cấp các khả năng và tính năng bổ sung

Có hai loại tiện ích mở rộng theo tiêu chuẩn RISC-V Đầu tiên là các phần mở rộngtiêu chuẩn tùy chọn đã được RISC-V International phê chuẩn Các ví dụ bao gồm -Anguyên tử, -C nén, -F dấu phẩy động và phần mở rộng vectơ -V Thứ hai, RISC-V chophép người dùng xác định các tập lệnh tùy chỉnh không chuẩn Các nhà thiết kế sử dụngRISC-V ISA có thể điều chỉnh thiết kế của mình theo khối lượng công việc phần mềmbằng cách kết hợp các phần mở rộng tùy chọn, tập lệnh tùy chỉnh với ISA số nguyên cơsở

Trang 38

Tiện ích mở rộng tiêu chuẩn:Tiện ích mở rộng tiêu chuẩn là các bộ hướng dẫn được xác định trước được thiết kếđể đáp ứng các yêu cầu cụ thể hoặc miền ứng dụng mục tiêu Đặc tả RISC-V xác địnhmột số phần mở rộng tiêu chuẩn, mỗi phần mở rộng được biểu thị bằng chữ viết tắt mộtchữ cái Ví dụ: RV32I/RV64I là tập lệnh số nguyên cơ sở để triển khai 32 bit hoặc 64 bit.

Tiện ích mở rộng tùy chỉnh:Tính mô-đun của RISC-V cho phép tạo các tiện ích mở rộng tùy chỉnh được thiết kếriêng cho các ứng dụng cụ thể nhưng không gian mã hóa được xác định Tiện ích mởrộng tùy chỉnh không phải là một phần của thông số kỹ thuật RISC-V tiêu chuẩn Tiệních mở rộng tùy chỉnh có thể cho phép tối ưu hóa, tăng tốc hoặc hoạt động chuyên biệttheo miền cụ thể, mang lại hiệu suất hoặc khả năng nâng cao cho khối lượng công việccụ thể

Chính các đặc điểm như: tính mô-đun của RISC-V, khả năng kết hợp các tập lệnhmở rộng theo tiêu chuẩn (Standard extensions), các tập lệnh mở rộng tùy chỉnh (Customextensions) cho thấy việc thiết kế và implement khối tăng tốc (accelerator) trong phầncứng RISC-V là khả thi và mang lại hiệu suất cao cho một công việc cụ thể

Vài ví dụ lệnh của RV32I [2]:

Integer Computation

add

−immediate



subtract



andorexclusive or





−immediate





shif tlef tlogicalshif t right arithmetic

shif t right logical





−immediate



Load and Store



loadstore





bytehalf word

word



load

bytehalf word



unsigned

Trang 39

2.2.3 Tìm hiểu một số core RISC-V

BlackParrot [4]BlackParrot đặt mục tiêu trở thành mã nguồn mở mặc định, có khả năng Linux,kết hợp bộ đệm, đa lõi RV64GC BlackParrot multi core triển khai kiến trúc “RV64G”RISC-V 64-bit, bao gồm số nguyên cơ sở ISA “I”, phép nhân và chia “M”, nguyên tử “A”,dấu phẩy động có độ chính xác đơn và kép “F/D” Nó hỗ trợ ba cấp độ đặc quyền - máy,người giám sát và sử dụng - cũng như bộ nhớ ảo SV39; những tiện ích mở rộng này đủđể chạy hiệu quả các hệ điều hành đầy đủ tính năng như Linux

Các giá trị cốt lõi mà BlackParrot hướng đến:Be Tiny (nhỏ bé): Khi cân nhắc giữa hai lựa chọn, hãy xem xét lựa chọn có chiphí/độ phức tạp phần cứng ít nhất

Be Modular (mô-đun): Ngăn chặn sự kết hợp chặt chẽ giữa các mô-đun bằng cáchthiết kế các giao diện không nhạy cảm với độ trễ

Be Friendly (thân thiện): Hoan nghênh những đóng góp từ bên ngoài và phấnđấu cho chủ nghĩa bất khả tri về cơ sở hạ tầng

Table 2.3: Các lõi bộ xử lý ASIC hỗ trợ Linux 64-bit RISC-V được tối ưu hóa về nănglượng/ hiệu suất gần đây Hiệu suất trên mỗi lõi được tính bằng CoreMark / MHz theotiêu chuẩn trong ngành Để tham khảo, bảng đã cung cấp lõi SiFive U54 có khả nănghỗ trợ Linux, mã nguồn đóng, có tính phí tương đương (Lưu ý rằng vì các dự án nguồnmở này là các dự án đang sống, đang hoạt động nên đây chỉ là một bản tóm tắt trongkhoảng thời gian nhất định.) [4]

BlackParrot 3.04 SystemVerilog Modular ✓ BSD-3

Table 2.3 cho thấy độ tương quan giữa các core RISC-V theo chỉ số CoreMark/MHz(càng lớn càng tốt) Trong đó BlackParrot vượt cả core Rocket và còn được hỗ trợ bởiSystemVerilog nên dễ hiểu hơn là Chisel của Rocket core Đánh giá BlackParrot là mộtcore mạnh, thích hợp cho các ứng dụng real time, edge computing hiệu suất cao với khảnăng boot OS, multi core Tuy nhiên việc implement chắc chắn sẽ phức tạp và resourcesử dụng trên FPGA sẽ nhiều

Trang 40

CVA6 [5]Mục tiêu của dự án CVA6 là tạo ra một dòng lõi CPU RISC-V cấp ứng dụng, chấtlượng sản xuất CVA6 nhắm đến cả việc triển khai ASIC và FPGA, mặc dù các lõi riênglẻ có thể nhắm mục tiêu vào một công nghệ triển khai cụ thể CVA6 được viết bằngSystemVerilog và có khả năng tham số hóa cao Ví dụ: các tham số có thể đặt ILENthành 32 hoặc 64 bit và có thể bật/tắt hỗ trợ cho dấu phẩy động CVA6 là lõi xử lý ứngdụng tương thích RISC-V có thể được cấu hình là lõi 32 hoặc 64 bit (RV32 hoặc RV64).Nó bao gồm bộ đệm L1, MMU tùy chọn, PMP tùy chọn và FPU tùy chọn CVA6 là corekhá phức tạp, do đó để hiểu và có thể tích hợp một bộ accelerator vào core này là mộtthách thức không nhỏ cho quá trình nghiên cứu của đề tài.

Rocket Core [6]Rocket là một trình tạo lõi vi xử lý RISC-V, 32 hoặc 64 bit có 5 giai đoạn thứ tự(5-stage in-of-order), ban đầu được phát triển tại Đại học California, Berkeley và hiệnđang được hỗ trợ bởi SiFive Đôi khi Rocket được mô tả có 6 giai đoạn pipeline, bao gồmthêm một giai đoạn ’pcgen’ Một lõi Rocket kết hợp với bộ nhớ đệm L1 (bộ nhớ đệm dữliệu và bộ nhớ đệm chỉ thị) tạo thành một "tile" Rocket Tile Rocket là thành phần cóthể sao chép của trình tạo SoC Rocket Chip

Lõi Rocket hỗ trợ tập lệnh mã nguồn mở RV64GC của RISC-V và được viết bằngngôn ngữ Chisel dùng trong thiết kế phần cứng Có một số thông số được hiển thị, baogồm sự hỗ trợ tùy chọn của một số tiện ích mở rộng ISA (M, A, F, D), số giai đoạn xử lýdấu chấm động, và kích thước bộ nhớ đệm và TLB Rocket là một lõi RISC-V mạnh mẽvà tiết kiệm năng lượng, phù hợp cho các thiết bị IoT và các dự án cần cung cấp nhiềusự hỗ trợ, đa dụng Rocket có hiệu năng cao, có SoC riêng biệt để hỗ trợ hoạt động Nólà một lựa chọn tốt cho các ứng dụng FPGA đòi hỏi hiệu năng cao và tiêu thụ điện năngthấp Tuy nhiên, lượng tài nguyên Rocket cần tương đối nhiều và số lượng board đápứng còn hạn chế Ngoài ra, ngôn ngữ Scala được sử dụng cho lõi Rocket là ngôn ngữ khámới, nên nó có thể gây khó khăn cho người sử dụng

biRISC-V [7]Là một core 32-bit RISC-V ISA CPU Superscalar (dual-issue) in-order 6 or 7 stagepipeline Hỗ trợ RISC-V’s integer (I), bộ nhân và chia (M), và tập lệnh mở rộng CSR (Z)(RV32IMZicsr) Hỗ trợ MMU cơ bản - khả năng booting Linux với atomics (RV-A) SW

Ngày đăng: 25/09/2024, 14:33

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w