Điều gì khác biệt về trình điều khiển GPU từ trình điều khiển thiết bị khác, cho phép tối ưu hóa hiệu suất?


12

Có vẻ như hai nhà sản xuất GPU lớn liên tục phát hành các trình điều khiển được cập nhật có hiệu suất tăng nhỏ ở đây và đó. Khi họ chơi cùng một trò chơi, tôi cá là nó sẽ tăng dần theo thời gian.

Với ý nghĩ đó, tại sao chúng ta không bao giờ nghe về trình điều khiển CPU AMD hoặc Intel cho một ứng dụng hoặc phiên bản Windows nào đó hoặc một cái gì đó?


1
Về VTC: Điều này không mơ hồ. Có lý do cụ thể liên quan đến những gì được điều chỉnh và tại sao, với trình điều khiển GPU (và CPU).
Ben Richards

1
Các nhà cung cấp CPU thực hiện cập nhật phát hành. Xem, ví dụ: downloadcenter.intel.com/ , (nhấp chương trình cơ sở ở phía bên phải)
derobert

@derobert - Thật thú vị, rõ ràng Intel không có ý định lặp lại fiasco Pentium. Tuy nhiên, các bản cập nhật này dành cho bộ vi xử lý và không phải là "trình điều khiển CPU". Microcode được thực thi ở mức thấp hơn mã máy của các tập tin kernel và .exe .
mùn cưa

@sawdust bộ vi mã CPU (ít nhất là một phần) chịu trách nhiệm dịch các lệnh x86 mà CPU nhận được vào các hoạt động thực tế mà nó thực hiện. Vì vậy, nó thực sự hơi giống với trình điều khiển đồ họa. Tất nhiên, Intel quan tâm nhiều hơn về tính chính xác so với nVidia, vì vậy các bản cập nhật của họ có lẽ hầu hết là các lỗi.
derobert

Câu trả lời:


13

Thứ nhất, đôi khi có những trường hợp bản vá trình điều khiển được phát hành có thể tăng hiệu năng hoặc tăng hiệu quả cho một CPU nhất định. Nhưng rõ ràng là bạn đang hỏi câu hỏi này vì nó không phổ biến lắm. Tuy nhiên, những gì tối ưu hóa trình điều khiển CPU làm là tương tự trong khái niệm.

GPU là một phần rất phức tạp của mạch điện. Nó tồn tại để giảm tải một số tác vụ nhất định phải mất một thời gian rất dài để thực hiện trên CPU. Họ nhận được bộ dữ liệu và hướng dẫn phải làm gì với dữ liệu này. GPU phải có khả năng sắp xếp dữ liệu theo cách có thể quản lý được và diễn giải các hướng dẫn để cho nó biết phải làm gì. Sau đó, nó phải thực hiện một loạt các phép toán trên dữ liệu. Sau đó, nó phải sắp xếp lại dữ liệu một lần nữa và gửi kết quả trở lại hệ điều hành khi hoàn tất. Đây là một mô tả rất đơn giản của đường ống đồ họa máy tính . Có nhiều bước phải được thực hiện trước khi dữ liệu sẵn sàng cho chương trình.

Bây giờ, khi GPU phải chấp nhận các bộ hướng dẫn và thực hiện các hoạt động toán học rất phức tạp trong phần cứng, sẽ có một số điều nhất định được biết là chạy nhanh hơn hoặc chậm hơn thông qua đường ống này. Một phần của việc viết trình điều khiển cho thiết bị là diễn giải dữ liệu và hướng dẫn được gửi đến thiết bị, dịch nó để thiết bị có thể hiểu được. Khi một trình điều khiển đang làm điều này, nó có thể đưa ra quyết định về cách gửi dữ liệu đến thiết bị để các tác vụ sẽ mất thời gian ngắn nhất có thể. Tuy nhiên, một tài xế thường không có nhiều thông tin về những gì chương trình đang phục vụ. Tất cả những gì nó nhận được từ chương trình là các lệnh gọi API ("vẽ một đường", "tô màu một điểm", "tô một hình tam giác", v.v.). Vì vậy, các giả định mà nó có thể làm cho không tốt lắm.

Khi AMD hoặc nVidia phát hành bản cập nhật trình điều khiển có cải thiện hiệu suất cho các trò chơi cụ thể, điều này có nghĩa là trình điều khiển sẽ phát hiện trò chơi nào gọi phần cứng đồ họa và có một loạt các giả định được mã hóa cứng được biết về cách trò chơi thực hiện. Có thể là trò chơi có rất nhiều hình ảnh kết cấu cần nhanh chóng được hoán đổi trong và ngoài bộ nhớ, hoặc nó có rất nhiều màu sắc hòa trộn khi tạo ra các hiệu ứng ánh sáng nhất định. Thông thường những gì một trò chơi sẽ làm là thực hiện các chương trình nhỏ (được gọi là "shader") mô tả cách thực hiện các tính toán này và nó sẽ được gửi đến GPU để thực thi. Nếu người lái biết cách trò chơi sử dụng phần cứng, nó có thể sắp xếp dữ liệu và chọn các bộ hướng dẫn thực hiện nhiệm vụ mong muốn theo cách tăng thông lượng và hiệu quả.

