Cac thử nghiệm đánh giá hiệu rằng của một nút tỉnh toán đơn lẻ trong hệ thống và đánh giả so sánh hiệu năng tinh toản của hệ thông siêu máy tính sử dụng, kiến trúc tỉnh toán CPU-GDPU vả
Trang 1LO1 CAM DOAN
éi mục đích nghiên cứu, học tập dé nang cao kiến thức và trinh độ chuyên
nôn nên lôi đã làm luận văn rrấy miột cách hoàn toàn nghiệm Lúc và trưng thực
Trong luận văn, tỏi có sử dụng và trích đẫn từ một số tải liệu của cáo tác giả khác Tôi dã nêu trong, phân tài liễu tham khảo ở cuối luận văn
Tỏi xin cam đoan và chịu trách nhiệm vẻ nội dung và sự trung thực trong luận văn lốt nghiệp Thạc sĩ của mình
Tà Nội, tháng 9 năm 201 5
lọc viên
Nguyễn Trí Trung,
Trang 2LOLCAM ON
Đầu tiên, tỏi xin bảy tổ lòng biết ơn chân thành vá xin dược gửi lời cảm ơn sâu sắc nhất đến thầy giáo TS Kguyễn Kim Khánh, người đã trực tiếp hướng dẫn và định hướng cho tôi giải quyết các vẫn để khó khăn trong klui làm luận văn
Những kiến thức tôi trinh bảy trong luận vẫn này một phân lả kết quả của hai xăm tôi có cơ hội học tập chương trình thạc sĩ ở Viện Công nghệ Thỏng tin, dai học Bách Khoa Hà Nội Tôi xin gửi lời cám ơn chân thành đến các thấy cổ giáo ở viện
CNTT, phỏng Dão tạo sau đại học, DI IBK 11à Nội đã tạo điểu kiện thuận lợi cho tôi trong thời gian học tập tại trường,
Tôi cũng xin gửi lời cám ơn gia đình, người thân và bạn bẽ tôi vì luôn là nguồn
động lực đổi đào giúp tôi có có thể hoàn thành luận văn này
Hà Nội, tháng 9 năm 2015
Trang 3CHƯƠNG2: TỎNG QUAN KIỀN TRÚC GEI
2.2.1 Đường ắng din dé hoa (Graphics Pipeline)
3.3.2 Cơ chế đa luỗng của GPU
3.3.3 Kiến trúc đalãt cũa ŒPU
Trang 4ane BD
33.1 Kiến trúc tính foán CPU ŒDU riêng biệt,
4.3 Kiến trúc tính toán CPU-GPU hợp nhất 56
453 Cuntnroc diém cin bé thong siêu máy tỉnh cụm Beowtlf đựa trên kiến trúc
CHƯƠNG 5: THỨ NGHIÊM DANH GTA HIRU NANG KIRN TRUC TINH TOAN CPU-GPU 87
S.1 Sự cần thiết của việc đánh giá hiệu nâng hệ thốn, 87
2 Dánh giá hiệu năng của một nút tính toán trên bài toán tính foán độ đải cạnh huyền
- 88
cũa nhiều tam giác vnâng
52.1 Dat vin đề bởi toán
Trang 552.2 Thâng số cấu hình thử nghiệm
5.3 Đánh giá hiệu năng của một nút tính toán trên Dài toán sắp xếp dãy số 102
53.1, Thuật oán sắp xếp dựa trên cơ sị 102 5.32 Thông số cấu Hinh thử nghiệm 107 5.3.3 Kết quã thủ nghiệm và điảnh glá se T0
5.4 Đánh giá hiệu năng của một núí tĩnh toán trên bài raán tính nhanh hiến đổi Tonrler
111 .1 _ Biến đổi ourler rời rạc và giải thuật tính nhanh biến đổi Foiml 111
Trang 6LOT MO DAT
Siêu máy tính đã ở thánh thành một phan không thể thiếu trong các Rnh vực nghiên cứu khoa học như nghiên cửa dự báo khí hậu thời tiết, khoa học vật liệu, v.v Tuy nhiên việc triển khai xây đựng một hệ thông siêu máy tính tiêu tốn rất nhiều thời giám và tiền của Đồng thời lần sóng tink loan da đụng trên GPU (GPGPU - General Purpose GPU) ma mé hinh kién tric tinh toan không đồng nhất CPU-GPU là đại điện ngày cảng dem lại nhiều kết quả khả quan trong lĩnh vục tính toán song song Với mục dich xây dựng kiến trúc phản cứng cho một hệ thống siêu unáy tỉnh có tý lệ hiệu năng trên giá thành cao và kết hợp được sức mạnh tính toán
song song đỏ số từ bộ xử lý đổ họa (GPU — Graphic Processing Unit), tai da lua
chon dễ tài “Giải pháp thiết kế và dánh giá hiệu năng siêu máy tính sử dụng CPU- GPL”, Dé tai gdm các nội dưng chính sau
1 Tổng quan kiến trúc GPU và kiến trúc mô hinh tính toán CPU-GPU: giới
thiệu về lịch sử hình thành và phát triển của cáo thế hệ GPU, các kiến thức cơ bản
về kiến trúc của GPU cỗ điển và GPU hiện đại ngày nay, từ đó đi vào giới thiệu tổng quan về cơ chế xử lý tính toán trên GPU vả mô hình kiến trúc tính toán đa dụng CPU-GPU
2 Siêu máy tính và mỏ hình siêu máy tính sử đựng kiên trúc tính toán CPU- GDU: giới thiệu lịch sử các thế hệ siêu ruáy tính, phân loại các hệ thống siêu máy tỉnh và để xuất mô hình siêu máy tính dựa trên mé hinh may tinh cum Beowulf va
kiến trúc tính toàn CPU-GPU
3 Cac thử nghiệm đánh giá hiệu rằng của một nút tỉnh toán đơn lẻ trong hệ
thống và đánh giả so sánh hiệu năng tinh toản của hệ thông siêu máy tính sử dụng, kiến trúc tỉnh toán CPU-GDPU vả hệ thông siêu máy tính tương đương chi sit dung
CPU
Người thực hiện
Nguyễn Trí Trung
Trang 7
Tên
viết tái
1 | GPU | GraphieProcessme Lnit bộ xử lý dỗ họa
GPGPU | General Purpose GPU- tỉnh toán đa đụng trên GPU
3 | CPU | Central Processing Unit — b6 x0 lý trung tâm
4 | TPC | Tigh Performance Computing — Tỉnh toán hiệu nàng lớn
§ TTL | Transitor to Transiter Logic — một loại mạch số hoạt động dựa
trên nguyên lý Iransitor lưỡng cục
6 | PGA |Professional Graghiss Controller — bộ diễu khiến dé hoa
chuyên nghiệp
7 PEL | Peripheral Component Interconect - giao dign bus hé théng của
máy tỉnh
§ ACP | Accelerated Graphics Port - cong tăng tốc đồ họa
9 SM | Streaming MulGprocessor — bd xir dong Wy da Tdi Hong kiến
trúc GPU ctia NVIDIA
10 | CUDA | Compute Unified Device Architecture mồ hình lập trình tính
toán đa dụng trên GPU eta NVIDIA
11 | SIMT | Single Instruction Multiple Thread — co ché don lénh da luéng
12 | SIMD | Single Instruction Multiple Data — co ché don lénh da dit ligu
13 | MIMD | Multiple Instruction Multiple Data — co ché da lénh da dit ligu
14 | SISD | Single Insrncbon Sigle Data— cơ chế đơn lệnh đơn dữ liệu
15 | MISD | Muliple Tnstuction Single Dala — cơ chế da lệnh đơn dữ liệu
16 | VGA | Video Graphics Array — chuan x ly dé hoa theo dãy dễ hiển
thị ra mán hình
17 | ĐMA |Dynamic Memery Access — hoạt động truy cập bộ nhớ trực tiếp không qua CPU từ các thiết bị ngoại vĩ
Trang 8
18 [ DPP | Data Parallel Processor Array — day bộ xử lý đữ liệu song song
(AMD)
19 | VEDW | Very Long Instruction Word — kiến trúc bộ xử lý thiết kế để
tan dung co ché song song ting chi thi lệnh
20 | RISC [RISC — Reduce Instruction set computer — kién tric bd 20 ly
thiết kế trên tập lệnh rút gọn
3 CU | Conpuung UmL— đơn vị xử lý tính toán nói chung ở GPU
22 | CIA | Co-Operative Thưead Array dãy các luông có khá năng xứ lý
phổi hợp với nhau (tương tự như định nghĩa luồng trong khối
tuiổng của CƯDA)
33 | ALU | Arithmetic Logic Unit — là các đơn vị xử lý các phép toán học
và logie
24 | IDFI | Disrete Fourier ‘Transform biển đổi Fourier rời rạc
25 | FFT | Fast Fourier ‘Transfonn tỉnh nhanh biển đổi Fourier rời rạc
26 | MIS | Message ‘Transfer System hệ thông chuyển bảntin
3? | GMSP | Global Memory Shared Variables — hệ thông máy tính sử dụng
hộ nhớ toàn cục và chỉa sẽ biếm
28 | GMMP | Global Memory Message Passing —hé thong may tính sử dụng
bộ nhớ toản cục và trao đổi ban tin
29 | DMSP | Distributed Memory Shared Variables hệ thống máy tính sử
đụng bộ nhớ phân tan va chia sé biến
30 | DMMP | Distributed Memory Message Passing — hé théng may tinh si
dụng bộ nhở phân tản và trao dỗi ban tin
31 | NOW | Network of Workstations hệ thống may tinh cum theo mô
hình mang cdc may tram
32 | COW | Cluster of Workstations — hé théng cum céc máy trạm
33 | SMP | Symmetric Multiprocessing — hé théng bộ xử lý đa lõi đổi xứng
Trang 9
DANH MUC HiNH VE BANG BI DANH MỤC HÏNH VẼ
Tình 1: Sereenshot của game DOOM giữa phiên bản 1 năm 2993 và phiên bàn 4 năm 2014 15
Hình 2: Đường ông dẫn đỗ họa có định chức xững có điển
Tình 3: Xi hướng song song trong đường ông, đẫn đỗ họa ở những thời điểm đâu
Hinh 4: Vi
c chuyển dẫn các chức năng trên đường dng din dé hoa cho GPU
11inh 5: Kiến trúc của card Gei'orce 3
THình 9: Kiến trúc của AMD Fusion
Hinh 10: Đường ống din dé hoa
11ïnh 11: Cơ chế lráo đổi giữa hai khung lủnh của GPU sử dụng bộ đệm đối
Hinh 12: Kiển trúc hợp nhất của GPU (GeForce 8800 với 112 hộ xứ lý đồng) 32
Hình 13: Shadcr hợp nhất — Tiến hóa của đường dng din dé hoa 35
1linh 14: Sơ để khối kiến trúc GPU
Hinh 15: Hệ thống phân cấp bộ nhớ và các đơn vị tỉnh toán
Hinh 16; Kiến trúc đa luồng của bộ xử lý đa nhân
Tỉnh 17: Sắp xếp cuộn đa Inéng, STMT
Hình 18: Bộ gửi chí thị lệnh kép trong kiển tric Kepler
11ïnh 19: So sénh Sun UilraSPARC T2 với một chịp ‘Tesla, 8 L6i SM
Hinh 20: Mô hình tinh toán không đẳng nhất CPU+GPU (1)
Hình 21: Mô hình tính toán không đồng nhất CPU+GPU (2
1lỉnh 22: Kiến trúc máy tính những năm 1990
Tình 23: Sơ đỗ khối mảy tính với GPU (a) Sơ để khói máy tính với CPU Intel (b): Sơ để
+khốt máy tính với CPU AMD
Hình 24: Liên kết NVLink
Hình 25: Sơ đỗ khỏi CPU GPU riêng biếL
Tinh 26: Kién tric Fusion cia AMD
Trang 10Hình 29; Lịch trình cho céc kieh ban CPU-GPU (a): đơn luỗng, một nhàn GIU với mội GPU (U):
đơn luỗng, hai nhân GPU với một GPU; (c): đa nhân GPU với nhiễu GPU „61
-Hình 30: Mô hình phân loại hệ thông mây tính Eiynn-Tohnson 1 65 Tình 31: Mô hình phân loại hệ thông máy tỉnh MIMD của Tanenbanm -66 Hình 32: Siêu mày tính Cray-1 với thiết kế hình trụ, đảm bảo khoảng cách giữa vi xử lí với
các thành phan khác trong hệ thống là đều nhau
11inh 33: Hệ thông máy tính cụm
Tỉnh 34: Phân loại hệ thông máy tính sử đụng hộ nhỏ phân rán và trao đổi bin tin cia, Thomas 1 Sterling,
Hinh 35: Kién tnic h@ thang may tinh cum
Hình 36: Mô hình siêu máy tính loai Beowulf sit dung kien tic tinh toan CPU-GPU
Tinh 37: Kién tric cia mit tinh todn trong hệ thẳng
‘Hinh 38: Man hình hiển thị lúc chạy chương trình
Hình 39: Eile dữ liệu của chương trình
Tỉnh 40: Thời gian zử'1y cña CPU khi thay đối số lắn lặp lại tính toán và độ đải máng (1)
Hình 41: Thời gìan xử lý cña CPU khi thay đổi số lần lặp lại tinh toan va 46 dai mang (2) - 83
11ỉnh 42: Thời gian xử lý của CPU-GPU khủ Lhay đổi độ dài màng xử lý và số lân lặp lại lĩnh toán
11ỉnh 45: Tỷ lệ gita thời gian xử lý của CPU và CPU-GPU khi thay đối độ dải màng và số lần lập
Hình 48; Tinh tong liên trước trên GPU - giai đoạm Ì
Tỉnh 49: Tính tổng, liên trước trên GPU — giai đoạn 2
Hình 50: Thuật toán sắp xếp đựa trên cơ số trên GP 106
Hình 5L: Thöi gìan sắp xếp mảng theo thuật toán sắp xếp đựa trên cơ số
1lình 52: Tỷ lệ thời gian xử lý CPL/GPL khi thay đổi độ dài mảng xử lý 110
Hình 53: Sơ đỏ FET 8 điểm phân chia theo thời gian ae T13
11
Trang 11Tinh 54: That gian tinh todn PFT trén CPU và CPU ŒPU với măng mật chiền có đệ dải là
Tăng, 2: Bảng tổng, hợp tốc độ tính roán của các mẫu giên máy tinh thai ki 1943-1969
Bảng 3: Bảng tổng hợp tốc độ tính toán cña các mẫu siêu máy tính thời ki 1968-1990
Bang 4: Bảng lông hợp lốc độ Linh tơán của các mâu siều máy tình thời kì 1995-xay
Bang 5: Thời gian thục hiện bài toán trén CPU voi d6 dai mang, va #6 Lan Lip lai tink toan thay đổi
Bảng 6: Hiệu thời gian xử lý của GPU trong hai lản chạy dầu tiên 95
Bảng 7: Thời gian thực thi bài toán trên CPU-GPU khi thay đổi 46 dai màng và số lẫn lấp lại tính
Bảng 8: 'Lỷ lệ giữa thời gian xử lý của CPU và GPU kiú hay đổi độ đài mảng và số lần lặp lại lính
Bang 9: J khi thay đổi kích cỡ khối và lưới ð khôi 99
‘Bang 19: Thời gian xử lý bài roán sắp xếp diva lrên cơ số khi thay đổi số phần tứ mảng đâu vào (1)
Trang 12Giới thiệu dé tai
CHƯƠNG 1: GIỚI THIỆU ĐÈ TÀI
hiển rõ nguyên nhân kiến trúc GPU được thiết kế có tính chất sơng song cao cấp
cũng như hướng, phát triển của kiến trúc GPU trong tương Jai gan
Nội dưng chính của để tải là nghiên cứu giải pháp thiết kế và đánh giả hiệu xăng siêu máy tính sử dụng CPU-GPU, một hệ thông, siêu máy tính đụa trên mô Tỉnh máy tính cụm Beowulf và tên dụng kiến trúc tỉnh toán không đồng nhất CPU- GPU nhằm đạt mục đích xây đụng một hệ thống siêu máy tinh có tỷ lệ hiệu năng trên chỉ phí hợp lý Đẻ tải đánh giá, so sánh hiệu năng của một hệ thẳng siên máy tinh sit dung kiến trúc CPU-GPU với một hệ thống sĩ
máy tỉnh tương dương chỉ
sử dụng CPU dựa trên một số thứ nghiệm đánh giá hiệu năng của một nút tính toán
sử dụng kiên trúc CPU-GPU trên các bài toán duoc tai rang lit xd ly lrên số nguyên đến xử lý trên số thực dâu phẩy đông từ bài toán có thuật toán dơn giản đến bai toán có thuật toán tương, đối phúc tạp
1.2 Phạm vi đối tượng của đề tài
Hiện nay, việc phát triển các hệ thống siêu máy tính ở Việt Nam vấn là chuyện
"xua nay hiểm” vì quy mồ, nguồn lực, trình độ công nghệ và chị phí để phát triển xnột hệ thông rửaư vậy là quá sức đôi với phần lớn đơn lễ các tổ chức, đơn vị ở ViệL Nam
Mục đích cuổi cùng của để tài này là xây dụng ra một hệ thống siêu máy tính khả dụng ở Việt Narn với chỉ phí hợp lý và đấm bão hiệu năng cho các lĩnh vực
nghiên cửu khoa học như nghiên cửu khí tượng, khoa học vật liệu và quần sự như
giải mã các bản tin tỉnh bảo, v.v Tuy nhiên việc thiết kế một hệ thống siêu máy
tỉnh bao gồm rất nhiều công đoạn từ thiết kế kiến trúc phần cứng đến kiến trúc
18
Trang 13Giới thiệu dé tai
mạng kết nói, các giao thức kết nói, hệ diều hành, các giao thức liên lạc trong tỉnh: toán song song, v.v cản nhiều nguồn lực và thời gian hơn nên để tải chỉ tập trưng,
vào mảng thiết kế kiên trúc phần cứng cơ bản tận đụng ưu điểm của mã hình máy
tinh cum Beowulf va kién tric tinh toàn CPU-GPU rồi đánh giả so sảnh hiệu năng, của hệ thống siêu máy tính sử đụng kiến trúc tỉnh toán CPU-GPL và một hệ thống siêu máy tính trong đương chỉ sử dụng CPU Đẻ tải thích hợp với những người cần thn hiểu về kiến trúc tính toàn CPU-GPL, tinh toàn đa dụng GPU! hoặc những,
người đang tìm hiến vẻ siêu máy tính hoặc đang có ý định xây đựng một hệ thẳng
giêu máy tính mã chưa biết rên bắt đâu tir dau
143 Ly do va mye dich chon dé tai
Những lợi ch của việc sở hữu một siều máy tính đổi với một trường đại học hay một quốc gia là không thê chốt cãi nhưng việc xảy dựng nên một hệ thủng siêu
„máy tỉnh lại quả phức tạp, tiêu tốn nhiều chị phí, thời gian và tải nguyén
Do vậy, việc xây dựng một hệ thống siêu may tinh đảm bảo tỷ lệ giữa hiệu năng,
và chỉ phí ở mưức chấp nhận được là rất quý giá đối với những tổ chức hoặc quốc gia
có nguồn chỉ phí đầu tư giới hạn cho dự án như chủng ta Hơn nữa việc sử dụng các
Thiết bị thương mại, tối thiểu hóa thiết bị tính toán song song chuyên đụng trong mô
hình tỉnh toán cụm dang chiếm xu thê trong giới công nghệ tính toán hiệu nẵng, cao,
Song song với xu hướng này, việc tỉnh toàn đa dụng trên OPU cũng đang trở nên dé dang hom vi cdc giao điện lập trình cho GPU ngày cảng được phát triển cho mục
đích tỉnh toán đa dụng Nhận thấy việc kết hợp lrai xu thế đang phố biến do sé tac xiên một hệ thống siêu máy tỉnh hứa hen đem lại hiệu năng cao mà vẫn giữ chỉ phí dau tu & mức phủ hợp nên tôi đã lựa chọn để tải “Giải pháp thiết kế và đánh giá hiệu nỗng siêu máy tỉnh sử dụng kiểu trúe CPU-GPU” Tôi bi vợng những kiến thúc
và kết quả thi nghiệm cũng những đánh giá trong để tài của tôi sẽ làm tiên để giúp
cho những người quan tâm nhận thấy được việc xây dụng một hệ [hông siêu máy tính là hoàn toàn cẩn thiết và khả thị đối với người Việt Nam chúng ta
14
Trang 14Téng quan kién tric GPU
GPU la bộ vi xử lý chuyên dụng song song cao cấp đề giảm tải và tăng tốc cho
việc tái tạo lại không gian 2D, 3D cho đơn vị xử lý trung tâm (CPU) GPU được triển khai ở nhiều thiết bị khác nhau từ máy tính bản tới laptop, điện thoại di đông cho đền các siêu máy tỉnh
Kien trúc GPU đã phát triển nhanh trong những năm gan đây, một phan do yêu câu về xử lý đỗ họa ngày cảng cao Nhu câu về việc xử lý đỏ họa của các trỏ chơi ở
Kiến trúc GPU đã thay đổi rất nhiều, đầu tiên chỉ gồm một nhân duy nhất với
các bộ phận cỏ định chức năng theo theo dạng đường ống dẫn (Graphics Pipeline) được thiết kẻ riêng cho việc xử lý đồ họa cho đến kiến trúc hiện nay gồm một tập các nhân song song cao cấp hồ trợ lập trình do đó trở nên thích hợp hơn cho mục dich tinh toán đa dụng Công nghệ của GPU sé phat trien theo hướng tiếp tục tích
hợp thêm các nhân song song cao cấp lập trình được vào kiến trúc Hướng phát triển
15
Trang 15‘Tong quan kién tnic GPU
nay da lam ranh giỏi về vai trò giữa CPU và GPU trở nên mờ nhạt hơn, giúp cho GPU hướng vẻ mục địch tính toán hơn, gân với vai trò của CPU hơn
21 Lich si GPU
GPU nguyên thủy dựa trên mô hình đường ông dân đỏ họa Đường ông dân đỏ
họa lả một mô hình khái niệm các tằng/lớp mả dữ liêu đồ họa đi qua và thường triển khai dựa trên sự kết hợp giữa phâm mềm CPU (OpenGL, DirectX) vả phần cứng
GPU (nhân GPU) Cách tiếp cận dựa trên thiết kế mô hình đường ông dẫn đỏ hoa
này tương đổi đồng bộ giữa phân lớn các nhà sản xuất GPU như NVIDIA, ATI,
v.v và giúp đây nhanh sự thừa nhận công nghệ GPU
Đường ống dần chỉ đơn giản nhằm mục đích chuyển không gian 3D (được tạo
ra bởi người lập trình) vào không gian 2D trên màn ảnh Vẻ mặt cơ bản nó là dòng,
tải tạo rất nhiều giai đoạn của các hoạt động lên các pixel, tam giác và có thẻ được
phân loại thành 2 giai đoạn chính: hình học và tái tạo ảnh Chi tiết về đường ông, dân đỗ họa sẽ được trình bảy ở mục 2.2.1
T&L evolved to vertex shading
Triangle, point, line ~ setup
Flat shading, texturing, eventually Pixel shading
Blending, Z-butforing, antialiasing
Wider and faster over the years
Hình 2: Đường ống dẫn đồ họa cố định chức năng cổ điển
16
Trang 16Tổng quan kiên trúc GPƯ
Cac GPU doi đầu thường chỉ triển khai giai doạn tái tạo ảnh ở phản cửng của GPL và do đó CPU phái tạo ra các tam giác hình học để GPU lim việc trên đỏ Với
việc phát triển trong công nghệ GPU, các giai đoạn ngày càng được triển khai trực
tiếp trên phần cứng cia GPU từ dó giải phỏng tài nguyễn của CPU
2.L1 1980
Quay trõ về những năm 1980, GPU 6 thai dim đó chí là những bộ dệm tích hop Ching chi là những bang mach logic TTL đựa trèn CPU và chỉ có thể vẽ các khung đây để tái tạo kết cầu [7] Thuật ngữ “GPU” chưa được sử dụng cho đến năm
1999 bởi NVIDIA nhưng dễ đảm bảo tỉnh dẳng bộ của bài viết nên từ GPU sẽ dược
sử đựng xuyên suốt bài viết
Bộ điều khiển đồ họa chuyên nghiệp TBM (PGA) là môi trong những cạc đỗ
sử dụng chịp Intel 8088 tích hợp trên bo mạch chữ để xử lý toàn bộ các yêu câu liên quan đến hinh ảnh, giải phóng CPU khỏi việc
họa 2/3D dầu tién cho PC PU:
xử lý hảnh ảnh (ví dụ như việc vẽ và 16 máu cho các da giác) |7] Vì thời diễm ra đời vào năm 1984, mười năm trước khi các thiết bị tăng tốc xứ lý 2D/3D được chuân
hoa và với cái giá không hề rẻ 55008 củng với sự hạn chẻ trong tương thích với các
hệ thông ngoài IBM vào thời điểm dó đã dẫn dễn một kết quả tất yêu là PGA không,
thê đạt được thành công trong việc chiếm lĩnh thị trường Tuy nhiên sự ra đời của
PGA da đánh đâu một bước tiền lớn trong công nghệ phát triển GPU khi việc xử lý
để họa lần đâu được lách ra xử lý trên một đơn vị xử lý riêng,
Vào năm 1987, các GPU đời đầu được tích hợp thêm các chức năng mới như khải đỗ bóng, anh sang đỉnh, tái tạo kết câu cho các đa giác và bộ đệm chiểu sâu ixol và trộn máu Tuy nhiên vẫn còn nhiều tác vụ tỉnh Ioán được chịa số với CPU, Vào cuỗi thập niên 1980, Công ty đồ họa Silicon (SGI) được thành lập với tư cách một công ly phần mềm và phần cứng đỗ họa máy tính hiệu suất cáo SGI giới thiệu OpenGL vao 1989, va tir đó dược biết dến như một giao điện lập trình ứng, dụng 2D/3D không phụ thuộc vảo nén táng phản cùng, được sứ dạng vá hễ trợ nhiều nhật trong nền công nghiệp đỗ họa Việc hỗ trợ OpcnGI, trở thành vấn đề rắc
17
Trang 17‘Téng quan kién tric GPU
rồi nhật trong việc thiết kế một phản cứng đỏ họa hiện đại Dong thời SGI cing 1a người tiên phong trong việc đưa ra khải niệm đường ông dẫn đỏ họa
2.12 Thếhệ0
Phần cứng GPU và đường ông dân đỏ họa bắt đâu hình thành vào năm 1993 khi
SGI tung ra bảng mạch RealityEngine cho việc xử lý đồ họa RealityEngime bao
gồm các bang mach va cae chip logic khác nhau cho các giai đoạn khác nhau trong
đường ống dẫn đỏ họa nhưng nửa đâu của đường dân vẫn là công việc của CPU Dữ liệu đi chuyên trong đường ong dẫn cỏ luông cô định qua các trạng thái
Giữa những năm 1990, cac SGI được triển khai chủ yêu trên các máy trạm,
trong khi đó các nhà sản suất thiết bị đồ họa 3D nhur 3DFX (Voodoo), NVIDIA (TNT), ATI (Rage) va Matrox da bat dau cung cấp cho người tiêu dùng các bảng
mạch đỏ họa 3D Sự kết hợp giữa phản cứng rẻ hơn và các game như Quake vả
Doom đã thúc đây ngảnh công nghiệp game vả sự thừa nhan GPU
Trang 18‘Tong quan kién tnic GPU
Kể cả với những đường ông dan đỏ họa tót nhất ở thời diém dé thi cac GPU đời
đầu chỉ có thể tạo ra một pixel một chu kỉ đồng hỏ, điệu đó cỏ nghĩa là CPU co the
gửi nhiều tam giác tới GPU hơn khả năng xử lý của GPU Điều đỏ đã dẫn đến nhu cau tạo ra nhiều đường dân song song toi GPU (va cuỗi cùng là thêm nhân trong
kiến trủe GPU) để nhiêu pixel có thể củng được xử song song trong một chu kì
đồng hỏ
2.13 Thếhệ1
Voodoo 3dfx là cạc đỏ họa 3D thật sự đầu tiên và nó chỉ tăng tốc xử lý 3D do
đỏ bạn vẫn cần một bộ tăng tốc xử lý 2D Cạc hoạt động trên đường bus PCI, cé 1 triệu bán dẫn, 4 MB DRAM 64 bit, xung đồng hỏ hoạt động 6 tan s6 50 MHz, CPU
van phải xử lý chuyên hóa đỉnh, trong khi đó Voodoo sẽ thực hiện việc tạo bản đỏ ket cau, z-buffering va viée tái tạo kết cầu [7]
2.14 The hé2
Trong năm 1999, véi viée gidi thigu NVIDIA Geford 256 va ATI Radeon 7500, giới tiêu dùng lần đầu tiên được sử dụng các GPU đúng nghĩa, cho phép triển khai toàn bộ đường ống dân đỏ họa ở phản cứng của GPU được phát hành
Hình 4: Việc chuyển dần các chức năng trên đường ống dẫn dé hoa cho
GPU
19
Trang 19Tổng quan kiên trúc GPƯ
Cho dến tận năm 1999, thuật ngữ GPU vẫn chưa thực sự tỏn tại và NVIDIA đã
sáng tạo ra thuật ngữ này khi cho ra đời mẫu Geford 256 Geford 256 có 23 triệu
ban din 32 MB DRAM 198 bit, xung déng hề ở tần số 120MHZz và có 4 đường,
dan 64 bit de tai tao kết cau [7]
Thể hệ cac này là thẻ hệ đầu tiên sứ đụng cống tăng tắc dé hoa (AGP) thay cho
‘bus PCI và cung cấp thêm các chức nắng mới như bản dé bump, ban dé anh sang va
chuyễn đổi hình học ở phân cứng và xử lý ánh sáng,
Đường éng din dé hea dẫu tiên trong phần cửng dược biết dến như dưỡng ống, Gin cố định chức năng vì một khi người lập trình gửi dữ liệu để họa tới đường dẫn
GPU thi dữ hiệu không thể chỉnh sửa
Vai nhĩữmg, chiếc cạc này, thị trường phan cong GPU va tra chơi may tinh thực
sự được khai phá, Trong khi tốc đỏ được cải thiện nhưng vẫn đề chính lại nằm ở việc có định chức năng ở mô hình duong ống dẫn đỗ họa tạo nên sự thiểu linh động, trong các hiện ứng đồ họa Vì bộ các chức năng được định nghĩa bởi giao điện lập trình ứng dụng OpcnGT, và DwceUX được triển khai ở phần cứng, do đó khi các chức năng mới được thém vào giao điện lập trình ứng đụng đỏ họa thi các phan
cứng cổ định chức năng sẽ không thể tận dụng được các ru điểm của các chức nắng,
tới
2.15 Théhé3
Vào năm 2001, NVIDIA phát hành GeForce 3 cho phép Jip trinh viên có thể lập trình được những giai đoạn ở đường ống din dé họa mà trước đây chưa hỗ trợ, đánh cấu bước phát triển tiếp theo trong công nghệ GPU Thay vì việc gứi tất cả dữ liệu,
mé6 14 dé hoa cho GPU và đơn giản cho nó đi qua các đường dẫn có định thì nay lập
trình viên có thể gửi đữ liệu này cùng với các “phân mềm ngắm” (gợi là shader) dé
hoạt dộng trên dữ liệu trong dường dẫn
20
Trang 20‘Tong quan kién tnic GPU
Các phần mềm nảy có thể gọi là các nhân nhé (kernel), duoc viet trén cac ngôn
ngữ tương tự như ngôn ngữ assembly Đây là một cải tiền mới nên chỉ có thẻ lập
trình giới hạn ở giai đoạn xử lỷ đình của đường ống dẫn Các cạc đỏ họa khác thịnh hành ở thời điểm này là ATI Radeon 8500 vả Mierosoft Xbox
GeForce3/DX8 Pixel Shading Pipeline
Hinh 5: Kiến trúc của card GeForce 3
GeFord 3 có 57 triệu bản dân, 64 MB DDR DRAM 128 bịt và có xung đồng hd
là 120MHz [7]
2.1.6 Thếhệ4
Một năm sau đó, năm 2002, cạc đỏ họa đầu tiên hồ trợ lập trình toàn phân được tung ra thị trường: NVIDIA Geforce FX, ATI Radeon 9700, Cac nay cho phép xit ly
từng pixel với các đồ bóng dinh va pixel (phan mảnh) hồ trợ lập trình và cho phép
một lượng ảnh xạ giữa dữ liệu đầu vào và đầu ra nhất định được định nghĩa bởi
người sử dụng Ngoải ra, phân cửng chuyên biệt cũng được gản cho việc đỗ bóng
dinh va pixel
Cac dé hoa GeForce FX c6 80 triéu ban dan, 128 MB DDR DRAM 128 bit va
xung déng hé 400MHz [7] Nam 2003, con song tinh toan trén nén GPU dau tiên
được hình thành với việc giới thiêu DirectX 9, bằng cach tan dung khả năng lập
trinh được của phần cứng GPU nhưng cho dữ liêu không phải đồ họa Việc hồ trợ
21
Trang 21‘Tong quan kién tnic GPU
phép toan dau phay động vả xử lý kết cầu cấp cao bắt đầu được cung cấp ở các cạc
đồ họa ở thời điểm này
Ở thời điểm này, tốc độ phát triển công nghệ GPU tăng mạnh, vượt hẳn so với quy luật của Moore [7] Năm 2004, cạc GeForce 6 và Radeon X800 được phát hành
và là một trong những cạc đầu tiên sử dụng đường bus PCI-express Vẻ mat phan
mềm, các ngôn ngữ GPU như Brook va Sh bắt đầu xuất hiện, cho phép thực sự điều
khiển được các nhánh điều kiện và vòng lặp và dong động ở các img dụng đỏ bóng
Về mặt phần cửng, độ chính xác cũng được nâng cao (hỗ trợ độ chính xác kép 64 bit), bo đệm kết xuất đồ họa, kích thước bộ nhở GPU được tăng thêm vả truy nhập
Hình 6: Kiến trúc cac GeForce 6
Chiếc cạc GeForce 6 đầu tiên có 146 triệu ban dan, 256 MB GDDR3 DRAM
256 bịt, và xung đồng ho SOOMHz [7]
2
Trang 22Tổng quan kiên trúc GPƯ
Khi nhìn GPU theo kiên trúc một dường ống din dỗ họa thì GPU bao gồm: một engine đính, một engine phân manh, engine két cau, engine ghi-tr6n dit ligu, so sảnh
đữ liệu Khi nhìn GPU như một bộ xử lý cho các ứng dụng không về đổ họa thì GPU có thể được coi là một động cơ có mã lực lớn trong việc xử lý các phép toán đấu phẩy động lập trình được và độ rộng băng nhớ có thể được tận dụng cho các tứng dung tính toán phúc tạp hoàn toàn không liên quan đến dé hoa may tinh Tit dé
xu hưởng, tỉnh toán trên GPU bắt đầu được nhẹn nhóm
2.18 Thêhệ6
Việc giới thigu seri NVIDIA GeForce 8 vào năm 2006 đánh đâu bước tiếp theo trong sự phát triển của GPU: md ra vai rò mới của GPU như một bộ xử lý song song dé sé
Kién trúc G80 (GeForce 8800) 18 kién ric dau tiéu cd c:
hương trình shađer
hỗ trợ lập trinh, hợp nhất tức lả một bộ xứ lý hợp hỗ trợ lập trinh gọi là Streaming, Multiprocessor - Lõi đỏng đa nhân hoặc SM, có thế giải quyết việc tính toán đỉnh, pixel và hình học, đẳng thời cũng tích hợp sharler hình học mới, khả năng hỗ trợ lập trình được mỏ rộng khi kết hợp shađer đỉnh và shader pixel Với thiết kế phản cứng
shader hợp nhật, mỏ hình đường ông dẫn để họa nay thuận tủy nay chỉ còn là một
cách nhìn phần mễm trizu tượng
Cục GeForce 8 du lién có 681 triệu bán dẫn, 768 MB GDDR3 DRAM 384 bị!
và xung dồng hỗ 600MHz |7|
Đá khai thác tật cä sức mạnh cho việc tính toán đa dụng của GPU, NVIDIA
từng ra ngôn ngữ lập trình CUDA cho riêng sản phẩm của NVIDLA Không lâu sau, ngôn ngữ ATI Stream cho card ATI và DirecfX 10 cho cã 2 loại cạo cũng được giới
thiệu
23
Trang 23‘Téng quan kién tnic GPU
Theo xu hướng đồng hóa với CPU, các nhân GPU lập trình được với sự phát
hành kiến trúc Fermi của NVIDIA Được giới thiệu vào cuối năm 2009, và được phát hành vào đâu năm 2010, GPU Fermi được coi là chiẻc GPU đầu tiên được thiết
kế cho nhu cau tinh toan GPGPU, đem đến các chức năng mới như: phân cấp bộ đệm thực sự, khoảng địa chỉ bộ nhớ thông nhất, việc thực thi các kernel đồng thời,
hiệu suất thực hiện các phép toán cỏ độ chính xác kép tốt hơn vả bộ sắp xếp cuộn
đôi Fermi GTX480 c6 téng công 480 nhan CUDA (15 ludng đa xử lý dòng x 32
nhân CUDA mỗi dòng) [25]
24
Trang 24'Tổng quan kién tric GPU
Gần đây, vào cuối năm 2010, NVIDIA phát hành cạc đồ họa cho game thủ trên
nén Fermi, GTX 580, thêm một nhân SM (tổng cộng số nhân CUDA tăng lên 512)
và mở rộng băng thông bộ nhở thêm một chút [7]
Công cuộc phát triển GPU đã đi từ một thiết bị phản cứng có định chức năng,
đơn nhân và dựa trên mô hình đường ông dân đỏ họa và dành riêng cho mục đích
xử lý đô họa nay đã trở thảnh một tập các nhân song song cấp cao lập trình được cho các mục đích tỉnh toán chung Hiện nay, kiến trúc đa nhân của GPU có rất
nhiều điểm tương đồng với các CPU cho mục địch tỉnh toán chung Fermi cỏ thể coi
như một CPU 16 lõi với 32 siêu đường dân môi nhân với độ dài của một vector lớn
25
Trang 25‘Tong quan kién tnic GPU
Gan day, AMD céng b6 dong Fusion ctia CPU+GPU trén củng 1 khuôn mạch (APU lỏng, đơn vị tăng tốc xử lý), được phát hành vào năm 2011 APU của AMD
được thiết kế đẻ một bộ xử lý x86 chuẩn cho việc tính toán vô hướng và DXI1 GPU
cho việc tính toán vector được đặt chung trên 1 khuôn mạch [3]
Hình 9: Kiến trúc của AMD Fusion
Bô xử lý Larrabee của Intel cũng mang đến nhiều nhân x86 nhỏ hơn trên cùng
một khuôn đơn CPU Intel SandyBridge cũng tích hợp một GPU và cùng chia sẻ bộ
nhớ đệm L3 [35]
Với sự phát triển mạnh mẽ trong kiến trủc GPU như vậy làm day lên câu hỏi: nếu việc tích hợp CPU-GPU là xu hướng, vay thì loại thiết bị cô định chức năng trên GPU cỏ tôn tại nữa không? Cỏ can có sự phân biệt giữa CPU và GPU nữa
không? Các ngôn ngữ lập trình tương lai cỏ khả năng trừu tượng hóa GPU như bộ
xử lý đa nhân cho các ứng dụng không?
22 Kién trac GPU
GPU luôn luôn là một bộ xử lý dư thừa tài nguyên tính toán Tuy nhiên phải
den gan đây việc giúp cho các lập trình viên có thẻ tận dụng được khả năng tính toán đó mới được chủ ý Trong một thời gian ngắn, GPU da phat trién tir mot thiet
26
Trang 26‘Tong quan kién tnic GPU
bị phần cứng với bộ phận cỏ chức năng có định, bỏ xử lý chuyên dụng cho xử lý đỏ
họa tới bộ xử lý song song, đầy đủ tính năng độc lập cộng với việc bỏ sung thêm các chức năng cổ định hồ trợ lập trinh, và các chức năng chuyên biệt Các khía cạnh
về khả năng hồ trợ lập trình của bộ xử lý đang chiếm vị trí trung tâm hơn bao giờ hết
2.2.1 Đường ống dẫn đồ hoa (Graphics Pipeline)
Công việc của bắt kì một hệ thông đỏ họa 3D mảo là tổng hợp ra một hình ảnh
từ mô tả của một khung cảnh 60 lần một giảy cho các ứng dụng đồ hoa thời gian
thực vi dụ như video game Khung cảnh sẽ được phân tích thảnh các hình học
nguyên thủy cũng như mô tả sự chiều sáng của ánh sáng trong khung cảnh, cách ma
từng vat thé phan xa lai anh sáng như thé nao và vị trí và hướng của người nhìn
Các nhà thiết kế
GPU thường trừu tượng hóa công đoạn tổng hợp hình ảnh nay thành một đường éng dan phan cứng với các giai đoạn chuyên biệt Các thế hệ GPU mới tuy đã trải qua nhiều sự cải tiên nhưng chúng vẫn tuân theo kiến trúc đường ông dần đỏ họa được công bỏ vào cuồi năm 1980 bởi công ty Silicon Graphics (hiện
tại là SGI nhưng không còn hoạt động trong mảng đồ họa 3D) Hinh vẽ dưới đây
mô tả kiến trủc đường ống dẫn đổ họa kinh điển ở mức độ tổng quan
Trang 27Tổng quan kiên trúc GPƯ
Dữ liệu dầu vào
Dữ liệu gốc của GPU lả các tam giác Mặc dù với sự phát triển của công nghệ
phân củng hiện tại, GPU đã hỗ trợ xử lý đữ liệu đầu vào đường ảng dẫn đồ họa là
các khối, các bẻ mật tuy nhiên tam giác vẫn là thành phần phố biển nhất Do do việc đầu tiên là phải cắt các hình học phức tạp thành các tam giác (Vi đụ như từ các đa giác hoặc các hình cỏ bể mặt cong ) Những nhà phát triển sử dụng thư viện đồ họa máy tính (vị dụ như OpenGl, hoặc 1)wect3I)) để cung, cắp từng tam giác tới
đường, ống dan dé họa qua cáo tọa độ đính, GPU sẽ sử dụng các tọa độ này để tái
tạo lại san giác khi cần Mô linh mạng lưới tam giác đặc trưng bởi: tọa độ các định, véc tơ pháp tuyến vả đôi khi là cã tọa độ bể mặt Các ma trân bậc 4 được sử đụng dễ
chuyến hóa các tọa độ đỉnh đẳng nhật từ không gian vật thế sang không gian mản
tỉnh và để thể hiện cảnh vật theo luật phối cảnh Vật liệu và ảnh sáng sẽ được xác
GPU có thể xác định bắt kỉ một vật thể logic nảo trong một khung cảnh bằng hệ
thống tọa độ cục bộ của nó, cơ chế chuyển đổi toa độ rất thuận tiện với các vậi thể
đã được định nghĩa phản cấp một cách tự nhiên Sự tiện lợi này tất nhiên phải trả
giả bằng công đoạn chuyến hóa tắt cả các vật thế vào hệ thông tọa độ của GPU Để
đâm bão các lam giác không bị gói hay cuộn trơng các bể mặt song rên việc chuyển hóa này chỉ giới hạn ở các hành động đơn giản như quay, địch hoặc tương ty Bang cách tọa độ hóa các đỉnh của các tam giác trong một hệ tọa độ đồng nhất, GPU có thể thực hiện loàn bộ các giai đoạn chuyển hóa một cách đông thời chỉ với một phép
hân ma trận Nhu câu tối tru phân cứng đề thực hiện các tính toán véc tơ đầu phdy
động cho hàng triệu đỉnh ruột giây chính là nguyên nhân tạo đến cuộc cach mang vé tỉnh toán song song GPU mả kết quả của nó đang được chúng ta thừa hưởng biện
nay
28
Trang 28Tổng quan kiên trúc GPƯ
Cat
Sau quả trinh chuyển hóa từ không gian 3D sang ^D, một số tam giác có thể bị
tràn ra ngoài khumg màn hình da đó công đoạn này được khiên khai đề cắt bớt các
tam giác bằng cách loại bé phan ở ngoài khung mân hình đồng thời trong quá trình cắt cũng tạo ra các tam giác và các đa giác khảo tam giác đẻ chuẩn bị cho bước chiết xuất cuổi củng,
hối tạo các Lam giác
Dé chuan bị cho bước cuối cùng, các tam giác được chia ra thành các đoạn có
độ rộng một pixel, goi là gang Tọa độ hai điểm đầu cuối của một gang là kết quả của phép nội suy giữa các dùnh của tam giác,
'Tái tạo điểm ảnh (Bitmap hỏa — Rasterization)
Tả công đoạn chuyển thể các hình khối Lừ dựng véc lơ sang dang điểm ảnh, xác dịnh những vị trí điểm anh nao trong không gian màn bình được bao chứa bỡi mỗi
tam giác Mỗi tam giác tạo ra một hình học nguyên thủy được gọi là “mảnh” tại các
vị trí điểm ảnh trong khong giant man hink ma nd bao chứa Và đo nhiều lam giáp có thể chẳng lên nhau tại một vị trị điểm ảnh bết kỳ nên giả trị máu của mỗi điểm ảnh
có thế được tính từ nhiều mảnh Các nhà phát triển GPU đã hợp nhất nhiều thuật
toán tải tạo diễm ảnh lại với nhau nhằm có thẻ thu dược một kết quả quan trọng:
từng điểm ánh có thể được xử lý độc lập với tất cả các điểm anh khác Do đỏ máy
tinh có thế tính toán tắt cá các pixel song song thậm chí một vai máy tính còn có
riêng uột bố xử lý cho từng pixel Sự độc lập thông nhất này từ gia đoạn chuyển hóa đến tái tạo điểm ảnh thôi thúc các nhà phát triển GPU xây dựng cáo bộ đường
dng din 44 hoa song song
lại trong khung hình
Khi một vật được đựng lại thì chiều sâu của pixel (toa độ trục z) được lưu trữ ở trong bộ đêm Z Bộ đêm thường hm giá Irị mắng lưú chiếu (x-y) với mỗi một pixe
29
Trang 29'Tổng quan kién tric GPU
sẽ có một giả trị tương ứng Nêu một vật thể khác trong khung cảnh dựng lại cũng ở
vị trí pixel do thi sé so sánh chiêu sâu hiện tại của pixel đó đang được lưu ở bộ đệm
Nếu vật thể đỏ ở gân người xem hơn (vị trí quan sát khung cảnh) thì giá trị chiều
sâu mới sẽ được cập nhật vào bộ đệm
Bộ đệm đôi
Ngoài ra có một bộ đệm khung đề lưu trữ dữ liệu của pixel Dữ liệu một pixel lưu trữ ở bộ đệm này gồm gia tri mau RGB va gia trị alpha (A) được sử dụng đề hỗ trợ các tính năng mặt nạ trong suốt và mặt nạ bóng trong các trường hợp cản kết
hợp nhiều bức ảnh lại với nhau Để đảm bảo man hình có thẻ hiển thị trong khi một bức ảnh được dựng lại kẻ cả trong trường hợp thời gian đẻ dựng lại một khung hinh
lau hơn tốc độ làm tươi của màn hình (thông thường là 60H2) khi đó bộ nhớ đệm đôi được sử dụng
Trước đây, công đoạn dựng lại khung hình và gửi khung hình tới mản hình
được GPU thực hiện một cách song song Còn đổi với bộ đệm đôi GPU chỉ tập
trung vào việc dựng lại khung bình (lạm gọi là “sau”) và gửi đi thông tin về khủng
hình “trước” cho màn hình do đỏ trảnh được việc dựng vả gửi dữ liệu của củng một
khung hình trong một thời điểm Trong khi khung hình RBGA “trước” đang được
30
Trang 30Tổng quan kiên trúc GPƯ
hiển thị và khung hình “sau” dược dựng xong và GPU gửi khung hình “sau” đến man hinh, hai khung hình này được trảo đổi với nhau, khung hình ”sau” thành
+khumg hình “trước” được hiến thị lên mản hình và khung hình “sau” bị xóa đi và
chờ GPU dựng tiếp khung hình “sau” tiếp theo
Tiệ nhở kết cầu:
Màu của mỗi pixel được quyết định trực tiếp bới các tính toán về ánh sáng tuy nhiên để thêm phân thực tế, các hình ảnh gọi lá kết cầu (vân) được xếp lên bề mặt
của các hình khôi để tạo cảm giác về sự chỉ tiệt GPU hm các kết câu nảy vào một
tbộ nhớ tốc độ cao, từng lính toán mau cho pixel déu phải truy cập vào để xác định hoặc sửa đổi màu của prcclL
Trên thực tả, cá nhiêu kết nói tới bộ nhớ kết cau cho một pixel dé giam thiếu
hiện tượng “giả” khí kết cầu hiển tụ trên màn hình nhỏ hen hoặc lớn hơn so với đỗ phân giải thực tế gúa nó Vì tẫn suất truy suât bộ nhớ kết cầu rất thường xuyên (các 'tpixel liên kể có xu hướng truy cập kết cấu của các pixel liên kẻ) nên bộ nhớ kết cầu
có thiết kế bộ nhớ đêm chuyên dung dé gop phan che dau độ trễ truy cập bộ nhỏ Bộ nhở đệm cục bộ thường được chia sẻ giữa các bộ nhớ khung hình (RGBA va Z) va
bộ nhớ kết câu nhưng phần lén bộ nhớ được sử đụng cho bộ nhớ kết câu
Anh sang
Một khi tam giác đã được xác định trong hệ tọa độ của hệ thống, GPL có thể tính toán màu sắc của nó đựa trên ánh sáng của khưng cảnh GPU sẽ xử lý bằng cách cộng đến tất cả ảnh sứng từ cáo nguân sảng kháo ritau,
Quan hệ giữa GPU và đường ống dẫn đỗ họa
Cac mau GPU khac nhau ảnh xạ các chức năng của đường ống dan dé họa vào phần cứng theo các cách khác nhau Các GPU dời đầu có các đơn vị phần cứng,
chuyên dựng đề thực hiện từng giai đoạn của đường ống đẫn đổ họa Một vải các
giai đoạn không lập trình được vì chúng là các chức nắng cố định gắn cứng vào phân cứng Các GPU mới chỉ có một loại bộ xử lý đẻ thực hiện hầu hết các giai đoạn cứa đường ống dẫn dé hoa, NVIDIA Gel’orce 8800 thuéc loai GPU nay, no str dụng nhiều hộ xử lý đồng nhái, mỗi bộ xử lý lại bao gdm một vải đơn vị tỉnh toán
31
Trang 31‘Tong quan kiĩn tnic GPU
độc lập hoặc thậm chỉ vải bộ xử lý SIMD Khi đỏ vải trạng thâi của đường ông dan
đỗ hoa nhu tai tao anh, shader dinh vă shader pixel được thực hiện bởi củng một
loại bộ xử lý
[EêØ@Sf[ sa, _S/atemMeney |
2.2.2 Tiến hóa của kiến trúc GPU
GPU da phat triĩn tir trang thai triển khai cổ định đường ống dẫn đỏ họa ở phản cứng tới trạng thải lă một hệ thống tính toản hồ trợ lập trình vă có khả năng triển
khai đường ổng dđn đỏ họa trín nó Câc đơn vị có định chức năng đẻ chuyín hóa
đỉnh vă kết cđu pixel được gộp lai bang hĩ thông bỏ xử lý đồng nhất hoặc câc shader lă câc đoạn chương trình cỏ thẻ thực hiện câc chức năng năy vă hơn thế nữa Cuộc câch mạng năy đê được tiền hảnh trín văi thẻ hệ GPU bang câch thay thĩ dan dần câc trạng thải của đường ông dđn đồ họa bằng số lượng tăng dần câc đơn vị hỗ trợ lập trình
Vị dụ NVIDIA GeForce 3 được công bồ văo thang 2 năm 2011 vả lần đầu tiín
shader đỉnh hỗ trợ tính năng lập trình [9] Những shader nảy cung cấp câc đơn vị
32
Trang 32Tổng quan kiên trúc GPƯ
tỉnh toán cho lập trình viên có thể sử đụng cho việc nhân các ma trận vée tơ, các tính toán hàm mũ và căn bậc hai cũng như các chương trình nhó mặc định đề sứ
đụng các đơn vị này thực hiện các chức năng chuyển hóa đỉnh và ánh sáng
Ngoài ra GeForce 3 cũng cỏ một sự cải tiên khác do la kha nang tùy chính cỏ giới hạn ở giai đoạn xử lý pEel, thể hiện chúc năng kết cầu trước đây mặc định cho phân cứng dưới đạng một tả hợp các thanh ghi với lập trình viên Các thê hệ GPU tiếp theo cảng ngảy cảng có khá năng lĩnh động tăng dân, hỗ trợ các đoạn chương, trinh dài hơn, nhiều thanh ghỉ hơn và điều khiển huệng hình học nguyên thủy như nhánh, vòng Tập và chương tình cơn
ATI Radeon 9700 (thang 6/2002) va NVIDIA GeForce FX (thang 1/2003) déu thay thể tổ hợp cáo thanh ghi bắt tiện bằng các shader pixel lp trình được hoàn toàn [9] Chip GeForce 8800 (tháng 11/2006) cập nhật thêm khả năng lập bình được vào trạng, thái tải tạo hình học nguyên thủy cho phép lập trinh viên có thể diéu chinh cách GPU tạo ra các tam giác từ các véc tơ đã được chuyển hóa
'Việu cải thiện về dộ chính xác trong các GPU cũng góp phần tăng tỉnh lập trình: Đường ống đến đỗ họa cổ điển chỉ hỗ trợ số nguyên 8 bịt cho các kênh máu do đỏ giá trị màu chỉ trải từ Ø tới 255 Chip ATI Radeon 9700 da tang dãi màu hiển thị lên
24 bit dau phay dong va NVIDIA GeForce FX efng bén gót với cả hai chế độ 16 bịt
và 32 bịt dầu phẩy déng [20] 1ién nay GPU cla ATI va NVIDLA déu đã hỗ trợ dấu,
'phây động cé d6 chinh xac kép 64 bit
Đông thời để thỏa mau nhu cau vỀ hiệu nẵng, GPU ngày cảng có thiết kế lận dụng triệt dé tinh song song Thời kì đâu, GPU da sit dung các thanh ghí có độ rộng
4 vée to va theo thời gian số lượng các thanh ghi tăng dân từ 4 6 GeForce FX dén
16 6 GeForce 6800 (thing 4/2004) dén 24 & GeForce 7800 (thang 3/2005) [20] GeForce 8800 có đền 128 bộ xử lý shader có hướng chạy ở xung shader đặc biệt gấp 2,5 lần xung đông hỗ bình thường (lương ứng với lóc độ pixel đầu ra) cho một chịp tiêu chuẩn, do đó hiểu năng tính toán tương ứng voi 128 x2.5/4-80 shader pixel 06 d6 réng 4 véc tơ [20]
3
Trang 33Tổng quan kiên trúc GPƯ
ước cuối cùng trong cuộc cách mạng chuyển hóa dường ống din dé hoa tir phan cửng sang một kết cấu tính toán linh động là sự giới thiệu shadar hợp nhất
Shader hop nhát lần đầu tiên xuất hiện ở chip ATT Xenos cho máy chơi game Xbox
360 và NVLDIA cũng triển khai shader hợp nhất ở chíp ŒeForce #800 cho may tinh
cả nhân,
Ở các thể hệ GPU trước shader đỉnh, shader pixel và shader hinh học là các don
vị riêng rẽ còn kiến trúc shader hop nhất cung cập một đơn vị tập các bộ xử lý dấu
phây động song song đữ liệu đủ tính chất “chung chung” đề xử lý hết toàn bộ cảng
việc của các shader trên Các đữ liệu đình, tan giác và pixel sẽ được luu thông, trong tập các bộ xử lý của shader hợp nhất thay vi phải chạy qua các tầng od dinh
độ rộng của đường ống dẫn dé hoa
Sự cãi tiến này đem đến kết quả tốt hơn trên hiệu suất sử dụng phần cứng Lông, thé vi nhu cau cho các shader khác nhau có biên độ thay déi trong đổi lớn giữa các từng dụng thậm chỉ ngay trong một khung hình của một ứng đụng Ví dụ một video game khi bắt dầu xử lý một hình ảnh, GPU phải sử dụng một lượng lớn tam giác dé
vẽ bầu trời và cảnh vật ở xa vả công đoạn này nhanh chỏng chiếm phản lớn tải
nguyên của shader pixel trong má hình đường ống dẫn đỏ họa có điển trong khi đó
sbador đinh “rảnh rồi” Một muligiay sau, game lại chuyền sang xử lý các hùnh học
có độ chỉ tiết cao đề vẽ các nhân vật và vật thể phức tạp Lúc này shader đính lại hoạt động với khôi lượng công việc lớn và shađer pixel lại ở trạng thái “rành rỗi”
Sự thay đổi đến chóng mặt về nhụ cầu tài rguyên tay trong cùng một khimg, cảnh là một cơn ác mộng với vận để cân bằng tải cho những nhà thiết kẻ game và cững thay đối không lường trước được dua vao vi tri quan sát của người chơi và sự thay dối hành động Về phương diện cân bằng tãi thì kiến trúc shader hợp nhất
chính là lài giải cho sự thay đổi tỷ lệ số hượng bộ xử lý chơ tùng loại shader
34
Trang 34‘Téng quan kién tnic GPU
Hinh 13: Shader hop nhất — Tiến hóa của đường ống dẫn đô họa
Vi dụ, một chiếc cạc GeForce 8800 có thẻ sử dụng 90% trong số 128 bộ xử lý
của nó cho shader pixel và 10% còn lại cho shader đỉnh trong khi vẽ bầu trời và đổi
ngược tỷ lệ nảy khi vẽ các khỏi hình học của một nhân vật Chính sự hợp nhất này
đã đem đến sự linh động cho kiến trúc song song của GPU vả các nhà thiết kế game đồng thời góp phần cải thiện tính hiệu quả trong sử dụng tải nguyên của GPU
Trong hơn sảu năm qua, các chương trình vector và chương trình mảnh đã được
cải tiền với nhiều tính năng, với giới hạn lớn hơn về kích thước vả tiêu thụ tải
nguyên với bộ chỉ thi (tập lệnh) đây đủ tỉnh năng và với các phép toản điều khiển
luồng linh hoạt hơn
Sau nhiều năm sử dụng các bộ chỉ thị lệnh riêng rẽ cho các phép toán trên
vector vả mảnh, GPU hiện tại hỗ trợ mô hình đỏ bỏng théng nhat 4.0 (unified
Shader Model 4.0) trén ca dé bong vector và mảnh:
Cac phan ctmg phai hé tro cae chuong trinh shader it nhat 1a 65 nghin (65k) chỉ thị tĩnh vả chỉ thị động không giới hạn
© Cac tap lénh, lan đầu tiên, hỗ trợ cả số nguyên 32 bit vả số dâu phảy động 32 bit
35
Trang 35Tổng quan kiên trúc GPƯ
* Cac phần củng phải cho phép thao tác đạc trực tiệp và gián tiếp với sô hượng
Lay ý từ bộ nhỏ toàn cục (kết cầu - lexture)
ø Cuối cùng điên khiến luồng động trong các dạng vòng lặp và rẻ nhánh được
hỗ trợ
Khi mô hinh shader hợp nhất ra đời và phat triển mạnh hơn, tất cả các loại ứng dung GPU đã tăng độ phức tạp chương trình veotor và mảnh, kiến trúc GPU ngày
cảng tập trung, vào các bộ phận lập trình được của dường ống dân dé hoa Qua thực,
trong khi các thể hệ trước day, GPU là một đường ống dẫn đỏ họa với chức năng cổ định ở các bộ phận, khả năng hỗ trợ lập trình chỉ là một tính năng phụ thêm vào thì ngay nay GPU có thể dược coi là một công cụ hỗ trợ lập trình bao quanh bởi các
don vị hỗ trợ có chức năng cổ định
2.2.3 Kiến trúc của GPU hiện đại
GPU só kiến trúc khác nhau phụ thuộc vào nhà sẵn xuất Hình 14 mô tả sợ dé
khểi kiến trúc của hai nha sản xuất GPUT phổ biển hiện nay là: kiên trúc Tesla/Fermi
của NVTDTA và kiến trúc hệ GPU EvergrecrvNothur Tslznd của AMD Các GPU có xuột cụn các bộ xứ lý da nhân dòng (SM) hoặc một dãy bộ xử lý song song dữ liệu
(DEP) mà mỗi bộ xử lý tương ứng với một nhân của bộ xử lý đa nhán Mỗi một SM
có 8 tới 4§ nhân CUDA trong dó mỗi nhân déu chứa các đơn vị lính toán số
nguyên/dâu phẩy động, mộ lập lịch cuộn đề xép lịch các lệnh va một vài bộ
tích hợp DPP có 16 bộ xử lý uéng có kiên trúc VLIW thục thi đường ởng dẫn và
bộ nhớ tích hợp dễ chúa sẽ đữ liệu Mỗi một SM hoặc một DPP sẽ được coi là một
don vi tinh toán
Để hề trợ cho các đơn vị tính toan (CU - Computing Unit} có một đơn vị điển
khiển hoại động của CƯ ở cả hai kiến trúc GPU 1d GigaThread Engine 6 GPU của NVIDLA và bộ xử lý gửi tin siêu luông/ bộ xử lý lệnh & GPU cia AMD GPU cing tích hợp sẵn các mạng kết nối giữa các đơn vị tỉnh toán và các hệ thống con bao gồm: bộ đêm, bộ diễn khiển bộ nhớ và bộ nhớ của GPU
3
Trang 36Tổng quan kiên trúc GPƯ
SipTNeid Bar Mukipreceator ‘Streaming ‘Dae-Peralil Processor SIMD Engine) uia TheMEt ĐEEI= 2grpøt —
Hình 14: Sơ đỗ khôi kiến trúc GPU
Mô hình lập trình cho GPGPU được thiết kê đẻ xử lý một lượng lớn đữ liệu một cách đồng thời bằng các CŨ Việc xử lý đữ liệu này liên quan đến khái niệm kemel, kernal là một đoạn chương trinh được thực thì trên GPU Trong mô hình lập trình CUDA eta NVIDIA, hảng nghìn các luồng được khởi tạo bằng cách tham chiêu đến
xã cửa kernel và kemel cũng được sử dụng để xử lý dữ liệu một cách song song
Các luông được nhóm lại thành đấy các luông phối hợp (CTA) và các CTA này dược gán và xử lý bởi các CŨ GPU của AMD sử dụng mô hình thục thi OpcnCL,
là một mồ hình tỉnh toán theo chuẩn mé, nở có một sự khảo biệt nhỏ với mồ hình CUDA Nó sử đụng thuật ngữ khoản công việc (work-item) và nhỏm công việc (work-group) tuong ứng với luông và khối vá CTA ở CUDA vá chúng cũng dược gán và xử lý bởi các đơn vị tính toán Mặc đủ kiến trúc phần cứng bên trong của GPU eda hai hãng hoàn toàn khác biệt nhưng mô hình thự thủ ở mức cao thì lượng, đồng với nhau
Kiến trúc hiện tại của GPU ngày càng tích hợp rhiêu đơn vị thục thí và tính toán hơn để xử lý nhiều dữ liệu củng một lúc hơn Chiến lược nảy khá hiệu qua trong việc cải thiên sức mạnh tính toán của GPU đẳng thời nó cũng làm cho kiến trúc gủa GPU ngày điều này cũng là một thách thức đối
ang phite tap Tuy nid
với các nhà phát triển ứng dụng tỉnh toán GPGPU trong việc lập trinh và tổ chức mã
để có thế tận đụng tối đa sức mạnh của GPU
37
Trang 37Tổng quan kiên trúc GPƯ
2.3 Tinh toan trén GPU
2.3.1 Tổng quan về mô hình tính toàn trên GPU
Kiến trúc của GPU gắn chặt với mô hình tính toán, sẽ rất khó khăn đề hiểu rõ
kiến trủe của GPU nêu không có kiến thức vẻ cách má phần mềm dược thiết kế vả loại hình song song nào được triển khai trong mô hình
Hiển tại, có hai cách để sử đụng GDU Phương pháp gần đây gọi là tính toan đa dụng trên GPU (GPGPL) và được phát uiển để thực hiện tỉnh toán đa dụng dựa trên
giao điện lập trình úng dụng của cạo đỏ họa GPU để thục hiện các công việc khang liên quan đến đỗ lọa Để đáp ứmự như cầu, ngôn ngữ lập trình GPU đân dân tích hợp thêm các chỉ thị đành cho mục dịch tính toán đa dụng trong tập lệnh nên việc
việt các phân mêm không hướng mục đích đỏ họa sử đụng ngôn ngữ lập trình sang
song và APT ngay cing trở nên dễ đàng hơn Mô hình này gọi là Linh toán GPU
Năm 2007, NVIDIA công bố một kiến trúc phần mềm vả mô hình tỉnh toàn dé
có thể viết các phần mềm Œ hoặc C+— khai thác hết được tính song song cao độ của GPU Họ gợi kiến túc mày là kiến trúc tết bị hợp nhất tính toán (CUDA - Compute Unified Device Architecture), CUDA bao gồm một thư viện phân mém va xnột bộ dịch để ánh xạ ng ân ngữ C/C++ nâng cao thành các chỉ thị lệnh cho GPU và
CPU Vẻ bản chit thi CUDA cho phép lấp trình viên viết các phân mẻm C/C++
song song cao cấp bằng cách sử dụng thêm các kiểu đữ liệu đặc biệt và các chức
năng được cung cấp bởi thư viện của CUDA Trong thực tế, CUDA cũng có thể
được dùng dé viel cdc phan mém song song cho CPU đa nhân
CUDA oo thé duge dinh nghĩa bằng một trong ba cách sau:
«He thong phan cap ede don vi tinh toan
« Hệ thống phan cap cac bd nhé chia s
« Hệ thống phân cap đồng bộ rào chắn
T1ệ thẳng phân cập tỉnh toán bao gồm các luỗng ở tảng thấp nhất rồi tới các khôi luéng là nhỏm các luỗng rồi tới lưới ô khối là nhóm các khối luỗng, Mỗi một mức đều có bộ nhớ tương ứng để ảnh xạ với bộ nhớ vật lý bên trong GPU Tương tự
38
Trang 38Tổng quan kiên trúc GPƯ
cũng có những dòng bộ dang rao chắn sử dụng trong luỗng hoặc các khối luông linh 15 mô tá quan hệ giữa các đơn vị tỉnh toán và bộ nhở tương ứng của chủng,
Các luỗng CUDA có thể truy cập dữ liệu vảo nhiều khoảng không gian của bộ tihớ cùng một lúc trong thời gian thực thi như hình 15 Mỗi một hiổng sẽ có bộ nhớ cục bộ riêng của nỏ gọi là bộ nhớ mỗi luồng Mỗi một khối Inéng chia sẻ hồ nhớ của nó với toàn bộ các luồng trong khỏi trong khoảng thời gian vỏng đời là một
khi của nó gọi là bộ nhớ chia sẻ mỗi khôi
Ngoài ra côn cô hai khoảng không gian bộ nhớ ở đang chỉ đọc chữa sẽ cho tắt cả các luỗng là không gian bộ nhớ ràng buộc bất biến và kết câu (Trong kiến trúc epler, mỗi một bộ đa xử lý dòng SMX có bộ đệm đữ liệu chỉ đọc 4SKB riêng biệt
39
Trang 39‘Tong quan kién tnic GPU
a set ofindependent thread blocks
Hình 15: Hệ thống phân cấp bộ nhớ và các đơn vị tính toán
Một phần mềm bao gồm các loại dữ liệu và chức năng khác nhau Một vải biển
và dữ liệu chỉ có hiệu lực cục bộ với một luồng, những cái khác lại có hiệu lực với
một khối luéng và một sỏ lại cỏ hiệu lực trong toàn ứng dụng Tương tự, một chức
năng đặc biệt kernel là chức năng được thực thi một cách song song bởi tá
luông Ví dụ về mã của một kemel co tac dung cộng hai dãy A và B với kích cỡ N
va hm vao day € được trình bày ở dưới:
it ca Cac
Trang 40Tổng quan kiên trúc GPƯ
như đưới đây
Tóm lại mô lành lập tinh CUDA yêu cầu kiến trúc hạ tổng bên đưới có khả
năng thục thi nhiều luỗng một cách nhanh chóng và có thẻ chuyến qua lại gia các
xrhớm luông Ngoài ra, CƯDA cũng cưng cấp c
¿ không gián dữ liệu khác nhau một cách hiệu quả từ đỏ mở ra khả năng, đa luỗng trong GPU
2.3.2 Cơ chế đa luỗng của GPU
Cơ chế đa luỗng của GPU được thiết kế đề đạt được các mục đích sau:
œ _ Để che giấu độ trễ của việc tải từ bộ nhớ vả tải kết cầu từ DRAM và các bộ
nhữ chia sẻ
41