Để giúp các bạn hiểu rõ hơn sự khác biệt của hai loại card này, chúng
tôi đưa ra bản dịch tài liệu Quadro vs Geforce của NVIDIA. Tài liệu này
được công bố năm 2003, tuy nhiên đến hiện tại nó vẫn có giá trị. Vì tài
liệu được công bố khá lâu trước đây, nên chúng tôi sẽ chỉ trích dẫn
nhưng thông tin vẫn còn giá trị đến hiện thời.
Sau đây là các điểm khác biệt chính trong phần cứng của hai loại card làm cho giá của hai loại này khác biệt nhau:
1. Tính năng khử răng cưa cho các đường thẳng và điểm.
Đa phần người dùng các phần mềm đồ họa đều đã có hiểu biết nhất định
về hiện tượng răng cưa của hình ảnh trên màn hình máy tính, vì vậy chúng
tôi sẽ không giải thích thêm về hiện tượng này.
Card quadro hỗ trợ tính năng khử răng cưa ngay từ phần cứng. trong khi card chơi game thì không hỗ trợ tính năng này.
Vì được xử lý từ phần cứng nên khi so sánh với card chơi game thông
thường, tính năng này giúp tăng tốc đáng kể quá trình hiển thị các khung
dây trong màn hình thao tác của các phần mềm thiết kế kĩ thuật và mỹ
thuật. Phương pháp hiển thị dạng khung dây là cách để người thiết kế
quan sát các cấu trúc bên trong vật thể và nó là một trong những thủ tục
được sử dụng khá nhiều trong quá trình làm việc với các phần mềm đồ họa
CG.
Bên trái là sự hiển thị của hình ảnh chưa khửa răng cưa và bên phải là đã được khử răng cưa.
Hình minh họa khi sử dụng và không sử dụng khử răng cưa cho các chương trình đồ họa.
2. Thuật toán logic.
GPU của card workstation hỗ trợ các thuật toán logic của openGL ngay từ phần cứng.
Các thuật toán logic này nằm ngay cuối cùng các giai đoạn xử lý trước
khi ghi vào bộ nhớ đệm Frame buffer và hiển thị ra màn hình, các thuật
toán này giúp cho việc tính toán để quyết định vật nào không bị che lấp
và sẽ hiển thị, vật nào bị che khuất và không hiển thị, tạo đường đứt
nét thể hiện vật thể khuất, làm sáng lên các vật thể được chọn bằng con
trỏ chuột v.v… Chính việc hỗ trợ từ phần cứng thuật toán logic open GL
tạo ra ưu thế của GPU workstation so với card chơi game trong các phần
mềm sử dụng engine openGL.
Chu trình xử lý của openGL, chi tiết tham khảo thêm tài liệu The OpenGL programming guide.
Các phần mềm đồ họa đa phần đều sử dụng openGL để hiển thị các đối
tượng trên màn hình bao gồm cả các phần mềm hỗ trợ thiết kế cơ khí MCAD
(mechanical computer-aided design) và các phần mềm tạo nội dung số DCC
(digital content creation).
Một số ví dụ về phần mềm MCAD như: inventor, Catia, Cimatron, Proengineer v.v…
Một số ví dụ về phần mềm DCC như: 3Dmax, cinema 4D, Maya .v.v…
3. Clip region
Đối với các card được thiết kế để chơi game, khi bạn chơi một game,
thông thường game đó sẽ choán toàn bộ vùng hiển thị màn hình ở chế độ
full screen. Tuy nhiên trong môi trường làm việc, thông thường bạn phải
làm việc với nhiều cửa sổ chương trình, nhiều hộp thoại, các cửa sổ
bung ra (pop up). Chính vì vậy lượng thông tin ghi vào bộ nhớ đệm khung
hình frame buffer sẽ bị quá tải và ảnh hưởng đến hiệu năng.
Card workstation hỗ trợ tính năng clip region từ phần cứng
Tính năng Clip region là tính năng sẽ quyết định: nếu cửa số chương
trình không bị che bởi cửa sổ khác thì toàn bộ thông tin vùng hiển thị
của nó từ bộ nhớ mầu color buffer sẽ gửi tới bộ nhớ đệm khung hình Frame
buffer. Còn nếu nó bị che bởi các cửa sổ khác thì phần không bị che sẽ
bị chia nhỏ ra thành các vùng vuông nhỏ hơn và gửi tới bộ nhớ đệm khung
hình Frame buffer. Việc này làm giảm lượng dữ liệu gửi tới bộ nhớ đệm.
Các ô vuông nhỏ hơn đó gọi là clip region. Card chơi game chỉ cần quản
lý một phần mềm đó là game đang chơi, vậy nên nó chỉ hỗ trợ một clip
region. Trong khi card Workstation có thể lên đến 8 clip region
4. Clip plane
Card workstation hỗ trợ tăng tốc từ phần cứng đối với tính năng clip plane
Tính năng clip plane là một tính năng được sử dụng rất nhiều trong
các chương trình CAD chuyên nghiệp, nó cho phép người dùng định nghĩa
một mặt cắt để cắt vật thể ra và nhìn vào bên trong cơ cấu của nó. Việc
hỗ trợ từ phần cứng giúp tăng tốc đáng kể đối với card workstation trong
các tính năng cụ thể này.
5. Quản lý và tối ưu hóa sử dụng bộ nhớ RAM.
card workstation cho phép quản lý bộ nhớ và chia sẻ bộ
nhớ giữa phần mềm làm việc hiện hành và các ứng dụng khác một cách hiệu
quả hơn. Trong khi card định hướng cho các game thường chỉ
phải quản lý một phần mềm duy nhất, đó chính là game đang chơi ở chế độ
full màn hình nên không cần phải tối ưu tính năng chia sẻ tài nguyên bộ
nhớ.
Trong các tình huống nhu cầu sự dụng bộ nhớ ở mức bình thường.
Cấu trúc của GPU workstation NVDIA sử dụng một loại bộ nhớ chia sẻ
chung có tốc độ cao chuyên dụng gọi là Unified Memory Architecture
(UMA). UMA chứa rất nhiều loại bộ nhớ đệm đồ họa như bộ nhớ đệm khung
hình, bộ nhớ đệm vân, và dữ liệu. So sánh với các GPU khác chúng sử dụng
các bộ nhớ riêng rẽ cho các bộ đệm khung hình, vân và danh sách hiển
thị. Cách tiếp cận của nvidia có ưu thế hơn ở chỗ nó sẽ tận dụng tối đa
nguồn lực phần cứng. Khi một bộ đệm không sử dụng hết bộ nhớ thì rõ ràng
phần bộ nhớ còn thừa sẽ dùng cho bộ đệm khác chứ không để lãng phí và
không dùng đến (điều này thường gắp trong các tình huống sử dụng bộ nhớ ở
mức thông thường).
Trong cá tình huống yêu cầu bộ nhớ nhiều.
Trong một số tình huống, khi phần mềm yêu cầu nhiều bộ nhớ hơn, chẳng
hạn như tình huống hiển thị 3D, phần mềm phải tạo ra thông tin hình ảnh
ở hai góc nhìn khác nhau (quad – buffered stereo) thì bộ nhớ cho mỗi bộ
đệm tăng lên gấp đôi, cũng có nghĩa là ở các GPU khác phần thừa cho bộ
nhớ của mỗi bộ đệm cũng tăng lên gấp đôi, số tiền lãng phí cho bộ nhớ
thừa không được sử dụng này cũng tăng lên gấp đôi. Nhờ sử dụng UMA nên
quadro giúp hạn chế việc lãng phí này không bị nhân đôi lên.
Một tính năng khác cũng làm tăng đáng kể yêu cầu bộ nhớ đó là khử
răng cưa ở chế độ toàn màn hình. Tính năng này hay được dùng ở các phần
mềm mô phỏng hình ảnh (mô phỏng dòng chảy, động đất, bão, v.v..). Ngoài
ra việc mở nhiều cửa sổ chương trình chạy cùng lúc cũng làm tăng đáng kể
nhu cầu sử dụng bộ nhớ đồ họa (điều này rất thường thấy ở các ứng dụng
chuyên nghiệp. Cơ chế quản lý tối ưu hóa việc sử dụng bộ nhớ của Quadro
rất quan trọng đối với các phần mềm, vì nó chẳng những xắp xếp hiệu quả
việc sử dụng bộ nhớ ở mức yêu cầu cao mà còn tránh lãng phí tài nguyên
phần cứng đắt đỏ ở mức nhu cầu thấp.
Cơ chế quản lý bộ nhớ của quadro giúp sử dụng bộ nhớ hiệu quả hơn và
giúp tránh hiện tượng sụt giảm nghiêm trọng hiệu năng sử dụng cũng như
bị out chương trình do quá tải bộ nhớ đồ họa (có thể xảy đến với card
consumer).
Cơ chế này sẽ theo dõi số phần mềm sử dụng bộ nhớ đồ họa, độ phân
giải màn hình đang sử dụng, v.v… ngay khi có sự tăng yêu cầu sử dụng bộ
nhớ, nó sẽ giới hạn các yếu tố cần thiết như: vùng hiển thị openGL ở độ
phân giải 600×600 bất kể độ phân giải màn hình hiện tại, hoặc giảm kích
cỡ của tam giác ở mức 1 pixel(các hình khối 3D bị giới hạn bởi bề mặt
nối bởi các tam giác cơ sở) để tránh làm ảnh hưởng đến tốc độ điền đầy
khung hình.
6. Chiếu sáng hai chiều.
Các GPU quadro hỗ trợ chiếu sáng hai chiều
Vật thể 3D trong môi trường máy tính được đặc tả bới một loạt các tam
giác trên bề mặt và các vector pháp tuyến của các tam giác đó. Sau đó
sẽ gán vào một hệ tọa độ ba chiều và chiếu lên một mặt phẳng hiển thị 2D
đưa ra màn hình.
Các thành phần của ánh sáng
Mầu sắc của một điểm hiển thị trên màn hình sẽ bị ảnh hưởng bởi các
phép tín toán ánh sáng mô phỏng môi trường thực. Các phép toán về ánh
sáng sử dụng ba thành phần để mô phỏng vật thể trông như thế nào trong
môi trường thực tế:
Ambient: có thể tạm hiểu là đặc tả hình dạng bao của vật thể, nó không bị ảnh hưởng bởi góc nhìn hay phương vị của nguồn sáng.
Diffuse: diễn tả các vùng trên vật thể sẽ được chiếu sáng hoặc không
bị chiếu sáng tùy theo góc độ và khoảng cách đến nguồn sáng mà không phụ
thuộc vào góc độ của người quan sát.
Specular: mô tả các vùng trên vật thể bị chiếu sáng nhưng bị ảnh
hưởng cả bởi yếu tố phương vị so với nguồn sáng và phương vị so với
người quan sát (hiểu nôm nà đây chính là các vệt phản chiếu, tùy vào
tính chất bề mặt vật thể nó sẽ rõ hoặc mờ, rộng hoặc hẹp).
Ba yếu tố cơ bản trên kết hợp lại tạo ra hình ảnh của vật thể tương tự như trong môi trường thật.
Để tối đa hóa độ trung thực, sự phân phối giữa ba yếu tố trên sẽ được
điều chỉnh. Chế độ mặc định của OpenGl phân phối 20 phần trăm cho
ambient, 100 phần trăm cho cả Diffuse và specular. Do đó diffuse và
specular luôn chiếm phần nhiều hơn so với ambient. Tuy nhiên thật không
may là tỉ lệ này và giả định trong các phép tính chiếu sáng có thể gây
ra vài vấn đề về hiển thị trực quan.
Các vấn đề hiển thị trực quan.
Khi vật thể được xoay trong môi trường 3 chiều, các vector pháp tuyến
của tam giác hoặc bề mặt đôi khi quay ngược lại so với chiều ánh sáng,
phép tính chiếu sáng sử dụng tích vô hướng của vector ánh sáng và vector
pháp tuyến bề mặt để tính ra thành phần diffuse và specular. Trong tình
huống này kết quả của hai yếu tố diffuse và specular sẽ bằng 0. Trong
thế giới thực, điều này tương tự như dùng tờ báo che mặt trời. Khi bạn
làm vậy, bạn không thể đọc được tờ báo.
vì diffuse và specular thường lớn hơn thành phần ambient cho nên khi
chúng bằng 0, các bề mặt và tam giác trở nên mờ đi, hoặc là thậm chí
không hiển thị ra nữa, Điều này làm cho khi bạn xoay một vật thể trong
môi trường 3D nó làm cho các phần của vật thể có thể hiển thị, không
hiển thị hoặc rất đục khi xem ở các góc nhìn khác nhau. Rõ ràng điều này
không diễn tả chính xác những gì diễn ra ở thế giới thực.
Giải pháp cho vấn đề này là
Sử dụng hai nguồn sáng. Khi chức năng hai nguồn sáng được kích hoạt,
phép tính chiếu sáng sẽ dùng độ lớn của tích vô hướng thay vì sử dụng
tích vô hướng của vector pháp tuyến và vector ánh sáng để tính thành
phần specular và diffuse. Cách tiếp cận này giúp tránh hiện tượng
specular và diffuse bị rớt về 0 những lúc mà vector pháp tuyến bề mặt
ngược chiều ánh sáng.
Kết quả là các mặt sau của bề mặt và tam giác vẫn có thể hiển thị
thông qua mọi góc nhìn. Trong nhiều trường hợp, giống như trong các ứng
dụng CAD, đối tượng được tạo ra dưới dạng solids. Điều này có nghĩa là
bề mặt sau của các đa giác ít khi được thấy hơn bởi vì nó nằm bên trong
vật thể.
Tuy nhiên trong nhiều trường hợp, thử tưởng tượng, vật thể không được
tạo ra như một khối solid và bề mặt sau có thể thấy được thì tính năng
two-side lighting được dùng để chống hiện tượng bề mặt không hiểu thị
tại những góc nhìn nhất định (hiện tượng này bạn rất hay thấy khi chơi
game với các card chơi game thông thường, khi bạn đưa camera vào bên
trong một bề mặt, tại những chỗ nhất định trông như nó bị thủng ra do
các đa giác tại đó không hiển thị).
Khi tính năng hai nguồn sáng không được sử dụng phần khoét rỗng (clip plane) của cái ấm sẽ như thế này
Nếu có tính năng hai nguồn sáng bạn sẽ quan sát được bên trong cái ấm qua lỗ khoét rỗng (clip plane).
7. Tính năng xử lý sự chồng lấp các mặt phẳng đồ họa (overlay plane).
Giao diện người dùng của đa phần các phần mềm yêu cầu tính năng này vẽ liên tục bên trên các mô hình 3D hoặc khung cảnh
Vấn đề về con trỏ.
Ví dụ rõ ràng nhất là con trỏ, nó phải được vẽ ra ở lớp bên trên các
vật thể 3D và cửa sổ chương trình. Con trỏ có phần cứng riêng cho phép
nó di chuyển và tương tác với vật thể 3D và hoạt động độc lập với các
thành phần khác trên màn hình.
Tuy nhiên đổi lại là kích thước của con trỏ bị giới hạn ở mức 32×32 pixel. Nếu kích cỡ lớn hơn nó sẽ gây sụt giảm hiệu năng.
Vấn đề về các trình đơn.
các menu trình đơn xổ ra ngay bên trên cửa sổ OpenGL nó có thể làm
cho các nội dung mà nó che đi bị hỏng. Và có thể thấy rõ chúng ảnh hưởng
đến hiệu năng. Đó là bởi vì nội dung các trình đơn xổ ra này bị gi đè
lên một cách tạm thời vào vùng mà nó che đi. (bạn thấy rõ điều này khi
đang chơi game 3D full màn hình với card consumer mà có ai đó buzz
yahoo, cửa sổ chat của yahoo bung ra làm cho nội dung game dưới cửa sổ
đó bị mất đi, chỉ còn lại vệt đen, hiệu năng game lúc đó cũng bị suy
giảm nghiêm trọng, nhiều hàng game thậm chí tháo cả nút window trên bàn
phím để tránh bấm nhầm vào khi đang chơi game)
Các thành phần giao diện cần phải tăng tốc độ tương tác với người
dùng khi nó vẽ bên trên các đối tượng 3D. Tuy nhiên các thành phần của
giao diện người dùng (ví dụ như các cửa sổ, trình đơn nằm bên trong một
hình vuông) thường là lớn hơn nên nó không thể sử dụng cách thức của con
trỏ được. Điều này làm cho cấu trúc của chương trình trở nên phức tạp
làm cho hiệu năng chung bị tụt giảm.
Giải pháp cho vấn đề chồng lấp giữa các thành phần giao diện người dùng với nội dung đồ họa 3D.
Có nhiều cách để giải quyết vấn đề này, như sử dụng các thuật toan
logic XOR của OpenGL, hầu hết các ứng dụng chuyên nghiệp dùng overlay
planes. Tính năng này cho phép các đối tuượng được vẽ bên trên màn hình
đồ họa chính mà không làm tổn hại các nội dung bị che lấp bên dưới. Tuy
nhiên số Bit mầu để vẽ thường bị giới hạn hơn màn hình đồ họa chính. Tuy
nhiên lợi thế về hiệu năng vẫn đủ để bỏ qua sự giới hạn về số bit mầu
bị giới hạn.
cách thức hoạt động tiêu biểu của overlay đó là hỗ trợ cả bit trong
suốt, khi được thiết lập nó cho phép các nội dung bên dưới có thể được
nhìn xuyên qua vật che lấp. Tạo ra các menu popup trên mặt phẳng đồ họa
overlay sẽ đảm bảo hiệu năng và tránh gây tổn hại nội dung 3D bên dưới.
Như thế, việc xóa một cửa sổ chồng lấp chẳng qua là chuyển nó thành các
bit trong suốt và cho phép nhìn thấy vùng đồ họa bên dưới mà không phải
vẽ lại vùng đồ họa bên dưới bị che lấp. Xóa và vẽ lại chỉ các cửa sổ
chồng lấp rõ ràng nhanh hơn vẽ lại cả màn hình hiển thị. Đó là cách mà
các đối tượng giao diện người dùng hiển thị bên trên các khung cảnh 3D.
Ví dụ con trỏ hình cầu được vẽ trên mặt phẳng đồ họa ovelay nằm bên trên khung cảnh 3D.
Card workstation hỗ trợ overlay trong khi card chơi game không suport overlay
8. Hỗ trợ Quad-Buffered Stereo.
Card quadro hỗ trợ quad-bufered stereo trong khi các card chơi game không hỗ trợ.
Một số phần mềm hỗ trợ tạo ảnh nổi để người xem quan sát thông qua
loại kính đặc biệt (màn trập). Việc tạo ảnh nổi này đòi hỏi phải tạo ra
hình ảnh của vật thể từ hai góc nhìn khác nhau. Một trong những cách hay
được sử dụng để tạo ảnh nổi là thông qua tính năng quad-buffered stereo
GpenGL. Nó tạo bộ đệm cho các góc phía trước-bên trái, phía trước-bên
phải, phía sau-bên trái, phía sau-bên phải. Khi phần mềm tạo hình ảnh
nổi, nó kiểm tra xem thiết bị phần cứng có hỗ trợ quad-buffered stereo
hay không đồng thời chọn bộ đệm thích hợp. Việc support từ phần cứng
giúp tăng tốc đáng kể quá trình xử lý và giữ tỉ lệ làm tươi khung hình ở
mức cao nhất, nếu tỉ lệ làm tươi khung hình bị suy giảm xuống dưới mức
thời gian lưu ảnh trên võng mạc mắt người cho phép thì sẽ mất hiệu ứng
độ sâu ba chiều.
9. Tối ưu hóa với bộ xử lý Intel
Quadro tối ưu hóa để hỗ trợ tập lệnh SSEII và kiến trúc Netburst của vi xử lý Intel
Các bộ xử lý intel đời mới hỗ trợ tập lệnh SSEII giúp các nhà phát
triển ứng dụng tăng tính mềm dẻo và tăng khả năng để cải thiện hiệu năng
của phần mềm. Đặc biệt điều này rất hữu dụng cho các ứng dụng đồ họa 3D
cần truy xuất song song và liên tục bộ nhớ. Điều này cũng đúng cho các
phần mềm chuyên nghiệp.
Vi kiến trúc Netburst của intel giúp các tiến trình thực thi ở tần số
cao và tăng khả năng cải thiện hiệu năng cho tần số cao hơn trong tương
lai.
Driver của NVIDA tối ưu hóa để CPU tham gia thực thi một phần nhỏ
trong quá trình truyền dữ liệu cho danh sách hiển thị và xắp xếp các
đỉnh. Vậy nên, bất kì cải thiện nào trong cấu trúc CPU cũng có một chút
ảnh hưởng đến hiệu năng chung. Mặc dù CPU mạnh có thể hỗ trợ cả GPU chơi
game và GPU quadro, ứng dụng chuyên nghiệp sử dụng chế độ đồ họa trực
tiếp và cải thiện hiệu năng làm việc của người dùng chuyên nghiệp.
10. Kiến trúc driver thống nhất (UDA)
Kiến trúc driver thống nhất cho phép một driver của NVIDA sử dụng
được với một dải rộng các thiết bị phần cứng của NVIDIA. Điều này nghe
có vẻ khó chấp nhận, vì như thế nó có nghĩa là card quadro và card chơi
game của NVIDIA không có gì khác nhau cả. Tuy nhiên điều này không đúng.
Giao diện làm việc giữa driver và thiết bị phần cứng của NVIDIA chia làm hai lớp
lớp các hàm API: Unified Driver Software API
lớp trích xuất của phần cứng: Hardware abstraction layer (HAL)
(theo cách hiểu của người dịch là phần mềm trình điều khiển không
làm việc trực tiếp với phần cứng mà nó phải qua một thông dịch viên
chính là lớp HAL)
Cách tiếp cận này tạo ra lợi thế:
- Driver có thể giả định một giao diện làm việc đồng nhất với tất cả các loại phần cứng GPU.
-UDA cho phép khả năng mở rộng các tính năng mới. chẳng hạn support GPU đa nhân.
Cấu trúc UDA có lợi thế chiến lược là có thể dùng một ảnh cài đặt hệ
thống duy nhất cho một loạt toàn bộ dải sản phẩm GPU của NVIDIA (Nôm na
là dùng một driver cho các loại card VGA khác nhau). Điều này rất hữu
dụng trong các studio kỹ thuật số và văn phòng thiết kế, nó giúp tiêu
giảm thời gian quản lý và việc thay thế, nâng cấp không nhất thiết phải
tiến hành đồng thời
11. Hỗ trợ kĩ thuật và tối ưu hóa cho phần mềm.
Card quadro được thiết kế và kiểm tra hàng ngàn giờ làm việc
với các phần mềm đồ họa chuyên nghiệp để tối ưu hóa, ngoài ra còn cung
cấp thêm các công cụ phụ trợ hữu ích cho công việc chuyên nghiệp.
Các ứng dụng phụ trợ như POWER draft, MAXtreme, NVIDIA QuadroView có
thể download miễn phí tại website của NVIDIA (phần này mình không dịch
vì nó quá chuyên sâu vào các ứng dụng cụ thể, các bạn có thể tìm hiểu
thêm thông tin trên mạng)
Danh sách các phần mềm được nghiên cứu để tối ưu hóa cũng như test làm việc cùng quadro.
12.Tổng kết
Như vậy tổng kết lại, Card quadro được thiết kế chuyên biệt cho các
ứng dụng rất cụ thể trong môi trường làm việc chuyên nghiệp. Nó được
thiết kế để đưa vào phần cứng các thuật toán để xử lý các chức năng
thường bắt gặp trong các phần mềm chuyên nghiệp và nhờ đó cải thiện hiệu
năng (vì tốc độ xử lý phần cứng nhanh hơn tốc độ xử lý trên phần mềm
rất nhiều). Nhưng cũng vì vậy card quadro bị nhồi nhét quá nhiều các xử
lý phần cứng làm cho giá thành nó tăng lên rất nhanh, nó khác với GPU
của các dòng bình dân vốn được thiết kế để có công năng rất đa dạng, làm
nhiều loại nhiệm vụ mà không chuyên biệt cho bất kỳ tác vụ nào.
Việc cải thiện hiệu năng của card quadro nhằm vào tối ưu sử dụng tài
nguyên phần cứng đắt đỏ, sử dụng tài nguyên thông minh hơn. Trong khi
card dân dụng vì không nhắm vào một đối tượng phần mềm cụ thể nào nên nó
chỉ có cách duy nhất cải thiện hiệu năng là tăng tốc độ xử lý của GPU,
tăng dung lượng bộ nhớ RAM, ngốn nhiều điện hơn, nóng hơn và để đảm bảo
giá thành không đội lên quá cao so với sức mua người tiêu dùng bình
thường đương nhiên chất lượng và tuổi thọ linh kiện cũng phải ở mức nhất
định.
Theo Internet