AMD và NVIDIA có đang cạnh tranh trên cùng mặt trận?

Có rất nhiều hãng tham gia vào thị trường GPU, ngoài AMD hay NVIDIA ra còn có Matrox, WildCat/3D Labs, S3, VIA và một số hãng khác. Nhưng cuối cùng hai cái tên bạn bắt gặp nhiều nhất vẫn là NVIDIA và AMD. Hai công ty này luôn được đem ra so sánh với nhau suốt 4 năm nay. Nhưng liệu chúng ta có thể so sánh họ một cách công bằng được không?
Có rất nhiều hãng tham gia vào thị trường GPU, ngoài AMD hay NVIDIA ra còn có Matrox, WildCat/3D Labs, S3, VIA và một số hãng khác. Nhưng cuối cùng hai cái tên bạn bắt gặp nhiều nhất vẫn là NVIDIA và AMD. Hai công ty này luôn được đem ra so sánh với nhau suốt 4 năm nay. Nhưng liệu chúng ta có thể so sánh họ một cách công bằng được không?    

 

Xét về bề ngoài thì có thể. Suy cho cùng bạn chỉ so sánh số khung/giây mà GPU có thể tạo ra. Con số này nằm từ 28 đến 32, số lượng khung “lừa” được mắt người rằng họ đang nhìn thấy hình ảnh chuyển động đầy đủ.   

Hiện có rất nhiều cách để bù lại tốc độ khung thấp, nhưng chúng ta sẽ không bàn đến ở đây. Mà điều cần quan tâm là làm thế mà mà các GPU lại tạo ra được con số kỳ diệu đó. Điều này chẳng có gì là bí quyết công nghệ, mà là sự khác biệt cơ bản giữa hai công ty trong cách áp dụng và thực hiện mà thôi. 

Shader là Shader

Một trong số những điều mà cả NVIDIA lẫn AMD đều muốn nói với bạn chính là số lượng Shader họ có, cho biết một GPU có thể xử lý bao nhiêu phép tính song song. Hãy thử lấy card GPU tốt nhất của mỗi hãng: AMD Radeon 5870 và NVIDIA GTX 285. AMD tự hào rằng họ có 1600 Shader còn GTX 285 chỉ có vỏn vẹn 240.

Quá dễ để biết ai thắng, phải không? Đừng vội. Đó là bởi AMD sử dụng dạng cụm hoặc kiểu Node gọi là Vec5D. Trong Radeon HD 5870 có 320 Node này; mỗi Node có 5 nhóm Shader ( Shader Unit ) , tổng cộng là 1600 Shader . Với 4 Shader , trong mỗi Node có thể xử lý các lệnh đơn giản, còn Shader thứ 5 mạnh hơn và xử lý được các lệnh phức tạp.

Trong khi đó Shader của NVIDIA lại đa chức năng và xử lý được cả 2 kiểu lệnh.

Ngoài ra Shader của AMD chỉ làm việc với tốc độ ở xung nhịp nhân của GPU, tức là 825MHz so với 1475MHz , tốc độ Shader trong GTX 285.

 \"\"

Vậy điều này có liên quan gì đến việc chơi Game? Thực ra nó có liên quan đến cách lập trình Game. Nếu mã Game chỉ gồm các lệnh nhỏ và đơn giản thì GPU AMD mạnh hơn hẳn, ngay cả khi tốc độ Shader của NVIDIA vượt trội hơn hẳn . Còn nếu mã Game phức tạp và nặng nền thì AMD chỉ có 320 Shader để xử lý mã đó với tốc độ thấp hơn so với tốc độ Shader của NVIDIA . Vấn đề này ngày càng thể hiện rõ không chỉ  trong Game mà còn cả trong những ứng dụng tính toán GPGPU .

Vấn đề càng phức tạp hơn khi các nhà phát triển Game cố đẩy công việc tính toán sang GPU song song. Thật tuyệt nếu GPU xử lý được khối lượng công việc này, nhưng lại một lần nữa điều này thuộc về cách thực thi. Nên nhớ rằng NVIDIA đã có mã GPGPU (CUDA) từ 3 năm trước. Họ đã áp dụng cách thiết kế GPU vào việc hỗ trợ mã này (và thêm cả hỗ trợ OpenCL vào trong các bản nâng cấp Driver gần đây.) 

