Thời GPU gắn liền với đồ họa đã qua đi: Cách mà GPU đã chuyển qua thống trị AI

0707171758

NGUYỄN THANH VÂN
Thời GPU gắn liền với đồ họa đã qua đi: Cách mà GPU đã chuyển qua thống trị AI


Ba mươi năm trước, CPU và các bộ xử lý chuyên dụng khác đã xử lý hầu như tất cả các tác vụ tính toán. Các card đồ họa của thời đại đó đã giúp tăng tốc độ vẽ các hình dạng 2D trong Windows và các ứng dụng, nhưng hoàn toàn không làm được gì khác. Nhanh chóng cho đến ngày nay và GPU hiện đã trở thành một trong những con chip thống trị nhất trong toàn ngành.
Đã qua lâu rồi cái thời mà chức năng duy nhất của phần cứng chip đồ họa là đồ họa – trớ trêu thay – tính toán hiệu năng cao và học máy phụ thuộc rất nhiều vào sức mạnh xử lý của GPU khiêm tốn. Hãy tham gia cùng chúng tôi khi chúng tôi khám phá cách con chip đơn này phát triển từ một bộ đẩy pixel khiêm tốn thành một cỗ máy tính toán dấu phẩy động cực mạnh.

Lúc ban đầu, CPU từng thống trị tất cả

Chúng ta hãy bắt đầu bằng cách quay trở lại cuối những năm 1990. Lĩnh vực điện toán hiệu năng cao, cho dù là các nỗ lực khoa học bằng cách sử dụng siêu máy tính, xử lý dữ liệu trên các máy chủ tiêu chuẩn hay những công việc về kỹ thuật và thiết kế trên máy trạm, đều hoàn toàn phụ thuộc vào hai loại CPU – bộ xử lý chuyên dụng được chế tạo riêng cho đúng một mục đích hay là những con chip bán lẻ đại trà của AMD, IBM hoặc Intel.
Chúng ta lấy ASCI Red làm ví dụ. Vào năm 1997, nó là một trong những siêu máy tính mạnh nhất có sẵn, bao gồm 9,632 CPU Intel Pentium II Overdrive (hình bên dưới). Với mỗi đơn vị hoạt động ở xung nhịp 333 MHz, hệ thống này tự hào có được hiệu năng điện toán cao nhất theo lý thuyết là vừa hơn 3.2 TFLOPS (3.2 ngàn tỷ phép tính dấu chấm động mỗi giây - trillion floating point operations/sec).
2023-07-18-image-2.jpg

Ảnh: Wikimedia.


Vì chúng ta sẽ thường xuyên đề cập đến số liệu này trong bài, hãy dành một chút thời gian để giải thích ý nghĩa của nó. Trong khoa học máy tính, các dấu chấm động (floating points) hay viết tắt là "floats", là các giá trị dữ liệu mà chúng đại diện cho những giá trị không phải số nguyên, chẳng hạn như 6.2815 hoặc 0.0044. Còn các giá trị nguyên, được gọi là số nguyên (tập hợp Z), thì được sử dụng thường xuyên cho các tính toán cần thiết để điều khiển máy tính và bất kỳ phần mềm nào đang chạy trên nó.
Trong khi đó dấu chấm động lại rất quan trọng đối với các tình huống mà độ chính xác là tối quan trọng (dĩ nhiên bằng trực giác ta cũng thấy ngay một số không nguyên, chẳng hạn 6.626 chính xác hơn các số nguyên như 6 hay 7) – đặc biệt là bất cứ điều gì liên quan đến khoa học hoặc kỹ thuật. Ngay cả một phép tính đơn giản, chẳng hạn như xác định chu vi của một vòng tròn (chu vi = đường kính × π), đã liên quan đến ít nhất một giá trị dấu phẩy động, vì ít nhất chúng ta đã có π ≈ 3.14159, còn đường kính có thể không nguyên hoặc nguyên.
Các CPU đã có những mạch điện riêng biệt để thực hiện các phép toán logic trên các số nguyên và dấu chấm động trong nhiều thập niên. Trong trường hợp Pentium II Overdrive đã nói ở trên, nó có thể thực hiện một phép tính dấu chấm động cơ bản (nhân hoặc cộng) trên mỗi chu kỳ xung nhịp. Về lý thuyết, đây là lý do tại sao ASCI Red có hiệu suất dấu chấm động cao nhất là 9,632 CPU x 333 triệu chu kỳ xung nhịp (MHz) x 1 phép tính/chu kỳ = 3,207,456 triệu FLOPS ≈ 3.2 ngàn tỷ FLOPS.
Những con số như vậy được xác định dựa trên các điều kiện lý tưởng (ví dụ: tận dụng các chỉ lệnh (instructions) đơn giản nhất trên dữ liệu mà nó dễ khớp với bộ đệm cache) và hiếm khi đạt được trong đời thực. Tuy nhiên, chúng cung cấp một chỉ dấu tốt về sức mạnh của các hệ thống.
2023-07-18-image-3.jpg

Siêu máy tính Blue Mountain. Ảnh: TechSpot.

