Log in

View Full Version : AMD Radeon HD 7970: Tướng mới của "Quân đoàn đỏ" (Phần 1)


Romano
01-03-2012, 20:42
Vậy là AMD, một công ty chuyên về chip x86 lẫn đồ hoạ, vừa tung ra đại diện đầu tiên cho ḍng sản phẩm Radeon HD 7000, tức HD 7970. Tuy rằng cho đến lúc này, người tiêu dùng vẫn chưa thể mua được HD 7970, nhưng model này là một bước tiến lớn cho mảng đồ hoạ nói riêng và toàn bản thân công ty nói chung.

http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/HD-7970-3rd_51ec4.png


Trong phạm vi bài này, chúng ta sẽ bàn sơ qua về kiến trúc của Tahiti, con chip tạo nên sức mạnh cho chiếc card HD 7970. Phía sau Tahiti là kiến trúc GCN (Graphics Core Next), một phần quan trọng của kiến trúc Fusion - FSA (Fusion System Architecture) mà AMD "thai nghén" từ 2006 khi quyết định mua lại ATI - tiền thân của bộ phận đồ hoạ bên AMD hôm nay.
Lược sử card đồ hoạ
Nhưng trước khi bàn về kiến trúc GCN hay kiến trúc của Tahiti, chúng ta sẽ điểm qua sơ lược một vài kiến trúc đồ hoạ mà AMD đă từng dùng trong quá khứ, để hiểu được tại sao hăng này đă nghĩ ra GCN và vai tṛ chính của GCN là ǵ.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GPU-Gen-1_ef03f.jpg
http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GPU-Gen-1-cont_869f8.jpg

Trong một thời gian dài, card đồ hoạ chỉ là một thiết bị xử lư các ma trận h́nh ảnh và tạo hướng ánh sáng, với các hàm chức năng cố định (fixed function). Các đơn vị này, về cơ bản là để dựng lên các khối 3D đơn giản. Đây là thế hệ card đầu tiên.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GPU-Gen-2_bb7c1.jpg
http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GPU-Gen-2-cont_2dc57.jpg

Về sau, khi yêu cầu về chất lượng h́nh ảnh tăng lên, người ta không chỉ cần khả năng tạo h́nh 3D mạnh mẽ, mà c̣n đ̣i hỏi h́nh ảnh phải có tính "thực", có "độ trong suốt", "mềm mại" ... Thế là shader nhập cuộc, với 3 loại chính gồm vertex shader (tạo đỉnh, điểm), geometry shader (tạo đường thẳng, mặt phẳng) và pixel shader (tính toán màu sắc, vật liệu, đổ bóng ... cho từng pixel). Các shader này tuy là một tiến bộ dài với card đồ hoạ, song chúng vẫn là các đơn vị riêng biệt (fixed). Loại card đồ hoạ này gắn liền với bộ DirectX (DX) 9.0c trở về trước.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GPU-Gen-3_e2d54.jpg

Do từng shader đảm nhiệm một nhiệm vụ riêng, chúng không thể hỗ trợ nhau trong quá tŕnh xử lư h́nh ảnh được. Ví dụ vertex shader chưa "tính" xong các điểm th́ geometry shader không thể "nối" các điểm lại với nhau được, dĩ nhiên là pixel shader cũng không có đa giác nào để "vẽ vời" vào bên trong cả. Nói cách khác th́ ở thế hệ card thứ 2, có hiện tượng "nghẽn" / "chờ" giữa các đơn vị riêng và do đấy, làm giảm hiệu suất xử lư. Thế hệ card thứ 3 ra đời với thay đổi chính là hợp nhất vai tṛ của từng shader - chúng ta có unified shader. Thế hệ card này cũng đồng thời đánh dấu sự ra đời của DX 10 với 2 ḍng sản phẩm nổi bật là Radeon HD 2000 và GeForce 8000.


Thế hệ thứ ba của AMD


Với AMD, thế hệ card thứ 3 của hăng này có 2 kiến trúc "con" : VLIW5 & VLIW4, gọi chung là VLIW. Mỗi nhân (stream processor hay SP hay shader core) VLIW5 cho phép xử lư cùng lúc 5 lệnh khác nhau(4 lệnh thường và 1 lệnh đặc biệt). C̣n nhân VLIW4 cho phép xử lư 4 lệnh thường hoặc 1 lệnh đặc biệt. VLIW4 được AMD đưa ra để thay thế VLIW5.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GPU-Gen-3-cont_ba9f3.jpg
http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GPU-Gen-3-cont-2_73ff2.jpg

