Tìm hiểu công nghệ đồ hoạ RTX Neural Rendering của NVIDIA (P.3)

Hybrid Rendering

Một tiêu chuẩn công nghiệp mới.

Ở các phần trước, chúng ta đã nói sơ nét về khởi nguồn của Neural Rendering (NR) cũng như các công nghệ render raster lẫn ray tracing/path tracing. Tới đây mình sẽ đi vào chủ điểm chính - NR là gì và ý nghĩa của nó tới ngành công nghiệp game như thế nào.

Khi buồm căng gió

Dù vậy, mình cần "tâm sự" thêm rằng mình không "phát cuồng" vì NR hay NVIDIA. NR nói riêng hay tất cả những công nghệ đồ hoạ khác đều được sinh ra để giúp việc thể hiện hình ảnh ngày càng sống động và chân thực hơn. Song không phải công nghệ nào cũng dành cho số đông, không phải công nghệ nào cũng có tầm ảnh hưởng sâu rộng.

Riêng như NVIDIA mà nói, họ đã từng có những công nghệ rất "hot" như PhysX hay G-Sync, nhưng lại không phổ thông với tất cả mọi người. Và những công nghệ không phổ biến thì mình không mấy chú trọng vì có bao nhiêu người sẽ trải nghiệm được nó?

Song NR có thể là trường hợp đặc biệt khi NVIDIA là người lập ra và giới công nghệ có thể sẽ phải chạy theo họ. Tại sao? Vì Microsoft.

Cooperative Vector trở thành một tiêu chuẩn mới trên DirectX 12

Dù bạn "like" hay "dislike", vai trò của Microsoft đối với game PC là không thể phủ nhận. Bộ DirectX (DX) API của công ty này đã là tiêu chuẩn công nghiệp với game PC. Tuy hôm nay chúng ta có thêm một vài lựa chọn khác như Vulkan, OpenGL hay SteamOS/Linux, thì DX API vẫn cái tên đầu tiên khi bạn muốn làm game trên PC. Vậy nên những gì Microsoft đưa lên DX API, thì chúng chính là thứ bạn cần nắm bắt để cho game của mình hoàn thiện hơn.

tại sự kiện GDC 2025 mới diễn ra gần đây, NR đã trở thành một phần cơ bản của bộ DX 12 mới. Nó còn được biết đến với cái tên Cooperative Vector (CoVec). Kể từ đây, các đối tác còn lại của Microsoft gồm AMD, Intel và Qualcomm dù muốn dù không, buộc phải đón nhận NR nếu không muốn GPU của mình trở thành "kẻ lạc loài". Nghĩ có cay không?

Neural Rendering hay Cooperative Vector là gì?

Ở đây, chúng ta cần phân biệt một chút định nghĩa NR của NVIDIA và Microsoft.

Dù cả 2 đều cùng dùng chung thuật ngữ trên song mỗi công ty lại có quan điểm riêng. NVIDIA vì là đơn vị đầu tiên triển khai NR cũng như là hoàn thiện mọi thứ nên NR của NVIDIA sẽ có nhiều thành phần và tính chuyên môn hoá cao hơn. Microsoft ngược lại, do bản chất làm phần mềm và quan hệ với nhiều hãng, nên Microsoft không thể đem tất cả những gì của NVIDIA đặt ra và "ép" những công ty còn lại phải làm "y chang" như vậy. Việc đó không chỉ "làm khó" AMD, Intel và Qualcomm mà còn đặt ra những rắc rối về bản quyền trí tuệ.

Intel cho biết họ sẽ hỗ trợ Cooperative Vector của Microsoft

Do đó, NR của Microsoft có tính giản đơn và dễ triển khai hơn. Tiêu chuẩn công nghiệp nhìn chung, cũng không quá khắt khe so với các công nghệ độc quyền. Vì khắt khe quá thì khó mà áp dụng phổ biến cho được. So với NVIDIA, NR của Microsoft chỉ thuần tuý là tận dụng các nhân xử lý AI để phục vụ render hình ảnh, thông qua các phép toán nhân ma trận (CoVec). Với NVIDIA, đó là Tensor core; với Intel, đó là XMX; với AMD, đó là AI Accelerator.