Các siêu máy tính khác cũng có số lượng bộ xử lý tiêu chuẩn tương tự là Blue Pacific tại Phòng thí nghiệm quốc gia Lawrence Livermore đã sử dụng 5,808 chip PowerPC 604e của IBM và Blue Mountain của Phòng thí nghiệm quốc gia Los Alamos (hình trên) chứa 6,144 chip MIPS Technologies R1000.
Để đạt được khả năng xử lý cấp độ teraflop, chúng ta cần hàng ngàn CPU, tất cả đều được hỗ trợ bởi lượng lớn RAM và ổ cứng lưu trữ khổng lồ. Điều này đã từng đúng, và bây giờ vẫn luôn đúng do nhu cầu về mặt toán học của máy móc. Khi chúng ta lần đầu tiên làm quen với các phương trình trong vật lý, hóa học và các môn học khác ở trường, mọi thứ đều là một chiều. Nói cách khác, chúng ta sử dụng một con số duy nhất cho khoảng cách, tốc độ, khối lượng, thời gian, v.v.
Tuy nhiên, để lập mô hình và mô phỏng chính xác các hiện tượng, cần có nhiều chiều hơn và toán học đi sâu vào địa hạt của các vectơ, các ma trận và các tensor (quan hệ tuyến tính giữa vectơ, đại lượng vô hướng hay chính chúng với nhau, ví dụ như tích chéo và tích chấm của vectơ). Chúng được coi là các thực thể đơn lẻ trong toán học nhưng bao gồm nhiều giá trị, nghĩa là bản thân mỗi vectơ hay ma trận phải đi kèm nhiều thông số để biểu thị nó, tích chéo của 2 vectơ ab (a × b) cũng là một vectơ khác vuông góc với cả a lẫn b. Tính đa giá trị ngụ ý rằng bất kỳ máy tính nào hoạt động thông qua các phép tính này đều cần phải xử lý đồng thời nhiều con số. Do các CPU hồi đó chỉ có thể xử lý một hoặc hai dấu chấm động trong mỗi chu kỳ, nên tất nhiên chúng ta phải cần tới hàng ngàn CPU.

SIMD bước vào cuộc cạnh tranh: MMX, 3DNow! và SSE

Năm 1997, Intel đã cập nhật dòng CPU Pentium ban đầu của mình bằng công nghệ có tên MMX – một tập hợp chỉ lệnh (hay tập lệnh) mà chúng tận dụng tám thanh ghi (register) bổ sung bên trong nhân. Mỗi thanh được thiết kế để lưu trữ từ một đến bốn giá trị số nguyên. Hệ thống này cho phép bộ xử lý thực hiện một chỉ lệnh trên nhiều con số, cùng một lúc, cách tiếp cận tương tự được biết đến nhiều hơn mang tên SIMD (Một lệnh, Nhiều dữ liệu).
Một năm sau, AMD giới thiệu phiên bản của riêng mình, được gọi là 3DNow!. Nó vượt trội hơn hẳn, vì các thanh ghi có thể lưu trữ các giá trị dấu chấm động. Phải mất một năm nữa Intel mới giải quyết được vấn đề này trong MMX, với việc giới thiệu SSE (Streaming SIMD Extensions) trong chip Pentium III của họ.
2023-07-18-image-4.jpg

Công nghệ 3DNow! được ra mắt trong CPU AMD K6-2. Ảnh: Fritzchen Fritz.

Khi tờ lịch chuyển qua một thiên niên kỷ mới, các nhà thiết kế máy tính hiệu năng cao đã có khả năng tiếp cận bộ xử lý tiêu chuẩn có thể xử lý hiệu quả toán học vectơ. Một khi được nhân rộng thành hàng nghìn, những bộ xử lý này có thể quản lý các ma trận và tensor tốt ngang nhau. Bất chấp sự tiến bộ này, thế giới siêu máy tính vẫn ưa chuộng những con chip cũ hơn hoặc chip chuyên dụng, vì những phần mở rộng mới này chưa được thiết kế chính xác cho những nhiệm vụ như vậy.
Điều này cũng đúng đối với một bộ xử lý nhanh chóng được ưa chuộng khác, nó hoạt động tốt trong công việc SIMD hơn so với bất kỳ CPU nào của AMD hoặc Intel – đó chính là GPU.
Trong những năm đầu của bộ xử lý đồ họa, CPU đã xử lý các phép tính cho các hình tam giác tạo thành một cảnh được hiển thị (do đó mà AMD đã sử dụng tên gọi 3DNow! cho công nghệ SIMD của mình). Tuy nhiên, màu sắc và kết cấu của pixel được xử lý riêng biệt bởi GPU và nhiều khía cạnh của công việc này liên quan đến toán học vectơ.
Các card đồ họa tốt nhất dành cho người tiêu dùng từ hơn 20 năm trước, chẳng hạn như Voodoo5 5500 của 3dfx và GeForce 2 Ultra của Nvidia, là những thiết bị SIMD nổi bật. Tuy nhiên, chúng được tạo ra để kết xuất đồ họa 3D cho trò chơi chứ không phải gì khác. Ngay cả những card trong thị trường cho người dùng chuyên nghiệp cũng chỉ tập trung vào việc kết xuất.
2023-07-18-image-5.jpg