Thoạt nghe bạn sẽ thấy lạ : tại sao AMD lại giảm khả năng xử lư của từng SP xuống ? Thực tế không phải vậy. Thực tế là kiến trúc VLIW5 không được nhiều ứng dụng (game) tận dụng triệt để. Theo ghi nhận của AMD, trung b́nh chỉ có 3,4 / 5 lệnh được khai thác. Điều này có nghĩa thường có 1 / 5 đơn vị con (SPU) trên mỗi SP bị "bỏ phí", và đơn vị này lại là đơn vị xử lư lệnh đặc biệt kia - vốn tốn nhiều silicon để thiết kế hơn 4 đơn vị c̣n lại. V́ thế mà AMD đă bỏ SPU đặc biệt này đi, chỉ duy tŕ 4 SPU thường (khi cần xử lư lệnh đặc biệt sẽ huy động 3 SPU thường để làm). Việc này giúp AMD "tiết kiệm" silicon trong khi thiết kế chip, hoặc để AMD dùng lượng "thừa" trên cho các việc khác.

http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-VLIW4-vs-VLIW5_9bc24.png
So sánh giữa kiến trúc VLIW4 và VLIW5.


Kiến trúc VLIW4 thực chất là phiên bản tối ưu lại hiệu suất xử lư trên từng SP của AMD. Nhưng dù vậy, nó vẫn chưa khắc phục được một nhược điểm : phù hợp cho loại h́nh điện toán khác (GPGPU).



GCN - Sinh ra cho GPGPU


Một vài bạn đọc có thể từng qua thuật ngữ GPGPU, tức điện toán dựa trên GPU. Hầu như mọi loại h́nh điện toán ngày nay đều dựa trên CPU, với mỗi kiến trúc (MIPS, ARM, x86, Power, SPARC ...) có thế mạnh riêng. GPU xét theo một ngữ nghĩa nào đấy cũng khá giống các con chip trên. Tuy vậy khác biệt chính yếu ở chỗ : CPU ra lệnh (và có thể xử lư), GPU chỉ thuần (nhận lệnh) xử lư. Tức về cơ bản, muốn dùng GPU để tính toán vẫn phải có ít nhất một nhân CPU.



Và điều này có ư nghĩa ǵ với AMD ? Trong chiến lược phát triển của hăng này, điện toán phức hợp (heterogenous computing) là cái đích ngắm đến về mặt lâu dài, tức vai tṛ của GPU sẽ ngày càng quan trọng hơn. Đấy là lư do AMD mua lại ATI để phát triển ra Fusion. Nhưng tận dụng GPU để tính toán không phải là chuyện một sớm chiều. Các kỹ sư ATI cần "làm quen" với kiến trúc x86 và các kỹ sư AMD cần "làm quen" với kiến trúc GPU. Điều này cần một thời gian dài.


Nhưng khi nghiên cứu cùng lúc 2 loại kiến trúc khác nhau, dĩ nhiên phải có một kiến trúc đóng vai tṛ chủ đạo. Nói ǵ th́ nói, CPU (x86) vẫn là nền tảng chính của PC hôm nay. Do vậy GPU phải tiến hoá theo hướng càng "gần gũi" với CPU càng tốt. Và GCN chính là sản phẩm của quá tŕnh ấy.


Những card Radeon dựa trên kiến trúc VLIW, mặc dù có sức mạnh tính toán vô cùng lớn, song kiến trúc VLIW về cơ bản khó dùng đối với các lập tŕnh viên. Các mă lập tŕnh thông thường khi áp dụng cho VLIW tốn rất nhiều thời gian để code lại. Mà điều này lại không gây "hứng thú" cho giới phần mềm. V́ phải tốn nhiều công mà doanh thu đem về chưa chắc đă đủ bù chi : không phải chiếc PC nào cũng dùng card Radeon để có thể tận dụng được chúng.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GCN-CU-Architect_dd522.jpg
GCN ra đời để khắc phục nhược điểm của VLIW : Thân thiện hơn với giới lập tŕnh.



Cũng cần nói thêm : đối thủ đồ hoạ của AMD - NVIDIA - cũng nhận biết điều này từ lâu. Kiến trúc Fermi hiện đang dùng cho ḍng sản phẩm GeForce 400 & 500 vốn được thiết kế cho GPGPU. Nhưng NVIDIA không có được lợi thế mà AMD đang có : kiến trúc x86. Intel không cho phép NVIDIA sử dụng kiến trúc của ḿnh trong sản phẩm của NVIDIA. Do vậy mà Fermi (và các kiến trúc sau này) thiếu các khả năng làm việc chung với các chip x86 (con trỏ, bộ nhớ ảo, IOMMU ...). GCN khắc phục luôn các thiếu sót trên.



ALU Vector thay cho VLIW



Nếu bạn để ư, chiếc card HD 6970 được quảng cáo có 1536 nhân xử lư ḍng (SP) c̣n HD 7970 là 2048 SP th́ có thể bạn sẽ nghĩ : AMD chẳng làm ǵ ngoài việc "bơm" thêm nhân xử lư vào chiếc card mới, các nhân xử lư cơ bản chẳng có ǵ mới.