Còn lý do tại sao Microsoft cho ra đời CoVec thì như mình đã nêu ở phần trước. Mục đích là tận dụng lượng silicon "thừa thãi" để render đồ hoạ. Vì DX 11 trở về trước hoàn toàn không dùng được các nhân AI này. Khi GPU được tối ưu cho AI nhiều hơn thì đồng nghĩa lượng silicon bỏ ra để sản xuất chúng cũng cao hơn, nếu cứ bỏ không thì thật lãng phí.

Neural Rendering trên Blackwell

Nếu dựa vô định nghĩa của Microsoft, thì NR thực tế tồn tại trên rất nhiều thế hệ GPU đang có trên thị trường chứ không riêng Blackwell (RTX 50), miễn là chúng có các nhân tăng tốc AI. Nhưng như đã nói, NVIDIA là hãng đầu tiên triển khai NR và cơ bản, họ đã tiến khá xa so với các công ty khác. Vì vậy, NR của NVIDIA mà cụ thể là trên Blackwell, đã có nhiều điểm tiến bộ hơn Pascal, Turing, Ada.

Cấu tạo Neural Shader về cơ bản là sự kết hợp của Shader và Tensor làm một

Cách thức làm việc của Neural Shader trên Blackwell

Khác biệt đầu tiên mà cơ bản nhất của Blackwell chính là Neural Shader. Nó là sự kết hợp giữa các nhân Shader (đồ hoạ) truyền thống và nhân Tensor (ma trận). Nếu như ở các thế hệ trước, Shader và Tensor tồn tại độc lập thì nay, chúng là một thể thống nhất. Sự kết hợp này đồng thời tạo bước ngoặt mới - các nhân shader giờ đây có thể thực hiện các phép toán dựa trên các toán tử FP16/FP8/FP4 vốn có kích thước nhỏ hơn trước. Khi dữ liệu game có kích thước nhỏ hơn đồng nghĩa với lượng bộ nhớ mà chúng chiếm dụng sẽ ít hơn.

Neural Shader và "hệ sinh thái" Neural Rendering của NVIDIA

Về cơ bản, dữ liệu Neural chiếm dung lượng nhỏ hơn dữ liệu "truyền thống"

Và nếu có gì để phân biệt NR của NVIDIA với các hãng khác thì bạn chỉ cần nhớ cụm "neural". Vầng, mọi thứ đều là "neural" gồm Neural Textures, Neural Materials, Neural Volumes, Neural Radiance Fields (NRF), Neural Radiance Cache (NRC). Nhìn chung, chúng đều là việc chuyển đổi dữ liệu đồ hoạ "truyền thống" thành dạng toán tử ma trận mà nhân Tensor có thể xử lý được (ở dạng CoVec). Dĩ nhiên, để có thể tận dụng được NR thì nhà phát triển game cũng phải tiến hành "train" lại game engine của họ. Nói cách khác những game DX 11 trở về trước sẽ không nhận được lợi ích từ NR - sự tăng trưởng hiệu năng chủ yếu vẫn dựa vô các nhân shader "truyền thống".

Các lợi ích cụ thể của NR trên Blackwell

Neural, Neural, Neural... nói riết đau cả đầu (neurotic). Rốt cục thì nó có gì hay mà Microsoft cũng sẵn sàng đem vào chuẩn hoá? Sau đây là một vài thứ.

Sự phản xạ ánh sáng thực tế hơn. Như đã phân tích ở phần raster vs. ray tracing, những gì chúng ta "nhìn thấy" đều đến từ việc vật liệu hấp thụ & phản xạ (tán xạ) ánh sáng môi trường như thế nào. Tuy vậy mỗi loại vật liệu khác nhau sẽ có tỷ lệ hấp thụ & phản xạ khác nhau. Vật "rắn" hoàn toàn sẽ phản xạ khác vật "trong suốt" hoặc "trong mờ" (tuỳ hệ số chiết quang). Thậm chí góc tới của tia sáng cũng sẽ cho màu sắc khác nhau. Ở đây, dưới sự kết hợp của Neural Materials và NRC, các nhân AI sẽ tiến hành tổng hợp các kịch bản tán xạ ánh sáng khác nhau để tạo ra RTX Skin. Trong đó nếu vật liệu có yếu tố trong mờ (ngọc đá quý chẳng hạn), hiệu ứng ánh sáng của chúng sẽ khác so với kiểu render truyền thống.