Ảnh: The Time Trekking Technologist.

ATI FireGL 3 trị giá 2,000 USD của ATI trang bị hai chip IBM (một công cụ hình học GT1000 và một bộ tạo điểm ảnh RC1000), bộ nhớ DDR-SDRAM khổng lồ 128 MB và sức mạnh xử lý được khẳng định là đạt mức 30 GFLOPS. Nhưng tất cả những thứ đó là để tăng tốc đồ họa trong các chương trình như 3D Studio Max và AutoCAD, bằng cách sử dụng API kết xuất OpenGL.
GPU của thời kỳ đó không được trang bị cho những mục đích sử dụng khác, vì mấy quy trình đằng sau việc biến đổi những vật thể 3D và chuyển đổi chúng thành hình ảnh trên màn hình không kéo theo việc thực hiện một lượng lớn phép toán dấu chấm động. Trên thực tế, một phần đáng kể của nó là ở cấp độ số nguyên, và phải mất vài năm trước khi card đồ họa bắt đầu hoạt động nặng với các giá trị dấu chấm động trong toàn bộ hệ thống mạch ống (pipelines) của chúng.
Một trong những thứ đầu tiên là bộ xử lý R300 của ATI, có 8 mạch ống pixel riêng biệt, xử lý tất cả phép toán ở độ chính xác dấu chấm động 24-bit. Thật không may là không có cách nào khai thác sức mạnh đó cho bất kỳ thứ gì khác ngoài đồ họa – phần cứng và phần mềm có liên quan hoàn toàn tập trung vào hình ảnh.
Các kỹ sư máy tính không phải là không biết rằng GPU có sức mạnh SIMD vô cùng lớn nhưng lại thiếu cách áp dụng nó trong các lĩnh vực khác. Đáng ngạc nhiên, chính một máy chơi game đã chỉ ra cách giải quyết vấn đề hóc búa này.

Kỷ nguyên mới của sự hợp nhất

Vào tháng 11 năm 2005, máy chơi game Xbox 360 của Microsoft lên kệ, có một CPU do IBM thiết kế và chế tạo dựa trên kiến trúc PowerPC tiêu chuẩn của hãng, cùng một GPU do ATI thiết kế và TMSC chế tạo (đúc). Chip đồ họa này, có tên mã là Xenos, rất đặc biệt vì cách bố trí của nó hoàn toàn tránh xa cách tiếp cận cổ điển là các mạch ống đỉnh và mạch ống pixel riêng biệt.
2023-07-18-image-6.jpg

GPU của Xbox 360 là con chip có diện tích lớn hơn nằm bên phải. Ảnh: Oleg Kashirin.

Thay vào đó là một cụm mảng SIMD theo ba hướng. Cụ thể thì, mỗi cụm bao gồm 16 bộ xử lý véctơ, với mỗi bộ xử lý chứa năm đơn vị toán học. Bố cục này cho phép mỗi mảng thực thi hai chỉ lệnh tuần tự từ một luồng, mỗi một chu kỳ, trên 80 giá trị dữ liệu dấu chấm động một cách đồng thời.
Được biết đến với tên gọi kiến trúc đổ bóng hợp nhất (unified shader architecture), mỗi mảng có thể xử lý bất kỳ loại đổ bóng nào. Mặc dù làm cho các khía cạnh khác của con chip trở nên phức tạp hơn, Xenos đã tạo ra một mô hình thiết kế vẫn được sử dụng cho đến ngày nay.
Với tốc độ xung nhịp 500 MHz, về mặt lý thuyết toàn bộ cụm có thể đạt tốc độ xử lý 240 GFLOPS (500 x 16 x 80 x 2) cho ba luồng của mệnh lệnh nhân-rồi-cộng. Để cho con số này có cảm giác về quy mô, một số siêu máy tính hàng đầu thế giới một thập kỷ trước đó không thể đạt được tốc độ này.
Chẳng hạn, aragon XP/S140 tại Phòng thí nghiệm Quốc gia Sandia, với 3,680 CPU Intel i860, có mức cao nhất là 184 GFLOPS. Chiếc máy này đã được vài năm tuổi vào năm 1995 và tốc độ phát triển chip nhanh chóng vượt xa nó, nhưng điều tương tự cũng đúng với GPU.
Các CPU cũng đã tích hợp các mảng SIMD của riêng chúng trong vài năm – ví dụ, CPU Pentium MMX nguyên gốc của Intel có một đơn vị chuyên dụng để thực hiện các chỉ lệnh trên một vectơ, bao gồm tối đa tám số nguyên 8 bit. Vào thời điểm Xenos đang được sử dụng trong các gia đình trên toàn thế giới, những đơn vị như vậy ít nhất đã tăng gấp đôi kích thước, nhưng chúng vẫn còn rất bé nhỏ so với những đơn vị bên trong Xenos.
2023-07-18-image-7.jpg

Nvidia GeForce 8800 GTX 2006. Ảnh: Fritzchen Fritz.