Tuy nhiên, đôi khi, sau khi sản phẩm đã được xuất xưởng, có thể tìm thấy lỗi trong một số phần của GPU. Nó có thể bị che khuất đủ để bị bỏ qua khi xác thực khi chip được thiết kế, nhưng có thể thấy rằng nó gây ra một số hành vi lỗi hoặc không thể chấp nhận được (hoặc thậm chí là sự cố) trong một trò chơi cụ thể đánh vào nó. Trong trường hợp đó, trình điều khiển sẽ phát hiện trạng thái lỗi này và xử lý xung quanh nó, bằng cách giảm tải một số tính toán cho phía CPU hoặc thay đổi cách thức cung cấp dữ liệu cho GPU để nó không đi vào trạng thái này. Những thứ này, một lần nữa, sẽ được phát hành dưới dạng cập nhật trình điều khiển.

Về cơ bản, nó không thay đổi hiệu năng của chính phần cứng, nó chỉ thay đổi cách sử dụng phần cứng, để nó có thể hoạt động hiệu quả và nhanh chóng hơn trên cùng một bộ dữ liệu.


Về các kỹ sư điều khiển hiểu cách trò chơi được triển khai, điều này khiến tôi tự hỏi liệu những màn hình giật gân Nvidia đó trong một số trò chơi không chỉ là quảng cáo.
Louis

2
@Louis Họ không chỉ là quảng cáo. Chúng là vì NVidia duy trì mối quan hệ đặc biệt với một số studio game nhất định và cung cấp hỗ trợ cho các nhà phát triển để tối ưu hóa mã trò chơi cho phần cứng đồ họa NVidia. AMD cũng làm điều này (đôi khi bạn sẽ thấy logo AMD trong một trò chơi), nhưng NVidia trong lịch sử có sự hiện diện lớn hơn nhiều.
Ben Richards

Đọc lại, tôi thấy đó là một câu trả lời tuyệt vời và dấu kiểm thuộc về nơi nào. Tôi muốn tất cả các câu trả lời được giảng dạy như vậy trong lời giải thích của họ.
Louis

Bạn có tích hợp cái này ( nhiều số hơn ) làm ví dụ cho một tiền thưởng khác không?
Louis

10

"Trình điều khiển CPU" hiếm khi tồn tại và chắc chắn không phải là các mô-đun có thể tải. "Trình điều khiển CPU" thỉnh thoảng sẽ cần thiết cho một số biến thể của điều khiển đa lõi hoặc xử lý ngắt (ví dụ: lõi kép AMD cần trình điều khiển WinXP để sử dụng đầy đủ). Mặt khác, hầu hết các hệ điều hành được cấu hình và xây dựng để truy cập CPU trực tiếp. Nếu một vấn đề xuất hiện và nghiêm trọng, thì mã kernel đã được vá và bản cập nhật kernel được phát hành.

GPU không chỉ là thiết bị ngoại vi nữa; họ đã phát triển thành đồng xử lý. "Trình điều khiển GPU" không chỉ cung cấp quyền truy cập thiết bị, chúng bao gồm các thuật toán xử lý (tức là chương trình con đồ họa) cho GPU được đóng gói trong trình điều khiển. Kích thước của các "trình điều khiển" này là một giveaway / đầu mối. Đó là những thuật toán / chương trình con đang được cải thiện.


2
Điều đó giải thích tại sao trình điều khiển tải xuống cho thẻ của tôi hiện có hơn 200 MB.
Louis

Tôi thực sự nghi ngờ có trị giá 200 MB trong các trình điều khiển đó. Tôi sẽ ngạc nhiên nếu nó có nhiều hơn một MB về tất cả các thuật toán này. >.>
dùng541686

1
@Mehrdad vì tò mò Tôi đã mở trình cài đặt EXE với 7-zip cho trình điều khiển của Nivida. thư mục Display.Driver có kích thước 147 MB, có một exe là 31 MB, mọi tệp khác trên 660 KB là một DLL.
Scott Chamberlain

@Scott: exe đó gần như chắc chắn là một kho lưu trữ nhiều tệp hơn chứa mã thực tế . Tôi hy vọng các tệp thực tế sẽ có một số megabyte nhiều nhất là ... modulo bất kỳ tài nguyên nào chúng có thể chứa, không phải là mã.
dùng541686

0

Không chỉ các trình điều khiển, đó là chính GPU. GPU chuyên về các loại tính toán khác nhau (ví dụ FFT) và thao tác bộ nhớ. Nó có thể hoạt động song song trên hầu hết các tác vụ nhất định và làm cho nó hiệu quả hơn so với CPU có mục đích chung.

Với kiến ​​thức tốt hơn về các chương trình đang chạy, bạn có thể tối ưu hóa các quy trình tính toán hoặc thao tác bộ nhớ cho các chương trình này. GPU rất linh hoạt trong cách thực hiện các phép tính và thực hiện các thao tác bộ nhớ, do đó, phần sụn hoặc trình điều khiển hoàn hảo vẫn cần phải được viết. ;) Có rất nhiều chỗ để cải tiến.

Hầu hết các thiết bị khác không linh hoạt trong việc sử dụng nó. Hầu hết phần cứng trên PC phải chạy trong thông số kỹ thuật của nó, tuân theo các giao thức, vì vậy trình điều khiển không cần phải được tối ưu hóa.

A, quên CPU. > _ <CPU có thể được tối ưu hóa. Hầu hết các mô hình CPU mới đều có phần mềm lập trình trong đó, nhưng việc tăng hiệu năng không đáng để bỏ công sức. Nó chỉ được sử dụng để sửa lỗi trong quá trình xây dựng phần cứng.


"Hầu hết các mẫu CPU mới đều có phần mềm lập trình trong đó," Hãy giải thích.
Tim
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.