Sự kết hợp giữa Neural Materials và Neural Radiance Cache giúp tạo ra hiệu ứng quang học chân thực hơn

Tạo hình biểu cảm khuôn mặt dễ dàng hơn. Thực tế thứ này chắc bạn đã thấy đầy rẫy khắp nơi dưới tên gọi Generative AI và kết quả thì ai cũng tự kiểm định được. Tất nhiên khi áp dụng vào game (dưới tên gọi Neural Faces), nó sẽ giúp các nhà phát triển tiết kiệm thời gian hơn để xây dựng cơ sở dữ liệu cho các nhân vật. Nếu lúc trước họ phải chụp hình từng biểu cảm khác nhau (buồn vui giận hờn khóc cười...) để đưa vô game thì nay dựa trên cơ sở dữ liệu sẵn có, nhân AI có thể tự làm ra chúng thay cho phương pháp "thủ công truyền thống".

Dựng hình "lông tóc" nhanh chóng hơn. Dù ít ai nhắc tới nhưng "lông tóc" luôn là thứ đau đầu trong tạo hình 3D - chúng "ngốn" rất nhiều đa giác và dĩ nhiên, ngốn nhiều sức mạnh GPU để vẽ ra. Trong 1 câu chuyện không liên quan là tạo hình form Super Saiyan 3 (SS3) của Goku (Dragon Ball). Dù nhìn SS3 đúng "ngầu" thật nhưng số "tóc" mà tác giả phải bỏ công vẽ cho từng khung hình quả thật quá mất công! Thế nên sau khi Akira Toriyama nhận ra vấn đề thì ông đã nhanh chóng kết thúc "vòng đời" cho form này. Đi "nhuộm đầu" xanh đỏ tím vàng rose đơn giản lẹ làng hơn nhiều =)))))

Vẽ "lông tóc" trên Blackwell sẽ dễ dàng hơn khi tiêu tốn ít tài nguyên hơn

Quay lại với NVIDIA, một liệu pháp đơn giản hơn được đặt ra là thay vì dùng thật nhiều đa giác để tạo hình sợi tóc thì hãy thay bằng các đường cong xéo góc (linear-swept spheres) nối lại với nhau thông qua kỹ thuật ray tracing. Như thế số lượng đa giác cần thiết để vẽ sẽ giảm đi đáng kể mà hiệu ứng thị giác gần như không có khác biệt. Tất nhiên tốn ít đa giác hơn thì số FPS sẽ cao hơn, cho cảm giác gaming mượt hơn.

Ray tracing được tối ưu hơn. "Tối ưu" ở đây bạn cần hiểu là mức độ chi tiết sẽ khác nhau ở từng chủ thể khác nhau, chứ không phải mọi chủ thể sẽ tăng độ chi tiết (hơn thế hệ trước). Như bạn đã biết, "chi phí" ray tracing rất "đắt" chứ không "rẻ". Nếu áp dụng chung một mức độ chi tiết (LOD) cho từng pixel thì hiệu năng sẽ rất thấp. Vì thế NVIDIA bổ sung thêm tính năng RTX Mega Geometry, vốn dựa trên nền tảng BVH (Bounding Volume Hierarchy). Trong đó từng khối pixel có độ chi tiết (LOD) khác nhau sẽ được gom thành một nhóm (cluster) để ray trace ở quy mô khác nhau. Như vậy chỉ khu vực nào cần rõ ràng cụ thể thì chúng sẽ được ưu tiên tính toán nhiều hơn, các khu vực xa mờ không đáng kể thì "lớt phớt" là được.

RTX Mega Geometry giúp ray tracing hiệu quả cao hơn tuỳ mức độ chi tiết chủ thể