Khi các card đồ họa dành cho người tiêu dùng bắt đầu có GPU với kiến trúc đổ bóng hợp nhất, chúng đã tự hào về tốc độ xử lý cao hơn đáng kể so với chip đồ họa của Xbox 360. G80 của Nvidia (hình trên), như được sử dụng trong GeForce 8800 GTX 2006, có mức cao nhất về lý thuyết là 346 GLFOPS và R600 của ATI trong Radeon HD 2900 XT năm 2007 tự hào đạt 476 GLFOPS.
Cả hai nhà sản xuất đều nhanh chóng tận dụng sức mạnh tính toán này trong các mẫu sản phẩm của họ dành cho giới chuyên nghiệp. Mặc dù có giá cắt cổ nhưng FireGL V8650 của ATI và Tesla C870 của Nvidia rất phù hợp cho các máy tính khoa học cao cấp. Tuy nhiên, ở cấp độ cao nhất, các siêu máy tính trên toàn thế giới vẫn tiếp tục chỉ dựa vào các CPU tiêu chuẩn. Trên thực tế, phải vài năm nữa GPU mới bắt đầu xuất hiện trong các hệ thống mạnh mẽ nhất.
Vậy tại sao chúng không được sử dụng ngay lập tức, khi rõ ràng là chúng mang lại tốc độ xử lý rất lớn?
Thứ nhất, siêu máy tính và các hệ thống tương tự cực kỳ tốn kém để thiết kế, xây dựng và vận hành. Trong nhiều năm, chúng đã được xây dựng bằng cách đưa vào các dãy CPU khổng lồ, vì vậy việc tích hợp một bộ xử lý khác nữa không phải là nỗ lực trong một sớm một chiều. Những hệ thống như vậy yêu cầu lập kế hoạch kỹ lưỡng và thử nghiệm quy mô nhỏ vào ban đầu trước khi tăng số lượng chip.
Thứ hai, để tất cả các thành phần này hoạt động hài hòa, đặc biệt là về phần mềm, là một kỳ công không nhỏ, mà vốn là một điểm yếu đáng kể đối với GPU vào thời điểm đó. Mặc dù chúng đã trở nên có khả năng lập trình cao, nhưng phần mềm trước đây dành cho chúng lại khá hạn chế.
HLSL của Microsoft (Higher Level Shader Language/Ngôn ngữ Đổ bóng Cao cấp), thư viện Cg của Nvidia và GLSL của OpenGL giúp cho việc tiếp cận năng lực xử lý của một chip đồ họa trở nên đơn giản, mặc dù chỉ thuần túy để kết xuất.
2023-07-18-image-8.jpg

Tất cả đã thay đổi với GPU có kiến trúc đổ bóng hợp nhất. Vào năm 2006, ATI (lúc đó là công ty con của AMD) và Nvidia đã phát hành bộ công cụ phần mềm nhằm mục đích tận dụng sức mạnh này không chỉ cho đồ họa, với các API của họ được gọi là CTM (Close To Metal) và CUDA (Compute Unified Device Architecture), theo thứ tự.
Tuy nhiên, điều mà cộng đồng khoa học và xử lý dữ liệu thực sự cần là một gói toàn diện – một gói mà sẽ coi các mảng CPU và GPU khổng lồ (thường được gọi là nền tảng không đồng nhất) như một thực thể duy nhất bao gồm nhiều thiết bị điện toán.
Vào năm 2009, nhu cầu của họ đã được đáp ứng. Ban đầu được phát triển bởi Apple, OpenCL được phát hành bởi Khronos Group (đã thâu tóm OpenGL vài năm trước đó) để trở thành nền tảng phần mềm trên thực tế cho việc sử dụng GPU ngoài phạm vi đồ họa hàng ngày, hay như lĩnh vực này lúc đó được biết tới với tên gọi General Purpose GPU (điện toán mang mục đích tổng quát trên GPU, một thuật ngữ do Mark Harris đặt ra).

GPU đặt chân vào cuộc đua điện toán

Không giống như thế giới rộng lớn của các bài đánh giá công nghệ, trên toàn cầu không có được đến vài trăm người đánh giá có cơ hội thử nghiệm các siêu máy tính để xác minh những tuyên bố về hiệu suất được cho là của chúng. Tuy nhiên, một dự án đang được tiến hành khởi động từ đầu những năm 1990 bởi Đại học Mannheim ở Đức đang tìm cách thực hiện điều đó. Được gọi là TOP500, nhóm này phát hành một danh sách xếp hạng 10 siêu máy tính mạnh nhất thế giới hai lần một năm.
Các máy xếp hạng đầu tự hào về GPU xuất hiện vào năm 2010, với hai hệ thống ở Trung Quốc – Nebulae và Tianhe-1. Họ đã sử dụng Tesla C2050 của Nvidia (về cơ bản là GeForce GTX 470, bên dưới) và card Radeon HD 4870 của AMD tương ứng, với card của Nvidia có mức cao nhất theo lý thuyết là 2.984 TFLOPS.
2023-07-18-image-9.jpg

Ảnh: Fritzchen Fritz.