Suy nghĩ này có 1/2 đúng và 1/2 không : đúng ở vế AMD "bơm" thêm SP nhưng không đúng ở vế các SP không có ǵ mới. Các SP trên HD 7970 thực sự không giống với SP trên HD 6970 hoặc thậm chí là HD 2000, 3000, 4000, 5000 (các ḍng sản phẩm này đều dùng chung một dạng SP - VLIW). SP trên HD 7970 là các ALU tính toán vector (từ đây bạn có thể hiểu 1 ALU = 1 SP cũng được).

http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GCN-CU-SIMD_74592.png
Cấu tạo một SIMD trên kiến trúc GCN.

Trên chip Tahiti, cứ 16 SP sẽ hợp lại thành 1 đơn vị Vector SIMD, 16 SP này chia sẻ chung một bộ nhớ thanh ghi (Register File) có dung lượng 64 KB. Nhưng Vector SIMD tự thân nó không thể làm việc được mà phải lên một cấp cao hơn : Compute Unit (CU) hay GCN.

http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AMD-GCN-CU_277ab.jpg
4 SIMD và 1 Scalar hợp thành 1 CU.

Cứ 4 SIMD (hay 64 SP) và 1 đơn vị Scalar (dùng cho các tính toán đặc biệt) sẽ là hạt nhân xử lư cho 1 CU. Mỗi CU sẽ có các thành phần nạp lệnh (fetch instruction, control, decode) & tiên đoán (branch, message) riêng, dữ liệu được xử lư cơ bản sẽ được trả về bộ nhớ đệm L1 Data có dung lượng 16 KB. Tất cả dữ liệu từ L1 Data sẽ được "dồn chung" vào bộ đệm L2.


Chiếc card dùng phiên bản chip Tahiti "hoàn chỉnh" nhất (không bị lỗi), tức HD 7970 sẽ có 32 CU, ứng với 32 x 4 x 16 SP = 2048 SP. Các phiên bản cấp thấp hơn như HD 7950 và 7890 sẽ có một số CU "lỗi" không dùng được và mặc định sẽ bị AMD "khoá lại" khi xuất xưởng. Tuy vậy một số người dùng cao cấp với hiểu biết tương đối về card đồ hoạ có thể "mở khoá" được các nhân đồ hoạ lỗi trên và dùng chúng như phiên bản "hoàn chỉnh". Đây cũng là nguyên nhân mà sản phẩm của AMD nổi tiếng với phong trào "unlock".

http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/Tahiti-block-diagram_09d29.jpg
Cấu tạo một chip Tahiti hoàn chỉnh gồm 32 CU (GCN), 32 ROP và 128 TMU.

Quay lại với thiết kế Tahiti, phần xử lư "hậu kỳ" (AA, AF, render, bề mặt h́nh ảnh ...) sẽ được đảm nhận bởi 32 đơn vị ROP và 128 đơn vị TMU. Nói về nhóm đơn vị này, AMD đă có thay đổi về thiết kế so với "truyền thống" VLIW : số lượng các TMU, ROP sẽ đi liền với số lượng CU thay v́ lượng MC (tŕnh điều khiển nhớ hay memory controller) như trước đây - 1 CU đi với 1 ROP và 4 TMU. Việc AMD "tách nhóm" ROP / TMU / L2 Cache trên Tahiti cho thấy vai tṛ của băng thông nhớ đang ngày càng quan trọng hơn (HD 6970 thực tế chỉ có 4 MC tương đương với bề rộng nhớ 256-bit).



Hiệu năng GPGPU thực tế

Do bài viết này tập trung vào điểm mới nhất của HD 7970 là kiến trúc GCN, tức năng lực GPGPU, nên ở đây tôi chỉ đi vào các phép benchmark năng lực điện toán (năng lực đồ hoạ / chơi game sẽ thuộc về một bài viết khác). Tôi mượn lại các kết quả benchmark từ AnandTech và Tom's Hardware để làm rơ thêm vấn đề.

Tuy nhiên, trước khi bạn đưa ra lời phán xét, hăy lưu ư rằng GPGPU chỉ mới nổi lên vài năm trở lại đây. Với toàn bộ nền công nghiệp ICT, GPGPU vẫn c̣n khá mới mẻ và cần hoàn thiện thêm. Hiệu năng của một kiến trúc sẽ bị ảnh hưởng lớn bởi khả năng tối phần mềm, tŕnh biên dịch (compiler) cũng như tŕnh điều khiển (driver) thiết bị.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/TomBitmining_5163d.p ng