DLSS 4 và mô hình AI Transformer

Đúng ra, đây không phải là NR song do nó chỉ xuất hiện trên Blackwell và cơ chế làm việc có hỗ trợ qua lại cho NR nên mình cũng nhắc qua sơ nét. Vấn đề về frame generation và multi frame generation (MFG) đã nêu ở phần trước nên mình sẽ bỏ qua.

Một trong các nhân tố chính để vận hành cỗ máy AI chính là mô hình mà nó sử dụng để tương tác và xử lý dữ liệu. Nôm na nó cũng giống như kiến trúc vi xử lý hay sơ đồ cấu tạo của một công ty doanh nghiệp. Dĩ nhiên mỗi mô hình kiến trúc sẽ có đặc điểm khác nhau, ưu điểm, khuyết điểm. Đối với GPU nói riêng trong những năm gần đây, chúng sử dụng mô hình CNN (Convolutional neural network). Đây là mô hình gần như là tiêu chuẩn công nghiệp trong việc xử lý văn bản, hình ảnh, âm thanh.

Cách thức xử lý dữ liệu của CNN dựa trên phép nhân chồng hàm số

Ở đây chúng ta sẽ không đào sâu chi tiết kiến trúc từng mô hình. Mình chỉ nêu những khác biệt cơ bản. Trong đó với CNN, dữ liệu đầu vào được chia ra xử lý qua một mạng lưới nhân chồng (convolution). Quá trình nhân chồng này sẽ diễn ra nhiều lần để sau cùng chúng ta có được một kết quả chung nhất phù hợp với phần lớn dữ liệu đầu vào. Với NVIDIA, các thế hệ GPU trước Blackwell đều sử dụng mô hình này và nó được áp dụng để tái-xử-lý các frame hình được tạo ra từ ống lệnh đồ hoạ trước đó (DLSS).

Tuy cấu tạo đơn giản và dễ xử lý song CNN có nhược điểm là nó phù hợp với các dữ liệu nhỏ lẻ, cục bộ, không có tính liên kết lâu dài (ví dụ theo thời gian). Đặc trưng này dẫn tới việc khi tái-xử-lý hình ảnh có tốc độ biến đổi cao, mô hình CNN thường cho ra kết quả khá tệ, chi tiết bị bóng mờ, mất nét hoặc nhìn chung là làm "ngứa mắt". May thay, tới 2017, các nhà nghiên cứu của Google đã trình làng một mô hình AI mới có tên Transformer (hoặc Vision Transformer, ViT). Đây là mô hình NVIDIA đã áp dụng cho Blackwell (RTX 50) dưới tên gọi DLSS 4.

Mô hình Transformer dùng các token có trọng số để ưu tiên những dữ liệu quan trọng

So sánh 3 mô hình CNN, RNN và Transformer (Self-Attention)

Trong khi CNN xử lý dữ liệu theo hướng "đồng đều" thì Transformer dùng phương pháp "trọng khối" (attention). Cụ thể dữ liệu đầu vào sẽ được chia ra các token có "trọng số" (weight) khác nhau. Token có trọng số cao hơn sẽ được ưu tiên giữ lại trong quá trình xử lý và ngược lại. Ngoài ra, token có trọng số cao hơn cũng sẽ được giữ lại trong các lần xử lý tiếp theo, giúp cho thông tin liên quan tới nó được "bền lâu" (theo dòng sự kiện). Dĩ nhiên nhược điểm của Transformer là nó ngốn nhiều bộ nhớ cũng như năng lực xử lý hơn, khi cần liên kết nhiều khối dữ liệu hơn.

So sánh chất lượng hình ảnh giữa DLSS 3 vs. DLSS 4

Nhờ vào Transformer, chất lượng hình ảnh tái-xử-lý của DLSS 4 đã thực sự lên một tầm cao mới. Vì dựa vô lượng dữ liệu chất lượng cao (được render từ trước), DLSS 4 mang đến độ rõ nét gần như tương đương với render "truyền thống" (tỷ lệ phân giải 1:1). Đây là điều mà DLSS 3 lẫn FSR 4 không thể có được vì vẫn dựa trên mô hình CNN cũ.