Trong những ngày đầu tiên của GPGPU cao cấp, Nvidia là nhà cung cấp được ưa chuộng hơn để trang bị cho một siêu máy tính, không phải vì hiệu suất – vì card Radeon của AMD thường đem lại mức hiệu năng xử lý cao hơn – mà là do hỗ trợ phần mềm. CUDA đã trải qua quá trình phát triển nhanh chóng và phải mất vài năm nữa AMD mới có giải pháp thay thế phù hợp, khuyến khích người dùng sử dụng OpenCL để thay thế.
Tuy nhiên, Nvidia không hoàn toàn thống trị thị trường, vì bộ xử lý Xeon Phi của Intel đã cố gắng tạo ra một vị trí trên thị trường. Nổi lên từ một dự án GPU bị hủy bỏ có tên là Larrabee, những con chip khổng lồ này là vật thể lai dị biệt giữa CPU-GPU, bao gồm nhiều lõi giống như của Pentium (phần CPU) được ghép nối với các đơn vị dấu chấm động lớn (phần GPU).
Một cuộc kiểm tra các bộ phận bên trong của Tesla C2050 cho thấy 14 khối được gọi là các Bộ đa xử lý Truyền phát (Streaming Multiprocessors, hay SM), được phân chia bởi bộ đệm cache và bộ điều khiển trung tâm. Mỗi cái bao gồm 32 bộ gồm hai mạch điện logic (được Nvidia gắn nhãn là các nhân CUDA) thực hiện tất cả các phép toán – một cho giá trị nguyên và cái còn lại cho dấu chấm động. Trong trường hợp thứ hai, các nhân có thể quản lý một phép tính FMA (Fused Multiply-Add/Nhân-cộng Dung hợp) trên mỗi chu kỳ xung nhịp với độ chính xác đơn (32 bit); còn các phép tính có độ chính xác kép (64-bit) thì yêu cầu ít nhất hai chu kỳ xung nhịp.
Các đơn vị dấu chấm động trong chip Xeon Phi (bên dưới) có phần hơi giống nhau, ngoại trừ mỗi nhân xử lý một nửa số giá trị dữ liệu so với các SM trong C2050. Tuy nhiên, vì có 32 nhân được lặp lại so với 14 của Tesla, một bộ xử lý Xeon Phi duy nhất có thể xử lý nhiều giá trị hơn trên mỗi chu kỳ xung nhịp nếu nhìn chung. Tuy nhiên, lần phát hành chip đầu tiên của Intel chỉ là một mẫu thử nghiệm và không thể phát huy hết tiềm năng của nó – sản phẩm của Nvidia chạy nhanh hơn, tiêu thụ ít năng lượng hơn và được chứng minh là một sản phẩm vượt trội.
2023-07-18-image-10.jpg

Điều này sẽ trở thành một chủ đề lặp đi lặp lại trong cuộc chiến GPGPU ba bên giữa AMD, Intel và Nvidia. Một mẫu GPU này có thể sở hữu số lượng nhân xử lý vượt trội, trong khi mẫu GPU khác có thể có tốc độ xung nhịp nhanh hơn hoặc một hệ thống bộ đệm mạnh hơn.
CPU vẫn là thiết yếu cho tất cả các loại máy tính, và nhiều siêu máy tính cũng như nhiều hệ thống điện toán cao cấp vẫn bao gồm bộ xử lý AMD hoặc Intel. Mặc dù một CPU đơn lẻ không thể cạnh tranh được với hiệu năng SIMD của một GPU thông thường, nhưng khi được kết nối với nhau trong hàng nghìn CPU, chúng đã được chứng tỏ là đủ. Tuy nhiên, các hệ thống như vậy thiếu hiệu quả năng lượng.
Ví dụ, vào cùng thời điểm card Radeon HD 4870 đang được sử dụng trong Tianhe-1, thì CPU máy chủ lớn nhất của AMD (Opteron 6176 SE có 12 nhân) đang chạy thử nghiệm. Với mức tiêu thụ điện năng khoảng 140 W, về mặt lý thuyết CPU này có thể đạt 220 GFLOPS, trong khi GPU Radeon ở trên đem lại mức cao nhất là 1,200 GFLOPS mà chỉ tiêu thụ hơn 10 W chút đỉnh, và chỉ với một phần nhỏ chi phí.

Không còn "chỉ là" một chiếc card đồ họa

Đến năm 2013, không chỉ các siêu máy tính trên thế giới tận dụng khả năng của GPU để thực hiện các phép tính song song trên quy mô hàng loạt. Nvidia đang tích cực quảng bá nền tảng GRID, một dịch vụ ảo hóa GPU, cho các ứng dụng khoa học và ứng dụng khác. Ban đầu được ra mắt như một hệ thống để lưu trữ trò chơi dựa trên đám mây, thì nhu cầu ngày càng tăng đối với GPGPU quy mô lớn, giá cả phải chăng đã khiến quá trình chuyển đổi này trở nên tất yếu. Tại hội nghị công nghệ hàng năm của Nvidia, GRID đã được giới thiệu như một công cụ quan trọng dành cho các kỹ sư trong nhiều lĩnh vực khác nhau.
Trong cùng sự kiện đó, công ty GPU đã cung cấp cái nhìn thoáng qua về một kiến trúc trong tương lai, có tên mã là Volta. Tuy nhiên, một số chi tiết đã được tiết lộ và giả định chung là đây sẽ là một con chip khác phục vụ trên tất cả các thị trường của Nvidia.
2023-07-18-image-11.jpg

