CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI1.1 Giới thiệu đề tài 1.1.1 Mục tiêu nghiên cứu Mục tiêu chính: Nghiên cứu là đào sâu vào GPU – sức mạnh của chip đồ họa, phân tích cách nó tương tác với c
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
HỌC PHẦN: KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI: GPU – SỨC MẠNH CỦA CHIP ĐỒ HỌA
Sinh viên: Lâm Kim Chi Mã:23AI003
Bùi Chấn An Mã:23AI001 Trương Tấn Vũ Mã:23AI056
Đỗ Phú Minh Đức Mã:23AI011
Đặng Trần Yến Nhi Mã:23AI038
Giảng viên hướng dẫn: ThS Trần Thu Thủy
Đà Nẵng, tháng 05 năm 2024
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
HỌC PHẦN: KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI: GPU – SỨC MẠNH CỦA CHIP ĐỒ HỌA
Sinh viên: Lâm Kim Chi Mã:23AI003
Bùi Chấn An Mã:23AI001 Trương Tấn Vũ Mã:23AI056
Đỗ Phú Minh Đức Mã:23AI011
Đặng Trần Yến Nhi Mã:23AI038
Giảng viên hướng dẫn: ThS Trần Thu Thủy
Đà Nẵng, tháng 05 năm 2024
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Chữ ký của giảng viên hướng dẫn
Trang 4LỜI CẢM ƠN
Nhóm xin gửi lời cảm ơn chân thành đến quý thầy cô Trường Đại học Công nghệThông tin và Truyền thông Việt – Hàn đã truyền đạt cho nhóm những kiến thức và bàihọc quý báu trong môn học vừa qua
Nhóm xin trân trọng gửi lời cảm ơn đến cô giáo ThS Trần Thu Thuỷ - giảng viên bộ
môn “Kiến trúc máy tính” đã tận tình hướng dẫn và giúp đỡ nhóm trong suốt quá trìnhlàm dự án, giúp nhóm có thêm nhiều kiến thức bổ ích, và hiểu rõ hơn vấn đề mìnhnghiên cứu Và trong thời gian làm dự án vừa qua, cô đã giành nhiều thời gian quý báu
và tâm huyết để hướng dẫn nhóm hoàn thành dự án này
Dưới đây là kết quả của quá trình tìm hiểu và nghiên cứu mà nhóm đã đạt được tronghọc kỳ vừa qua Tuy có nhiều cố gắng học hỏi trau dồi để nâng cao kiến thức nhưngkhông thể tránh khỏi những sai sót Nhóm rất mong được những sự góp ý quý báu củacác thầy giáo, cô giáo cũng như tất cả các bạn để dự án của nhóm được hoàn thiệnhơn
Nhóm xin chân thành cảm ơn!
Trang 5MỤC LỤC
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 3
1.1 Giới thiệu đề tài 3
1.1.1 Mục tiêu nghiên cứu 3
1.1.2 Nguyên do nghiên cứu 3
1.2 Phương pháp nghiên cứu 3
1.3 Phạm vi nghiên cứu 3
1.4 Cấu trúc báo cáo 3
CHƯƠNG 2: TÌM HIỂU VỀ GPU 5
2.1 Giới thiệu GPU 5
2.1.1 Nguồn gốc GPU 5
2.1.2 Khái niệm 5
2.2 Cấu tạo của GPU 6
2.2.1 Lõi Xử Lý (Processing Cores): 6
2.2.2 Bộ Nhớ Đệm (Cache Memory): 7
2.2.3 Đơn Vị Điều Khiển (Control Units): 7
2.2.4 Bộ Nhớ (Memory): 7
2.2.5 Giao Tiếp (Interface): 7
2.2.6 Tản Nhiệt (Cooling): 7
2.3 Hoạt động của GPU 8
2.3.1 GPU rời 8
2.3.2 GPU tích hợp 8
2.4 So sánh GPU và CPU 8
2.4.1 Giống nhau 9
2.4.2 Khác nhau 9
2.5 Vai trò của GPU 10
2.6 Ứng dụng thực tế của GPU 10
CHƯƠNG 3: ỨNG DỤNG CỦA TÍNH TOÁN GPU 12
3.1 Xử lý ngôn ngữ tự nhiên (NLP) 12
Trang 63.2 Tái tạo hình ảnh 13
3.3 Tính toán liều lượng 13
CHƯƠNG 4: SLIDE TRÌNH BÀY 15
CHƯƠNG 5: GIỚI THIỆU NGÔN NGỮ ASSEMBLY 16
5.1 Tổng quan về ngôn ngữ Assembly 16
5.1.1 Khái niệm 16
5.1.2 Các thành phần của ngôn ngữ Assembly 16
5.1.3 Cách thức hoạt động của ngôn ngữ Assembly 16
5.2 Lợi ích khi sử dụng ngôn ngữ Assembly 17
5.3 Ứng dụng của ngôn ngữ Assembly 18
5.4 Ưu điểm và nhược điểm của ngôn ngữ Assembly 18
5.4.1 Ưu điểm : 18
5.4.2 Nhược điểm: 19
CHƯƠNG 6 CHƯƠNG TRÌNH ASSEMBLY 20
6.1 Giới thiệu chương trình Assembly 20
6.2 Phân tích thuật toán sử dụng 20
6.3 Mục đích : 20
6.4 Cài đặt chương trình 21
6.4.1 Mã nguồn 21
Trang 7DANH MỤC HÌNH ẢNH
Trang 8MỞ ĐẦU
Trong học phần Kiến Trúc Máy Tính, điều quan trọng là sinh viên phải hiểu rõ về cấutrúc và nguyên lí hoạt động của máy tính Vì vậy việc nghiên cứu đề tài của nhóm emgiúp phần nào hiểu về máy tính và cũng cần phải đào sâu vào bên trong, vì cấu trúccủa một chiếc máy tính không hề đơn giản Trong thời đại công nghệ 4.0 nhu cầu sửdụng các thiết bị điện tử, đặc biệt là máy tính ngày càng lớn Điều đó đòi hỏi sự pháttriển vượt bậc về công nghệ nhằm đáp ứng yêu cầu lớn trong công việc hay giải trí, vàviệc hiển thị hình ảnh với chất lượngcao như HD, FullHD hay UltraHD đóng một vaitrò cực kì quan trọng Vì vậy để hiểu thêm về điều đó, nhóm chúng em đã lựa chọn
một chủ đề khá phổ biến để tiếp cận, đó là “Tìm hiểu về GPU – Sức mạnh của chip đồ
họa”.
Với học phần Kiến Trúc Máy Tính trong kì vừa rồi, chúng em đã được cô Trần ThuThuỷ hướng dẫn tiếp cận với ngôn ngữ Assembly ở mức cơ bản Và chúng em đã sử
dụng những kiến thức ấy, để tiếp cận đề tài nghiên cứu “Viết chương trình điều khiển
bàn phím hay đơn giản hơn là viết chương trình in ra màn hình các kí tự trên bàn phím”.
Trang 9CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu đề tài
1.1.1 Mục tiêu nghiên cứu
Mục tiêu chính: Nghiên cứu là đào sâu vào GPU – sức mạnh của chip đồ họa, phân tích cách nó tương tác với các thành phần khác trong kiến trúc máy tính,
và hiểu rõ cơ chế làm việc của nó trong quá trình xử lý thông tin
1.1.2 Nguyên do nghiên cứu
Nghiên cứu về GPU trong kiến trúc máy tính là quan trọng để hiểu rõ về cáchmáy tính tương tác Điều này giúp nâng cao hiệu suất hệ thống, giải quyếtthách thức từ sự đa dạng dành cho lĩnh vực thiết kế đồ họa chuyên nghiệp vàsản xuất video dữ liệu nhằm phân tích chất lượng sắc nét của màn hình, cũngnhư hỗ trợ sự phát triển của công nghệ máy tính
1.2 Phương pháp nghiên cứu
Phương pháp nghiên cứu sẽ bao gồm việc tiến hành đánh giá lý thuyết, tìmhiểu về kiến trúc máy tính và GPU – sức mạnh của con chip đồ họa từ cácnguồn đáng tin cậy Sau đó, sẽ có quá trình phân loại và phân tích tìm hiểu vềGPU để hiểu rõ về tương tác giữa chúng trong kiến trúc máy tính Cuối cùng,nghiên cứu về đề tài để mở rộng kiến thức, tạo cơ sở cho việc hiểu rõ hơn vềGPU
1.3 Phạm vi nghiên cứu
Phạm vi nghiên cứu về GPU trong kiến trúc máy tính sẽ tập trung vào các khíacạnh chính sau:
1.3.1 GPU
- Nghiên cứu khái niệm về các thành phần cụ thể của GPU
- Phân tích cách nó hoạt động trong kiến trúc máy tính
Trang 101.3.2 Tính toán và ứng dụng của GPU
- Hiểu rõ về cách tính toán của GPU
- Các ứng dụng của GPU
1.3.3 Mục tiêu hướng dẫn và hỗ trợ người học
- Nghiên cứu sẽ tạo ra tài liệu hướng dẫn và mã nguồn mẫu để hỗ trợ người học
và lập trình viên mới tiếp cận ngôn ngữ Assembly
1.4 Cấu trúc báo cáo
Báo cáo của chúng em bao gồm các chương sau :
- Chương 1: Tổng quan đề tài
- Chương 2: Tìm hiểu về GPU
- Chương 3: Ứng dụng của tính toán gpu
- Chương 4: Slide trình bày
- Chương 5: Giới thiệu ngôn ngữ Assembly
- Chương 6: Chương trình Assembly và mã nguồn
Trang 11CHƯƠNG 2: TÌM HIỂU VỀ GPU
2.1 Giới thiệu GPU
2.1.1 Nguồn gốc GPU
Trước GPU, chúng ta đã có màn hình ma trận điểm, được phát hành vào những năm
1940 và 1950 Về sau màn hình véc-tơ và mành quét ra đời, sau đó nữa là PC và máychơi game đầu tiên ra đời Vào thời điểm đó, một thiết bị không thể lập trình được gọi
là bộ điều khiển đồ họa dùng để điều phối hiển thị trên màn hình Thông thường, các
bộ điều khiển đồ họa dựa vào CPU để xử lý, mặc dù một số bộ điều khiển có bộ xử lýtrên chip Cùng thời gian đó, có một dự án hình ảnh 3D có liên quan đến việc tạo ramột pixel trên màn hình bằng một bộ xử lý duy nhất Mục tiêu là tạo ra một hình ảnhkết hợp nhiều pixel trong một khoảng thời gian ngắn Dự án này là khởi nguồn củaGPU mà chúng ta biết đến hiện nay Mãi đến cuối những năm 1990, GPU đầu tiên mới
ra đời GPU này nhắm vào thị trường trò chơi và thiết kế có sự hỗ trợ của máy tính(CAD) GPU đã tích hợp một công cụ kết xuất dựa trên phần mềm trước đây, cùngcông cụ chuyển đổi và chiếu sáng có bộ điều khiển đồ họa đi kèm, tất cả đều trên mộtchip có thể lập trình
2.1.2 Khái niệm
GPU là viết tắt của "Graphics Processing Unit," tức là "Bộ xử lý đồ họa." Đây là
một thành phần chính của hệ thống máy tính được thiết kế đặc biệt để xử lý và kiểmsoát các tác vụ liên quan đến đồ họa và hình ảnh Mặc dù tên gọi của GPU thường liênquan đến việc xử lý đồ họa, nhưng nó cũng đóng vai trò quan trọng trong việc thựchiện các phép toán số học phức tạp, đặc biệt là trong các ứng dụng đòi hỏi đồ họa caonhư trò chơi, thiết kế đồ họa, và công việc liên quan đến xử lý ảnh và video Bên cạnh đó, GPU thường có các đơn vị xử lý thông tin (GPU core) và bộ nhớ(VRAM) riêng biệt để lưu trữ dữ liệu đồ họa Điều này cho phép GPU thực hiện cácphép toán đồ họa và tính toán số học một cách hiệu quả
Tính năng tiêu biểu của GPU bao gồm khả năng tạo hiệu ứng hình ảnh 3D đẹp mắt, xử
lý video và hỗ trợ tính toán chuyên sâu Hơn nữa, các ứng dụng ngày càng phụ thuộc
Trang 12vào sức mạnh tính toán của GPU Và việc tận dụng GPU đang trở thành một phầnquan trọng trong nhiều lĩnh vực công nghệ thông tin và phát triển ứng dụng GPU được dùng trong các hệ thống nhúng, máy tính cá nhân, máy trạm workstation,máy tính chơi game GPU dễ nhận biết nhất là trong máy tính cá nhân, CPU xuất hiện
ở Card màn hình hoặc có thể gắng trên Maiboard
2.2 Cấu tạo của GPU
GPU là một linh kiện phần cứng quan trọng trong máy tính Nó được thiết kế đặcbiệt để xử lý và điều khiển các tác vụ đồ họa Dưới đây là cấu tạo cơ bản của GPU:
2.2.1 Lõi Xử Lý (Processing Cores):
- GPU chứa hàng trăm hoặc thậm chí hàng nghìn lõi xử lý (còn được gọi là CUDAcores hoặc stream processors) Những lõi này chịu trách nhiệm cho việc thực hiện cácphép tính đồ họa và tính toán song song
- Lõi xử lý thường được tổ chức thành các nhóm nhỏ gọi là Streaming Multiprocessors(SMs) trong kiến trúc của NVIDIA hoặc Compute Units (CUs) trong kiến trúc củaAMD
2.2.2 Bộ Nhớ Đệm (Cache Memory):
- GPU có các cấp độ bộ nhớ đệm như cache L1, cache L2 và bộ nhớ đệm chung Các
bộ nhớ đệm này được sử dụng để lưu trữ dữ liệu tạm thời mà các lõi xử lý cần truy cậpnhanh chóng, giúp tăng tốc độ thực thi của các phép tính
2.2.3 Đơn Vị Điều Khiển (Control Units):
- GPU bao gồm các đơn vị điều khiển để quản lý các lệnh và dữ liệu được truyền đến
từ CPU và gửi đến các lõi xử lý
2.2.4 Bộ Nhớ (Memory):
- GPU cần có bộ nhớ để lưu trữ dữ liệu đồ họa và dữ liệu tính toán Thường có các loại
bộ nhớ như bộ nhớ GDDR (Graphics Double Data Rate) và bộ nhớ HBM (High
Trang 13Bandwidth Memory), được thiết kế để cung cấp băng thông lớn và tốc độ truy cậpnhanh.
2.2.5 Giao Tiếp (Interface):
- GPU thường có các giao tiếp để kết nối với các thành phần khác trong hệ thống, baogồm PCIe (Peripheral Component Interconnect Express) cho việc kết nối với bo mạchchủ, và các giao tiếp khác như HDMI, DisplayPort cho việc kết nối với màn hình
2.2.6 Tản Nhiệt (Cooling):
- GPU thường được trang bị các hệ thống tản nhiệt để giữ nhiệt độ hoạt động ổn định.Các hệ thống tản nhiệt có thể bao gồm quạt làm mát, bộ tản nhiệt hoặc các hệ thốnglàm mát chất lỏng
2.3 Hoạt động của GPU
GPU hiện đại thường có một số bộ đa xử lý Mỗi bộ đa xử lý có một khối bộnhớ chung, cùng với một số bộ xử lý và các thanh ghi tương ứng Bản thânGPU có bộ nhớ không đổi, cùng với bộ nhớ thiết bị lắp trên bo mạch Mỗi GPUhoạt động hơi khác nhau tùy thuộc vào mục đích riêng, nhà sản xuất, đặc điểmcủa chip và phần mềm được sử dụng để điều phối GPU
Ví dụ: phần mềm xử lý song song CUDA của Nvidia cho phép các nhà phát triển
lập trình cụ thể GPU với hầu hết mọi ứng dụng xử lý song song thông dụng GPU
có thể là chip độc lập, được gọi là GPU rời, hoặc được tích hợp với phần cứng điệntoán khác, được gọi là GPU tích hợp (iGPU)
2.3.1 GPU rời
- GPU rời là một bộ phận riêng biệt, không tích hợp vào CPU hoặc chipset.
- GPU rời hoạt động dưới dạng chip tập trung hoàn toàn vào tác vụ hiện có
Trang 14- Thường được sử dụng trong các máy tính chơi game, máy trạm đồ họa, và cácmáy tính dành cho các công việc đòi hỏi đồ họa cao.
- Khi dùng để xử lý đồ họa, GPU thường nằm trong card đồ họa cắm vào bomạch chủ Trong các tác vụ khác, GPU có thể nằm trong card khác hoặc cắmthẳng vào bo mạch chủ
2.3.2 GPU tích hợp
- Vào đầu những năm 2010, chúng ta bắt đầu nhận thấy xu hướng bỏ dùng GPUrời Các nhà sản xuất chào đón sự xuất hiện của CPU và GPU kết hợp trên mộtchip, được gọi là iGPU Những iGPU đầu tiên dành cho PC là các dòngCeleron, Pentium và Core của Intel Những dòng này vẫn phổ biến trên máytính xách tay và PC Một loại iGPU khác là hệ thống trên chip (SoC) chứa cácthành phần như CPU, GPU, bộ nhớ và kết nối mạng Đây là những loại chipthường được tìm thấy trong điện thoại thông minh
2.4 So sánh GPU và CPU
2.4.1 Giống nhau
CPU và GPU đều sở hữu các lõi đơn lẻ xử lý tác vụ nhất định mà bộ xử lý cầnphải thực hiện nhờ những bóng bán dẫn Bên cạnh đó, hai bộ xử lý có chung bộgiải mã lệnh và các bộ đệm, các trình xử lý truy cập bộ nhớ (tải/lưu trữ), bộlogic và số học (ALU - Arithmetic logic unit)
2.4.2 Khác nhau
- Chức năng chính:
CPU: Là "bộ não" của máy tính, CPU chịu trách nhiệm xử lý hầu hết các tác
vụ, từ việc duyệt web, xử lý văn bản, đến chạy các ứng dụng phức tạp
GPU: Được thiết kế chuyên biệt cho việc xử lý đồ họa và hình ảnh, GPU hiệuquả trong việc xử lý song song các tác vụ liên quan đến đồ họa, như rendering3D, xử lý video và thậm chí cả trong tính toán khoa học và trí tuệ nhân tạo
- Nhiệm vụ:
Trang 15 CPU: Sử dụng một số lượng nhỏ các lõi (cores) có khả năng xử lý luồng dữ liệutuần tự Mỗi lõi của CPU có khả năng thực hiện một loạt các tác vụ phức tạpmột cách nhanh chóng.
GPU: Có hàng trăm hoặc thậm chí hàng nghìn lõi nhỏ hơn, chuyên dụng choviệc xử lý song song Kiến trúc này cho phép GPU thực hiện hàng nghìn tác vụnhỏ cùng một lúc, rất lý tưởng cho việc xử lý đồ họa và dữ liệu hình ảnh
- Tính toán:
CPU: Thích hợp cho các tác vụ yêu cầu tính toán tổng quát, như xử lý dữ liệu
và thực hiện các phép toán logic
GPU: Hiệu quả trong việc xử lý các tác vụ đồ họa và tính toán đồ họa lớn theocách song song
- Tiêu thụ năng lượng:
CPU: Thường tiêu thụ năng lượng cao hơn, vì chúng phải xử lý một loạt các tác
vụ tổng quát
GPU: Thường có khả năng tiết kiệm năng lượng hơn trong các tác vụ đồ họa,đặc biệt là trong các ứng dụng yêu cầu đồ họa cao
- Tính linh hoạt:
CPU: Linh hoạt và thích hợp cho nhiều loại công việc khác nhau
GPU: Chủ yếu được tối ưu hóa cho xử lý đồ họa, nhưng cũng có thể được sửdụng trong một số ứng dụng tính toán song song
2.5 Vai trò của GPU
Trước khi GPU ra đời, thì CPU vừa phải xử lý các chương trình vi tính, dữ kiệnvừa kiêm luôn công việc xử lý đồ họa, hình ảnh Lượng công việc quá nhiều nênCPU hoạt động theo xu hướng ban phát đồng đều mức tài nguyên Công việc đồhọa và công việc văn phòng đều nhận được lượng tài nguyên như nhau Chính vìvậy, các sản phẩm đồ họa khi ra đời đều bị hạn chế rất nhiều
Trang 16Nhưng từ khi điện toán GPU ra đời thì mọi thứ đã hoàn toàn thay đổi giúp giảmbớt khối lượng công việc cho CPU, CPU chỉ còn nhiệm vụ kéo hệ thống chạy theohoạt động của GPU và dành các xung của mình cho các nhiệm vụ khác của hệthống, tiết kiệm thời gian đáng kể, giải quyết những áp lực trong việc cung cấp mộtsản phẩm chất lượng cao cho thị trường,…
Và hiện nay vai trò của GPU trên máy tính ngày càng quan trọng hơn, không chỉdừng lại ở việc xuất tín hiệu ra màn hình hay hỗ trợ chơi game 3D mà việc tậndụng nhân đồ hoạ (GPU) tham gia hỗ trợ xử lý cùng nhân CPU để đưa ra các ứngdụng bổ ích như: DXVA (DirectX Video Acceleration) trên các chương trình xemphim, HWA (Hardware Acceleration) trên các trình duyệt web, MS Powerpoint
2010 tận dụng GPU để thể hiện các hiệu ứng mượt mà hơn
2.6 Ứng dụng thực tế của GPU
- Trong game: Các tựa game hiện nay từ các quán gamenet bình dân hay là
những quán Cyber game đều sử dụng GPU Các trò chơi hiện tại đều có hìnhảnh chân thành nhất và mượt mà nhất Thực tiễn bây giờ các nghề hot nhưStreamer hay những game thủ chơi những tựa game hot hiện tại như PUBG hayCall Of Duty hoặc các loại game khác đều cần GPU để xử lý
- Trong đồ họa hình ảnh và video: Hiện tại thì các kỹ sư thiết kế các công trình
lớn thì lõi Cuda core của GPU sẽ ảnh hưởng trực tiếp khi các bạn dựng hình vẽhình ,còn điển hình trong làm video thì GPU sẽ tiếp nhận và xử lý khối lượnglớn các tệp lệnh từ người dùng trong các trình làm video 2k hay 4k thì khảnăng Preview để không bị giật lag thì GPU cao cấp sẽ giúp bạn sử lý và tínhtoán điều đó
- Ứng dụng: Tương lai và trí thông minh nhân tạo và những lý do mà GPU hiện
tại bây giờ được phổ cập rộng rãi đó chính là đó chính là tính toán y khoa, điện
tử, mô hình tài chính, nghiên cứu khoa học hiện đại và những lĩnh vực liên quantới thăm dò dầu khí Trong đó trí thông minh nhân tạo là những sản phẩmđược mong chờ nhất và hướng đến tương lại những robot làm những công việcnặng nhọc thay cho con người