Bitmining là một ứng dụng thuần "cơ bắp" : càng nhiều nhân xử lư th́ tốc độ càng cao. Bitmining là nơi cho những chiếc card Radeon khoe mẽ v́ lượng SP luôn áp đảo so với các đại diện của NVIDIA. Và trong trường hợp này, HD 7970 hơn được 2 đàn anh là nhờ lượng SP cao hơn : 2048 vs. 1536 vs. 1600 SP (chú ư là xung của HD 7970 cũng cao hơn).


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/TomLuxmark_a53a9.png

Nếu Bitmining không cho thấy GCN ưu việt hơn VLIW th́ với LuxMark, mọi thứ hoàn toàn gây bất ngờ. LuxMark không chỉ "thiên vị" các model Radeon mà c̣n cho thấy GCN thực sự hiệu quả trong mảng GPGPU, nếu phần mềm được tối ưu tốt cho kiến trúc.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/TomOpenCL-FX_39f77.png
http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/TomOpenCL-Particles_6831b.png

GPU Caps Viewer là một ứng dụng được viết trên nền OpenCL. Và ban đầu được chính NVIDIA phát triển. Bạn có thể thấy HD 6970 hoàn toàn thua kém trước GTX 580 ở benchmark này. Tuy vậy với thử nghiệm PostFX, GCN một lần nữa lại gây bất ngờ. Trong khi đó th́ thử nghiệm Particles lại giống với Bitmining, chỉ khác là phần thắng nghiêng về NVIDIA.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/TomNQueen_04b9f.png

Romano
01-03-2012, 20:42
Nqueen là một benchmark thiên về khả năng rẽ nhánh và tiên đoán số liệu. Benchmark này nhằm tính toán số nước cờ mà 1 quân hậu có thể đi được trên một bàn cờ có 8 hậu theo đúng luật cờ vua. Hiệu năng sẽ được đo bằng lượng thời gian bỏ ra để tính (càng thấp càng tốt). Các thay đổi về đơn vị rẽ nhánh trên GCN lại chứng tỏ tính ưu việt hơn so với VLIW.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/TomOpenCL-Compute_5cb09.png

Nhưng không phải lúc nào mọi thứ cũng tốt như mong đợi. DirectComputeBenchma rk là ví dụ cho một kiến trúc mới không hiệu quả cho các ứng dụng cũ. Điểm số HD 7970 thấp hơn các đàn anh mặc dù có lượng SP cao hơn đôi khi có thể do driver cho chiếc card mới vẫn chưa hoàn chỉnh.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AnandSmallLux-GPU_d9ff5.png
http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AnandAES_d2fbd.png
http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AnandCiV-5_79753.png
http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AnandDX-11-Compute_8f90d.png
http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/AnandMonte-Carlo_0e430.png

Các benchmark c̣n lại do AnandTech thực hiện cho kết quả cũng tương tự với Tom. Và đáng chú ư là trong vài trường hợp, ngay cả chiếc card 2 chip GTX 590 (kiến trúc Fermi) vẫn bị HD 7970 (kiến trúc GCN) cho "ngửi khói". Riêng benchmark Fluid Simulation chạy trên nền DX 11 là một trường hợp thú vị : ứng dụng này ưu ái kiến trúc Fermi hơn, kể cả khi thực hiện ḍ t́m trên toàn hệ thống (Grid Search), nhưng khi cần tính toán rẽ nhánh để t́m ra các điểm gần nhất (N^2) th́ GCN lại cực kỳ ấn tượng.



Sơ kết


Việc ra mắt một kiến trúc mới không phải lúc nào cũng tốt như mong đợi, điều mà chúng ta đă đôi lần chứng kiến khi AMD ra mắt VLIW lần đầu 5 năm trước với ḍng card HD 2000, hoặc như gần đây nhất là kiến trúc Bulldozer với ḍng chip FX. Nhưng lần này là một trường hợp khác. GCN tuy vẫn c̣n rất mới (cần tối ưu thêm phần mềm, driver ...) nhưng đă cho thấy năng lực GPGPU cực kỳ mạnh mẽ, không chỉ so với VLIW mà nhiều / đôi khi hơn hẳn cả sản phẩm của đối thủ.


http://genk2.vcmedia.vn/N0WoyYblO3QdmZFKPMtK nadHAHTevz/Image/2011/HD-7970-Front_16013.png

Lẽ dĩ nhiên GCN không phải vượt trội hoàn toàn, và bạn sẽ thấy điều này khi xem xét điểm số benchmark game (HD 7970 vẫn mạnh hơn HD 6970 nhưng không tới "x2" như trên GPGPU). Nhưng GCN rơ ràng là một thắng lợi cho AMD khi vừa muốn có hiệu năng game tốt, vừa có khả năng điện toán cực mạnh.
Ở bài sau chúng ta sẽ đi vào năng lực đồ hoạ / game của HD 7970, hay con chip Tahiti, bản silicon đầu tiên dùng kiến trúc GCN của AMD.
cnet