Trong lúc đó, AMD cũng đang làm điều tương tự, tận dụng lối thiết kế Graphics Core Next (GCN) được cập nhật thường xuyên trong dòng Radeon tập trung vào chơi game của họ, cũng như các card dựa trên máy chủ FirePro và Radeon Sky của AMD luôn. Vào thời điểm đó, các số liệu về hiệu năng thật đáng kinh ngạc – FirePro W9100 có thông lượng FP32 (dấu chấm động 32-bit) cao nhất là 5.2 TFLOPS, một con số không thể tưởng tượng được đối với một siêu máy tính chưa đầy hai thập kỷ trước đó.
Tất nhiên, GPU vẫn được thiết kế chủ yếu cho đồ họa 3D, nhưng những tiến bộ trong công nghệ kết xuất có nghĩa là những con chip này phải trở nên ngày càng thành thạo trong việc xử lý khối lượng công việc điện toán nói chung, không chỉ riêng đồ họa. Vấn đề duy nhất là năng lực hạn chế của chúng đối với toán học dấu chấm động có độ chính xác cao, tức là FP64 hoặc cao hơn. Khi nhìn vào các siêu máy tính hàng đầu của năm 2015 cho chúng ta thấy một số lượng tương đối nhỏ sử dụng GPU, hoặc Xeon Phi của Intel hoặc Tesla của Nvidia, so với những siêu máy tính hoàn toàn dựa trên CPU.
Tất cả đã thay đổi khi Nvidia ra mắt kiến trúc Pascal vào năm 2016. Đây là cuộc thử sức đầu tiên của công ty trong việc thiết kế GPU dành riêng cho thị trường điện toán hiệu năng cao, trong khi các GPU khác đang được sử dụng trong nhiều lĩnh vực. Chỉ một trong số những con trước đây từng được sản xuất (GP100) và nó chỉ sinh ra 5 sản phẩm, nhưng trong khi tất cả các kiến trúc trước đó chỉ có một số ít nhân FP64, thì con chip này chứa gần 2,000 nhân FP64.
2023-07-18-image-12.jpg

Tám chiếc P100 trong một tấm khung đỡ. Ảnh: ComputerBase.

Với việc Tesla P100 đem lại hơn 9 TFLOPS trong khả năng xử lý độ chính xác FP32 và một nửa con số đó cho FP64, nó thực sự mạnh mẽ. Radeon Pro W9100 của AMD, sử dụng chip Vega 10, nhanh hơn 30% trong FP32 nhưng chậm hơn 800% trong FP64. Vào thời điểm này, Intel đang trên bờ vực ngừng sản xuất dòng Xeon Phi do doanh số bán hàng kém.
Một năm sau, Nvidia cuối cùng đã phát hành Volta, cho thấy ngay rằng công ty này không chỉ quan tâm đến việc giới thiệu GPU của mình cho thị trường xử lý dữ liệu và điện toán hiệu năng cao (HPC) - mà họ còn nhắm đến một thị trường khác.

Tế bào thần kinh và mạng lưới

Học Sâu (Deep Learning) là một lĩnh vực trong một tập hợp các nguyên tắc bao quát hơn được gọi chung là Học Máy (Machine Learning), mà bản thân nó là một tập hợp con của Trí tuệ Nhân tạo (AI). Nó liên quan đến việc sử dụng các mô hình toán học phức tạp được gọi là mạng thần kinh, các mạng này trích xuất thông tin từ dữ liệu đã có, chẳng hạn như xác định xác suất một hình ảnh được trình bày mô tả một con vật cụ thể. Để làm điều này, mô hình cần phải được 'đào tạo' – trong ví dụ này, nó được hiển thị hàng triệu hình ảnh về con vật đó, cùng với hàng triệu hình ảnh khác không hiển thị con vật.
Mảng toán học có liên đới thì bắt nguồn từ các phép tính ma trận và tensor. Trong nhiều thập kỷ, khối lượng công việc như vậy chỉ phù hợp với các siêu máy tính dựa trên số CPU khổng lồ. Tuy nhiên, ngay từ đầu những năm 2000, rõ ràng là GPU phù hợp một cách lý tưởng cho các tác vụ như vậy.
Tuy vậy Nvidia đã đánh cược vào việc mở rộng đáng kể thị trường học sâu và thêm một tính năng bổ sung vào kiến trúc Volta của mình để làm cho nó nổi bật trong lĩnh vực này. Được bán trên thị trường dưới dạng các nhân tensor, đây là các dãy đơn vị logic FP16 (độ chính xác thấp hơn FP32), hoạt động cùng nhau với vai trò một mảng lớn, nhưng với khả năng rất hạn chế.
2023-07-18-image-13.jpg

Kiến trúc Pascal (trái) và Volta (phải).

