Bảng tổng hợp điện năng tiêu thụ của dòng card GeForce GTX 10 trở lên của Nvidia...8 DANH MỤC CÁC KÍ HIỆU VÀ TỪ VIẾT TẮT CPU Central Processing Unit Bộ xử lý trung tâm GPU Graphical Pr
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN CHỦ ĐỀ: TÌM HIỂU VỀ KIẾN TRÚC XỬ LÝ TENSOR VÀ ĐỒ HỌA, KHẢ NĂNG TÍNH TOÁN CỦA CUDA CORE TRONG GPU
VỚI CARD RTX 3090
Trang 2MỤC LỤC CHUNG
LỜI CẢM ƠN i
MỤC LỤC CHUNG ii
DANH MỤC HÌNH ẢNH iv
DANH MỤC BẢNG BIỂU iv
DANH MỤC CÁC KÍ HIỆU VÀ TỪ VIẾT TẮT iv
LỜI MỞ ĐẦU 1
CHƯƠNG 1 KIẾN TRÚC XỬ LÝ TENSOR VÀ KIẾN TRÚC XỬ LÝ ĐỒ HỌA 2
1.1 Khái niệm và đặc điểm của tensor 2
1.2 Kiến trúc phần cứng của TPU 3
1.3 Kiến trúc phần cứng của GPU 4
1.4 Một số ứng dụng phổ biến của tensor 5
1.5 Kiến trúc xử lý tensor trong GPU 5
1.5.1 Định nghĩa 5
1.5.2 Đặc điểm của kiến trúc xử lý tensor trong GPU 6
1.5.3 GPU xử lý tensor như thế nào? 6
1.5.4 Lợi thế và hạn chế của việc sử dụng kiến trúc xử lý tensor trong GPU 7
1.5.5 Một số ứng dụng của kiến trúc xử lý tensor trong GPU 8
CHƯƠNG 2 KHẢ NĂNG TÍNH TOÁN CỦA CUDA CORE TRONG GPU VỚI CARD RTX 3090 10
2.1 Giới thiệu về CUDA trong GPU 10
2.2 Cấu trúc của CUDA core trong GPU 10
2.3 Khả năng tính toán của CUDA core trong GPU RTX 3090 10
2.4 So sánh GPU và CPU 13
CHƯƠNG 3 CÁC CÔNG NGHỆ VÀ ỨNG DỤNG MỚI TRONG LĨNH VỰC KIẾN TRÚC XỬ LÝ TENSOR VÀ ĐỒ HỌA VÀ ỨNG DỤNG CỦA CUDA TRONG LĨNH VỰC CÔNG NGHỆ 16
3.1 Các công nghệ và ứng dụng mới trong lĩnh vực kiến trúc xử lý tensor và đồ họa 16
3.1.1 Tensor Core 16
3.1.2 Deep Learning Super Sampling (DLSS) 16
3.1.3 Real-Time Ray Tracing 16
3.1.4 GAN (Generative Adversarial Networks) 17
Trang 33.1.5 Ứng dụng trong thị giác máy tính 17
3.1.6 Ứng dụng trong khoa học và y học 18
3.1.7 Tương lai của kiến trúc xử lý tensor và đồ họa 18
3.2 ỨNG DỤNG CỦA CUDA TRONG LĨNH VỰC CÔNG NGHỆ 19
3.2.1 CUDA cho ngành công nghiệp trò chơi 19
3.2.2 CUDA cho các ứng dụng video số 19
TÀI LIỆU THAM KHẢO 20
KẾT LUẬN 21
Trang 4DANH MỤC HÌNH ẢNH
Hình 1-1 So sánh Scalar, Vector, Matrix, Tensor 2
Hình 1-2 Tensor ứng xuất Cauchy 2
Hình 1-3 Hình ảnh TPU do Google sản xuất 3
Hình 1-4 Sơ đồ kiến trúc của GPU 4
Hình 1-5 Hình ảnh về GPU của Nvidia 6
Hình 2-1 Kết quả bài test phần mềm Unreal Engine 4.25 11
Hình 2-2 Kết quả bài test phần mềm Redshift 3.0.28 12
Hình 2-3 Kết quả bài test phần mềm V-Ray Next Benchmark 4.10.06 12
Hình 2-4 Kết quả bài test phần mềm PugetBench for Davinci Resolve V9.02 13
Hình 2-5 Mô phỏng tác vụ CPU 14
Hình 2-6 Mô phỏng tác vụ CPU 14
Hình 2-7 Mô phỏng tác vụ GPU 15
Hình 2-8 Mô phỏng tác vụ GPU 15
Hình 2-9 Mô phỏng tác vụ GPU 15
DANH MỤC BẢNG BIỂU Bảng 1-1 Bảng tổng hợp điện năng tiêu thụ của dòng card GeForce GTX 10 trở lên của Nvidia 8
DANH MỤC CÁC KÍ HIỆU VÀ TỪ VIẾT TẮT
CPU ( Central Processing Unit) Bộ xử lý trung tâm
GPU ( Graphical Processing Unit) Bộ xử lý đồ họa
CUDA ( Compute Unified Device
Architecture)
Kiến trúc thiết bị tính toán thống nhất
AI ( Artificial Intellegence) Trí tuệ nhân tạo
DLSS ( Deep Learning Super Sampling) Nội suy hình ảnh sử dụng học máy
GAN ( Generative Adversarial
Networks)
Mạng đối nghịch tạo sinh TPU (Tensor Processing Unit) Vi xử lý Tensor
CT ( Computed Tomography) Chụp ảnh cắt lớp vi tính
Trang 5LỜI MỞ ĐẦU
Trong thời đại số hóa và công nghiệp 4.0, việc tối ưu hóa khả năng tính toán và
xử lý dữ liệu trở thành một yêu cầu thiết yếu để đáp ứng nhu cầu của nhiều ứng dụngthực tế, từ y tế và khoa học đến tự động hóa công nghiệp và xe tự lái
Trong phạm vi môn học Thiết kế hệ thống số VLSI, nhóm 14 sẽ Tìm hiểu vềkiến trúc xử lý tensor và đồ họa, khả năng tính toán của CUDA core trong GPU vớicard RTX 3090 Bài báo cáo này sẽ cung cấp những kiến thức cơ bản và chi tiết vềkiến trúc xử lý tensor và đồ họa, giúp hiểu rõ hơn về khả năng tính toán của GPU vàCUDA core, cũng như những ứng dụng mới nhất trong lĩnh vực này
Nội dung báo cáo sẽ được chia thành 3 chương như sau:
Chương 1: Kiến trúc xử lý tensor và đồ họa
Chương 2: Khả năng tính toán của CUDA core trong GPU với card RTX 3090
Chương 3: Các công nghệ và ứng dụng mới trong lĩnh vực kiến trúc xử lý tensor và
đồ họa
Trang 6CHƯƠNG 1 KIẾN TRÚC XỬ LÝ TENSOR VÀ KIẾN TRÚC XỬ LÝ ĐỒ HỌA
1.1 Khái niệm và đặc điểm của tensor
Tensor là một đối tượng đại số tuyến tính đa chiều, được sử dụng rộng rãi trongtoán học, vật lý, khoa học máy tính và các lĩnh vực khác Nó có thể được xem như làmột đại lượng đại số tuyến tính đa chiều, còn được gọi là mảng đa chiều, có thể đượcbiểu diễn bằng một ma trận, một vector, một số vô hướng hoặc một tổ hợp của chúng
Tensor có thể có nhiều chiều và được định nghĩa bởi các thành phần số, đượcsắp xếp theo một số chiều Ví dụ, một tensor hai chiều có thể được biểu diễn bởi một
ma trận, trong đó các phần tử được xếp theo hai chiều (hàng và cột) Một tensor bachiều có thể được biểu diễn bởi một cube, trong đó các phần tử được xếp theo ba chiều(chiều dài, chiều rộng và chiều cao)
Hình 1-1 So sánh Scalar, Vector, Matrix, Tensor
Tensor là một khái niệm quan trọng trong các lĩnh vực như đại số tuyến tính, lýthuyết động lực học, vật lý, khoa học máy tính và các lĩnh vực khác Các phép toántrên tensor là rất phức tạp và được sử dụng rộng rãi trong các ứng dụng thực tế như xử
lý ảnh, nhận dạng giọng nói, dịch văn bản và nhận diện vật thể
Hình 1-2 Tensor ứng xuất Cauchy
Dưới đây là một số đặc điểm của tensor:
Số chiều: Tensor có thể có nhiều hơn hai chiều, với số chiều phụ thuộc vào mụcđích sử dụng và đặc tính của dữ liệu
Kích thước: Mỗi chiều của tensor có thể có một kích thước khác nhau Ví dụ, mộttensor 3 chiều có thể có kích thước là 3x4x5, trong đó chiều đầu tiên có 3 phần tử,chiều thứ hai có 4 phần tử và chiều thứ ba có 5 phần tử
Trang 7 Loại dữ liệu: Tensor có thể chứa các loại dữ liệu khác nhau, bao gồm số nguyên, sốthực, boolean, chuỗi, v.v.
Phép toán: Tensor có thể thực hiện các phép toán đại số như cộng, trừ, nhân, chia.Các phép toán này có thể được thực hiện trên các phần tử của tensor hoặc giữa cáctensor khác nhau
Thao tác trên tensor: Tensor có thể được cắt, chuyển vị, nối, chuyển đổi hình dạng,giá trị, v.v
Tính khả chuyển: Tensor có thể được chuyển đổi sang các định dạng khác nhau,bao gồm tensor thưa, tensor dạng đồ thị, tensor dạng đặc trưng, v.v
1.2 Kiến trúc phần cứng của TPU
TPU (Tensor Processing Unit) là một loại chip xử lý dữ liệu được thiết kế đặcbiệt cho việc thực hiện các tính toán liên quan đến tensor, đặc biệt là trong các ứngdụng liên quan đến Machine Learning và Deep Learning TPU được Google giới thiệuvào năm 2016 và được sử dụng bởi Google trong các dịch vụ của họ như GoogleSearch, Google Photos và Google Translate
Hình 1-3 Hình ảnh TPU do Google sản xuất
Kiến trúc của TPU được thiết kế để tối ưu hóa tính toán tensor TPU có thể thựchiện hàng tỉ phép tính tensor mỗi giây trong khi tiêu thụ điện năng rất thấp Điều nàylàm cho TPU trở thành một giải pháp hiệu quả cho các ứng dụng Machine Learning vàDeep Learning, đặc biệt là trong việc huấn luyện các mạng nơ-ron sâu
Kiến trúc của TPU bao gồm nhiều hạt nhân xử lý đa nhiệm (multicore), đượcgọi là Matrix Multiply Unit (MMU), được thiết kế đặc biệt để thực hiện phép nhân matrận nhanh chóng và hiệu quả MMU cũng được trang bị bộ nhớ tích hợp (on-chipmemory) để giảm thiểu sự trễ do truy xuất dữ liệu TPU cũng có khả năng kết nối vớicác máy tính thông qua giao diện PCIe, cho phép truyền dữ liệu nhanh chóng giữa cácmáy tính và TPU
Tổng quan về kiến trúc của TPU cho thấy rằng nó là một thiết kế chuyên dụngcho việc tính toán tensor, với hiệu suất cao và tiêu thụ điện năng thấp Việc thiết kế
Trang 8như vậy giúp TPU trở thành một giải pháp hiệu quả cho các ứng dụng MachineLearning và Deep Learning, đặc biệt là trong việc huấn luyện các mạng nơ-ron sâu.
1.3 Kiến trúc phần cứng của GPU
GPU là một loại chip xử lý đồ họa được thiết kế dành riêng cho tính toán đồhọa và xử lý 3D Kiến trúc của GPU bao gồm nhiều nhân xử lý đồ họa (GPU cores) và
bộ nhớ GPU (GPU memory) để hỗ trợ việc tính toán đồ họa
Hình 1-4 Sơ đồ kiến trúc của GPU
Cụ thể, kiến trúc của GPU được chia thành các khối xử lý (processing blocks), baogồm:
1 Khối xử lý đa năng (Multiprocessors): Mỗi khối xử lý đa năng bao gồmnhiều nhân xử lý (CUDA cores) và bộ nhớ dùng chung (shared memory) để xử lý cácluồng công việc (threads) Khối xử lý đa năng còn có thể hỗ trợ các tính năng đặc biệtnhư đồng bộ hóa (synchronization) và cơ chế bảo vệ truy cập (protection mechanism)
2 Bộ điều khiển bộ nhớ (Memory controller): Bộ điều khiển bộ nhớ quản lýviệc truy cập và đọc/ghi dữ liệu từ bộ nhớ GPU
3 Bộ đệm khối xử lý (Processing block cache): Bộ đệm khối xử lý được sửdụng để tăng tốc độ truy cập dữ liệu cho các khối xử lý đa năng
Trang 94 Bộ đệm texture (Texture cache): Bộ đệm texture được sử dụng để lưu trữ cácbản ghi về thông tin vật liệu và màu sắc để phục vụ quá trình vẽ 3D.
5 Bộ đệm khối hình (Frame buffer cache): Bộ đệm khối hình được sử dụng đểlưu trữ khung hình ảnh (frame buffer) cho các ứng dụng đồ họa
Từ kiến trúc trên, ta có thể thấy rằng GPU là một thiết bị phức tạp và được thiết
kế để đáp ứng các yêu cầu tính toán đồ họa cao cấp
1.4 Một số ứng dụng phổ biến của tensor
Một số ứng dụng phổ biến của tensor trong khoa học máy tính bao gồm:
Xử lý hình ảnh: Tensor được sử dụng để biểu diễn các hình ảnh và các đặc trưngcủa chúng Nó được sử dụng để xây dựng các mô hình học sâu để phân loại, pháthiện đối tượng, theo dõi v.v
Xử lý âm thanh: Tensor được sử dụng để biểu diễn dữ liệu âm thanh và các đặctrưng của chúng Nó được sử dụng để xây dựng các mô hình học sâu để phân loại,phát hiện và phân tích âm thanh
Xử lý ngôn ngữ tự nhiên: Tensor được sử dụng để biểu diễn dữ liệu ngôn ngữ vàcác đặc trưng của chúng Nó được sử dụng để xây dựng các mô hình học sâu đểphân loại, phát hiện và sinh văn bản tự động
Xử lý dữ liệu thời gian thực: Tensor được sử dụng để biểu diễn dữ liệu thời gian vàcác đặc trưng của chúng Nó được sử dụng để xây dựng các mô hình học sâu để dựđoán, phân loại, phân tích thời gian thực
Tensor là một đối tượng đa chiều linh hoạt và có tính khả chuyển cao, có thể chuyểnđổi giữa các định dạng khác nhau để phù hợp với mục đích sử dụng Tensor cũng làmột phần quan trọng của các thư viện học sâu như TensorFlow và PyTorch, và được
sử dụng rộng rãi trong nghiên cứu và ứng dụng thực tế
1.5 Kiến trúc xử lý tensor trong GPU
1.5.1 Định nghĩa
Kiến trúc xử lý tensor trong GPU (Graphics Processing Unit) là một kiến trúcphần cứng được thiết kế để xử lý các phép toán đại số trên tensor nhanh chóng và hiệuquả hơn so với các bộ xử lý trung tâm (CPU) truyền thống
GPU được thiết kế để xử lý đồ họa trong các ứng dụng game và đa phương tiện,nhưng nó cũng có thể được sử dụng để xử lý các phép toán đại số trên tensor trong cácứng dụng khoa học và công nghệ như học sâu và thị giác máy tính
Hình 1-5 Hình ảnh về GPU của Nvidia
Trang 101.5.2 Đặc điểm của kiến trúc xử lý tensor trong GPU
Kiến trúc xử lý tensor trong GPU có nhiều yếu tố quan trọng, bao gồm:
- Số lượng nhân xử lý: GPU có nhiều nhân xử lý hơn so với CPU, cho phép nó
Các kiến trúc xử lý tensor trong GPU khác nhau có thể có các tính năng, đặc điểm
và hiệu suất khác nhau Ví dụ, NVIDIA là một trong những nhà sản xuất GPU hàngđầu, và các kiến trúc xử lý tensor của NVIDIA bao gồm CUDA và Tensor Cores.CUDA là một công nghệ tính toán đại số dựa trên GPU của NVIDIA, trong khi TensorCores là một phần cứng được tích hợp trên GPU để tăng tốc độ xử lý tensor trong các
mô hình học sâu
1.5.3 GPU xử lý tensor như thế nào?
Sử dụng GPU để xử lý tensor có thể tăng tốc độ xử lý và đào tạo mô hình học sâuđáng kể, cho phép các nhà nghiên cứu và nhà phát triển xử lý các bài toán phức tạpmột cách nhanh chóng và hiệu quả hơn
Để tận dụng tối đa khả năng xử lý của GPU trong việc xử lý tensor, các thư việntính toán đại số như TensorFlow, PyTorch, Caffe và MXNet đã được phát triển để hỗtrợ tính toán trên GPU Các thư viện này cung cấp các API để tạo, xử lý và đào tạo môhình học sâu trên GPU, giúp tăng tốc độ tính toán và giảm thời gian đào tạo mô hình.Các kiến trúc xử lý tensor trong GPU cũng được cải tiến liên tục để tăng tốc độ tínhtoán và hiệu suất Ví dụ, NVIDIA đã giới thiệu kiến trúc Tensor Cores trên các GPUmới nhất của họ để cải thiện hiệu suất tính toán đại số tensor Tensor Cores cung cấptính năng tính toán trên tensor với độ chính xác cao hơn, cho phép tính toán các phéptoán đại số trên tensor một cách nhanh chóng hơn và hiệu quả hơn
Ngoài ra, các kiến trúc xử lý tensor trong GPU cũng có thể được tùy chỉnh đểphù hợp với các yêu cầu cụ thể của ứng dụng Ví dụ, các nhà nghiên cứu và kỹ sư cóthể tinh chỉnh các tham số của kiến trúc xử lý tensor để tối ưu hóa hiệu suất tính toáncho một ứng dụng cụ thể
Trong tổng quan, sử dụng kiến trúc xử lý tensor trong GPU là một cách hiệuquả để tăng tốc độ tính toán và đào tạo mô hình học sâu Tuy nhiên, việc sử dụng GPUcũng có một số hạn chế, bao gồm chi phí đắt đỏ và yêu cầu năng lực tính toán cao hơn
so với các bộ xử lý trung tâm (CPU) truyền thống
Trang 111.5.4 Lợi thế và hạn chế của việc sử dụng kiến trúc xử lý tensor trong GPU
1.5.4.1 Lợi thế
Một trong những lợi ích của việc sử dụng kiến trúc xử lý tensor trong GPU làtăng tốc độ tính toán đại số tensor GPU có nhiều nhân xử lý hơn so với CPU, chophép nó thực hiện nhiều phép toán đại số cùng một lúc Ngoài ra, GPU cũng có bộ nhớnhanh hơn và lớn hơn so với CPU, cho phép nó lưu trữ và xử lý các tensor lớn Điềunày rất hữu ích trong các ứng dụng khoa học và công nghệ như học sâu và thị giácmáy tính, khi phải xử lý các tensor lớn có hàng triệu hoặc hàng tỷ phần tử
Sử dụng kiến trúc xử lý tensor trong GPU cũng giúp tăng tốc độ đào tạo môhình học sâu Trong quá trình đào tạo mô hình, một số bước tính toán phải được thựchiện nhiều lần trên các batch dữ liệu khác nhau Sử dụng GPU giúp tăng tốc độ tínhtoán đại số trên các batch dữ liệu này, giảm thời gian đào tạo mô hình
Các kiến trúc xử lý tensor trong GPU cũng được cải tiến để tăng tốc độ tínhtoán và hiệu suất Ví dụ, NVIDIA đã giới thiệu kiến trúc Tensor Cores trên các GPUmới nhất của họ để cải thiện hiệu suất tính toán đại số tensor Tensor Cores cung cấptính năng tính toán trên tensor với độ chính xác cao hơn, cho phép tính toán các phéptoán đại số trên tensor một cách nhanh chóng hơn và hiệu quả hơn
Tên GPU Điện năng tiêu thụ Bộ nguồn khuyên dùng (Công suất
Trang 121.5.5 Một số ứng dụng của kiến trúc xử lý tensor trong GPU
Một trong những ứng dụng chính của kiến trúc xử lý tensor trong GPU là tronglĩnh vực học sâu (deep learning) Học sâu là một lĩnh vực của trí tuệ nhân tạo (AI) vàmáy học (machine learning) tập trung vào việc xây dựng các mô hình nơ-ron sâu đểphân tích và rút trích kiến thức từ dữ liệu Các mô hình học sâu có thể được sử dụng đểgiải quyết các bài toán như phân loại hình ảnh, nhận dạng giọng nói, dịch thuật tựđộng, và nhiều bài toán khác
Việc sử dụng kiến trúc xử lý tensor trong GPU giúp đào tạo các mô hình họcsâu nhanh hơn và hiệu quả hơn Trong quá trình đào tạo mô hình học sâu, phải tínhtoán các gradient của hàm mất mát trên các tham số mô hình, và sử dụng gradient đó
để cập nhật các tham số Việc tính toán gradient này có thể rất tốn kém về thời gian vàtài nguyên tính toán Sử dụng GPU giúp tăng tốc độ tính toán đại số trên các gradientnày, giảm thời gian đào tạo mô hình
Ngoài ra, các kiến trúc xử lý tensor trong GPU cũng có thể được sử dụng đểtăng tốc độ tính toán trong các ứng dụng khác, như xử lý video, xử lý hình ảnh y tế, và
xử lý ngôn ngữ tự nhiên
Tuy nhiên, việc sử dụng kiến trúc xử lý tensor trong GPU cũng có một số tháchthức Vì GPU đòi hỏi năng lực tính toán cao hơn so với CPU, việc sử dụng GPU có thểtạo ra nhiệt độ cao và tiêu tốn nhiều năng lượng Do đó, cần có một hệ thống làm máthiệu quả để đảm bảo GPU hoạt động ổn định và bền bỉ Ngoài ra, việc đồng bộ hóa cáctính toán trên nhiều GPU cũng là một thách thức đối với các hệ thống phân tán lớn