Về phần mình, AMD cũng có thiết kế GPU hệt như vậy với dòng GPU 29xx, nhưng không có đủ tiền hoặc nhân lực để đầu tư vào cộng đồng Game như NVIDIA. Kết quả là nhiều Game được tối ưu theo đúng cách xử lý mã của GPU NVIDIA. Đây chính là những Game được AMD ( và trước đó là ATI ) đầu tư rất nhiều, nhưng do thiếu vốn nên không thể tiếp tục. Liệu có phải NVIDIA đang kiểm soát thị trường một cách bất công? Cũng có thể, nhưng đó không phải là mục đích của bài báo này. 

 \"\"

Quay trở lại thời dòng sản phẩm X19xx, ATI và AMD đều nói về việc đưa ứng dụng tính toán vật lý vào GPU. Khi đó họ hứa hẹn sẽ tăng mạnh hiệu suất làm việc mà không cần đến PPU ( Physics Processing Unit - Đơn vị xử lý vật lý) do AGEIA đưa ra nữa. Nhưng rốt cuộc điều này đã không xảy ra.

Tuy nhiên NVIDIA thì không để nó qua đi dễ dàng như vậy; họ biết mình đang tụt hậu sau ATI xét về khả năng áp dụng tính toán vật lý vào GPU, vì thế NVIDIA mua lại AGEIA và đưa mã này vào GPU. Kết quả là nhiều Game mới ra đời với hỗ trợ PhysX nhưng chỉ mang tính chất nâng cao mà thôi .

\"\" 

Vậy AMD đang ở đâu trên lĩnh vực này? Điều này lại một lần nữa liên quan đến thiết kế GPU. Tính toán vật lý ( đặc biệt là PhysX ) rất cồng kềnh. Trên GPU AMD, bộ mã cồng kềnh này lại bị giới hạn trong số lượng Shader xử lí sẽ làm giảm nghiêm trọng tốc độ Game, khiến việc áp dụng nó rất khó trên GPU AMD. Sự hợp tác của OpenCL và AMD với các nhà phát triển như Bullet sẽ giúp đưa PhysX ra thị trường, nhưng khó mà gỡ được nền tảng mã đã xác lập, đặc biệt là khi NVIDIA sẵn sàng (và có thể) đầu tư tiền của và nguồn lực vào việc giúp các nhà phát triển Game lập trình sản phẩm của họ. 

Tuy nhiên, thế trận đang từ từ thay đổi; AMD vừa nhận được 1.4 tỉ đô để giúp họ trả một nửa số nợ, đồng nghĩa với việc họ có thể đầu tư nhiều hơn vào việc phát triển và vào các chương trình hợp tác như ATI đã từng làm. Một khi đã quay trở lại, rất có thể số Game được tối ưu hóa cho GPU AMD sẽ nhiều hơn so với NVIDIA. Việc chuyển sang khối mã nhỏ hơn sẽ không khó lắm, nhưng cũng mất thời gian. Ít nhất phải một năm nữa, và từ giờ cho đến lúc đo NVIDIA sẽ có câu trả lời. 

Lời cuối

Có thể thấy tuy cùng là  GPU nhưng NVIDIA và AMD có rất nhiều điểm khác biệt cơ bản cho biết khả năng chơi Game trên từng GPU của hai công ty này. 

Hiện tại, việc sở hữu các nhân đa dụng chắc chắn là tốt hơn so với việc giới hạn số lượng và loại câu lệnh dùng được với số lượng Shader sẵn có. 

Tuy nhiên, có vẻ như AMD/ATI luôn cao tay hơn xét về chất lượng hình ảnh nói chung, mặc dù việc thực hiện các ý tưởng và phương hướng mới gần đây của AMD khá nghèo nàn và cần cải thiện nhiều. Nhưng họ cũng có những bộ óc rất sáng giá và chắc chắn dòng 5xxx mới sẽ là một sản phẩm tuyệt vời. Chỉ có điều, AMD sẽ chỉ bắt kịp xu hướng chung nếu sẵn sàng hợp tác chặt chẽ hơn với các nhà phát triển. 

 \"\"