Trên thực tế, hạn chế lớn đến mức chúng chỉ thực hiện một chức năng – nhân hai ma trận FP16 4x4 với nhau rồi cộng một ma trận FP16 hoặc FP32 4x4 khác vào kết quả đó (một quy trình được gọi là phép tính GEMM). Các GPU trước đây của Nvidia, cũng như của các đối thủ cạnh tranh, cũng có thể thực hiện các phép tính như vậy nhưng không cái nào nhanh bằng Volta. GPU duy nhất được tạo ra bằng kiến trúc này, GV100, chứa tổng cộng 512 nhân tensor, mỗi nhân có khả năng thực hiện 64 phép tính GEMM trên mỗi chu kỳ xung nhịp.
Tùy thuộc vào kích thước của ma trận trong tập dữ liệu và kích thước dấu chấm động được sử dụng, card Tesla V100 về mặt lý thuyết có thể đạt tới 125 TFLOPS trong các phép tính tensor này. Volta rõ ràng là được thiết kế cho một thị trường ngách, nhưng khi GP100 thực hiện cuộc xâm nhập hạn chế vào địa hạt siêu máy tính, thì các mẫu GPU Tesla mới đã nhanh chóng được đón nhận.
Những người đam mê chơi game trên PC sẽ nhận thấy rằng Nvidia sau đó đã thêm các nhân tensor vào các sản phẩm tiêu dùng chung của mình trong kiến trúc Turing tiếp theo, và phát triển một công nghệ tăng quy mô có tên Deep Learning Super Sampling (DLSS). Phiên bản mới nhất sử dụng các nhân trong GPU để chạy mạng nơ-ron trên hình ảnh tăng kích cỡ, sửa chữa mọi thành phần tạo tác trong khung hình.
Trong một thời gian ngắn, Nvidia đã có thị trường deep learning cho riêng mình nhờ được GPU tăng tốc, và bộ phận trung tâm dữ liệu của họ đã chứng kiến doanh thu tăng vọt – với tốc độ tăng trưởng 145% trong năm 2017, 133% trong năm 2018 và 52% trong năm 2019. Tính đến cuối năm 2019, doanh thu của mảng HPC, học sâu và các mảng khác đạt tổng cộng 2.9 tỷ USD.
2023-07-18-image-14.jpg

Tuy nhiên, ở đâu có tiền, thì cạnh tranh là không thể tránh khỏi. Vào năm 2018, Google đã bắt đầu cung cấp khả năng truy cập các chip xử lý tensor do chính họ phát triển, thông qua một dịch vụ đám mây. Amazon mau chóng làm theo với CPU chuyên dụng của mình, AWS Graviton. Trong khi đó, AMD đang tái cấu trúc bộ phận GPU của họ, tạo thành hai dòng sản phẩm riêng biệt: một dòng chủ yếu dành cho chơi game (RDNA) và dòng còn lại dành riêng cho điện toán (CDNA).
Trong khi RDNA khác biệt đáng kể so với người tiền nhiệm của nó, thì CDNA gần như là một sự phát triển tự nhiên của GCN, dẫu cho nó đã được mở rộng đến một mức độ rất lớn. Khi nhìn vào các GPU ngày nay cho siêu máy tính, máy chủ dữ liệu và máy tính AI, ta thấy mọi thứ đều rất lớn.
MI250X chạy bằng CDNA 2 của AMD có 220 Đơn vị Tính toán (Compute Unit), cung cấp gần 48 TFLOPS có thông lượng độ chính xác kép FP64 và 128 GB Bộ nhớ Băng thông Cao (HBM2e), với cả hai khía cạnh đều đang được theo đuổi nhiều trong các ứng dụng HPC. Chip GH100 của Nvidia, sử dụng kiến trúc Hopper và 576 Nhân Tensor, có khả năng đạt 4000 TOPS, với định dạng số INT8 có độ chính xác thấp trong các phép tính ma trận của AI.
GPU Ponte Vecchio của Intel cũng khổng lồ không kém, với 100 tỷ bóng bán dẫn và MI300 sắp ra mắt của AMD có thêm 46 tỷ nữa, bao gồm nhiều chiplet CPU, đồ họa và bộ nhớ.
2023-07-18-image-15.jpg

Tuy nhiên, có một điều mà tất cả chúng đều có chung, là thứ mà chúng dứt khoát không phải – chúng không phải là GPU. Từ rất lâu trước khi Nvidia sử dụng thuật ngữ này như một công cụ tiếp thị, thì GPU là từ viết tắt của Đơn vị xử lý đồ họa. MI250X của AMD không có bất kỳ đơn vị đầu ra kết xuất (render ouput unit, hay ROP) nào và thậm chí GH100 chỉ sở hữu hiệu suất Direct3D tương tự như GeForce GTX 1050, khiến chữ 'G' trong GPU chẳng liên quan gì cả.
Vì vậy, chúng ta có thể gọi chúng là gì? "GPGPU" không phải là lý tưởng, vì nó là một cụm từ vụng về đề cập đến việc sử dụng GPU trong điện toán tổng quát mà thôi, chứ không phải bản thân thiết bị. "HPCU" (Đơn vị Tính toán Hiệu năngCao) cũng không khá hơn là bao. Nhưng có lẽ nó không thực sự quan trọng. Xét cho cùng, thuật ngữ "CPU" cực kỳ rộng và bao gồm nhiều loại bộ xử lý và mục đích sử dụng khác nhau, vì có đơn vị nào trong đó mà không xử lý công việc, và bản thân mỗi con chip luôn là một trung tâm chuyên biệt.