Nghĩ gì về tương lai công nghệ đồ hoạ?

Mặc dù đợt ra mắt RTX 50 mới đây của NVIDIA có quá nhiều vấn đề, đặc biệt trong khâu kiểm soát chất lượng sản phẩm; song không thể phủ nhận NR là một bước tiến lớn về đồ hoạ. Và nó đặt ra cho mình một câu hỏi mang tính gợi nhớ quá khứ (retro) - chúng ta có đang quay về thời DirectX 9 của 20 năm trước?

Hãy nhớ rằng trong quá khứ, hầu hết mọi thành phần của GPU đều là từng cụm ASIC riêng (vertex, geometry, pixel shader). Nếu anh tăng năng lực geometry quá, thì năng lực texture hay pixel của anh lại không theo kịp và bị "nghẽn cổ chai" (bottleneck). Việc hợp nhất được tất cả các shader là một cách mạng lớn với GPU vì từ nay anh không còn phải so đo mạnh cái gì yếu cái gì và ngược lại. Nhưng NR và CoVec đã mang "nỗi ám ảnh" kia trở lại.

Cấu tạo GPU Alchemist (Intel) và RDNA4 (AMD). Hãy chú ý phần xử lý ray tracing, AI và raster hoàn toàn độc lập

Từ nay, năng lực đồ hoạ của anh không chỉ lệ thuộc vào lượng shader mà còn kèm theo cả nhân RT và nhân AI. Dĩ nhiên, không có gì bắt buộc hãng game phải sử dụng ray tracing, hoặc CoVec, hoặc DLSS/FSR/XeSS. Nhưng có thì sẽ tốt hơn (nhìn chung là vậy). Và từ đó dẫn tới vấn đề hãng sản xuất GPU cũng phải "bỏ tâm huyết" ra đầu tư vào sản phẩm. Với NVIDIA, chuyện này không thành vấn đề vì... GPU gần như là thứ đẻ ra tiền duy nhất cho công ty này. Nhưng AMD, Intel, Qualcomm (và xa hơn có thể cả MediaTek) thì không thế. AMD dù đang là đối trọng mạnh nhất và có vị thế vững nhất ở thị trường console thì không có nghĩa họ không phải e dè với NVIDIA.

Nay với việc Microsoft đưa các công nghệ của NVIDIA thành "chuẩn hoá", các công ty khác ít nhiều cũng phải điều chỉnh lại chiến lược sản phẩm của mình cho phù hợp. Và cũng không thể không nhắc đến các bước tiến của công ty này trong lĩnh vực AI.

Vấn đề bây giờ là AI của ai tốt hơn?

Cá nhân mình dù trước đây không "fancy" AI cho lắm, vì chất lượng của chúng lúc bấy giờ vẫn khá "amateur". Nhưng công tâm mà nói, con người chúng ta lúc còn là học sinh thì cũng có gì khác? Những bài thi, những buổi thuyết trình, các đề tài khoá luận môn học cũng đâu phải "professional" gì? Chúng ta tự "làm giàu" bản thân bằng kinh nghiệm sống và AI hiện nay cũng vậy. Với những mô hình tốt hơn, cơ sở dữ liệu hoàn thiện hơn, AI không chỉ sánh ngang mà đã dần vượt xa khỏi những bộ óc sinh học "lười suy nghĩ".

Quay lại GPU, một xu thế không thể nghịch đảo trong hôm nay là sự tồn tại của nhân AI trong lòng chúng. Vấn đề bây giờ không phải ai ủng hộ AI mà ai đang/sẽ có mô hình AI tốt hơn, hỗ trợ sâu hơn trong việc tạo ra hình ảnh. Mình vẫn trích lại câu nói của một ai đó trên mạng: "Tương lai GPU sẽ không vẽ ra ảnh đồ hoạ nữa, mà chúng sẽ 'nằm mơ' ra thứ đó".

Chia sẻ cảm nhận nhé ^^

Discover more from migovi

Subscribe now to keep reading and get access to the full archive.

Continue reading