GPU sẽ chinh phục thứ gì tiếp theo?

Với hàng tỷ đô la đầu tư vào nghiên cứu và phát triển GPU của AMD, Intel, Nvidia và hàng chục công ty khác, bộ xử lý đồ họa ngày nay sẽ không sớm bị thay thế bởi bất kỳ thứ gì khác biệt đáng kể. Để kết xuất, các API và gói phần mềm mới nhất sử dụng chúng (chẳng hạn như các phần mềm làm game và các ứng dụng vẽ kỹ thuật CAD) nhìn chung không phụ thuộc vào phần cứng chạy mã, vì vậy về lý thuyết, chúng có thể được điều chỉnh cho phù hợp với một thứ hoàn toàn mới.
Tuy nhiên, có tương đối ít thành phần trong GPU chỉ dành riêng cho đồ họa – công cụ thiết lập tam giác và ROP là những thành phần rõ ràng nhất và các đơn vị dò tia (ray tracing) trong các bản phát hành gần đây cũng được chuyên môn hóa cao. Tuy nhiên, phần còn lại về cơ bản là một chip SIMD song song khổng lồ, được hỗ trợ bởi một hệ thống bộ nhớ/bộ đệm cache phức tạp và mạnh mẽ.
2023-07-18-image-16.jpg

Thông lượng có độ chính xác FP32 cao nhất về mặt lý thuyết (TFLOPS). Ảnh: TechSpot.

Các thiết kế căn bản gần như đã đạt mức tốt nhất có thể và bất kỳ cải tiến nào trong tương lai chỉ đơn giản là gắn liền với những tiến bộ trong kỹ thuật chế tạo chất bán dẫn. Nói cách khác, chúng chỉ có thể cải thiện bằng cách chứa nhiều đơn vị logic hơn, chạy ở tốc độ xung nhịp cao hơn, hoặc là kết hợp cả hai.
Tất nhiên, chúng có thể có các tính năng mới được tích hợp để cho phép chúng hoạt động trong nhiều tình huống hơn. Điều này đã xảy ra vài lần trong suốt lịch sử của GPU, dẫu quá trình chuyển đổi sang một kiến trúc đổ bóng hợp nhất là đặc biệt quan trọng. Mặc dù tốt hơn hết là nên có phần cứng chuyên dụng để xử lý các phép tính tensor hoặc phép tính dò tia, thì nhân của GPU hiện đại có khả năng xoay sở tất cả, mặc dù ở tốc độ chậm hơn.
Đây là lý do tại sao những sản phẩm như MI250 và GH100 có sự tương đồng mạnh mẽ với các đối trọng của chúng trên máy tính để bàn, và các thiết kế tương lai được dự trù để sử dụng trong địa hạt HPC và AI có thể sẽ đi theo xu hướng này. Vậy nên nếu bản thân các con chip sẽ không thay đổi đáng kể, còn ứng dụng của chúng thì sao?
Giả dụ mọi thứ liên quan đến AI về cơ bản là một nhánh trong điện toán, thì một GPU có thể được sử dụng bất cứ khi nào có nhu cầu thực hiện vô số phép tính SIMD. Mặc dù không có nhiều lĩnh vực của khoa học và kỹ thuật trong đó các bộ xử lý như vậy chưa được sử dụng, nhưng những gì chúng ta có thể thấy là sự gia tăng trong việc sử dụng các dẫn xuất của GPU.
2023-07-18-image-17.jpg

Bo mạch tăng tốc Coral của Google với hai con chip edgeTPU.

Hiện tại, người ta có thể sắm điện thoại được trang bị những chip tí hon có chức năng duy nhất là tăng tốc các phép tính tensor. Khi các công cụ như ChatGPT tiếp tục phát triển mạnh mẽ và phổ biến, chúng ta sẽ thấy nhiều thiết bị hơn có phần cứng như vậy.
Chiếc GPU khiêm tốn đã tiến hóa từ một thiết bị chỉ nhằm mục đích chạy các game nhanh hơn khả năng của một mình CPU, thành một cỗ máy gia tốc vạn năng, cung cấp sức mạnh cho các máy trạm, máy chủ và siêu máy tính trên toàn cầu. Hàng triệu người trên toàn thế giới sử dụng một thiết bị mỗi ngày – không chỉ trong máy tính, điện thoại, TV và thiết bị phát trực tuyến của chúng ta mà còn khi chúng ta sử dụng các dịch vụ tích hợp nhận dạng giọng nói và hình ảnh, hoặc cung cấp các đề xuất âm nhạc và video.
Điều gì thực sự tiếp theo đối với GPU có thể là một vùng lãnh thổ chưa được khám phá, nhưng có một điều chắc chắn là bộ xử lý đồ họa sẽ tiếp tục là công cụ thống trị cho điện toán và AI trong nhiều thập kỷ tới.
 
Bên trên