22/02/2021

Lượt xem 2077

Bộ xử lý đồ họa GPU có thể thay thế bộ xử lý CPU không?

Bộ xử lý đồ họa, hay GPU, đã trở thành một trong những loại công nghệ máy tính quan trọng nhất, cho cả điện toán cá nhân và doanh nghiệp. Được thiết kế để xử lý song song, GPU được sử dụng trong nhiều ứng dụng, bao gồm cả đồ họa và kết xuất video. Mặc dù chúng được biết đến nhiều nhất với khả năng chơi game, nhưng GPU đang trở nên phổ biến hơn để sử dụng trong sản xuất sáng tạo và trí tuệ nhân tạo (AI).

GPU phát triển như một sự bổ sung cho CPU (đơn vị xử lý trung tâm). Trong khi CPU tiếp tục tăng hiệu suất thông qua các cải tiến về kiến trúc, tốc độ xung nhịp nhanh hơn và bổ sung lõi, thì GPU được thiết kế đặc biệt để tăng tốc khối lượng công việc đồ họa máy tính. Khi mua một hệ thống, có thể hữu ích nếu bạn biết vai trò của CPU và GPU để bạn có thể tận dụng tối đa cả hai.

Về cơ bản, CPU và GPU có các mục đích khác nhau, có trọng tâm khác nhau và có các đặc điểm hiệu suất khác nhau. CPU hoạt động nhanh hơn trong một số công việc và GPU có thể tốt hơn trong một công việc khác.

GPU phù hợp hơn khi bạn cần thực hiện cùng một việc với một lượng lớn dữ liệu và CPU phù hợp nhất khi bạn cần thực hiện nhiều dữ liệu với cùng một thứ.

Tuy nhiên, trong các ứng dụng thực tế, tình trạng sau này nhiều hơn, tức là CPU linh hoạt hơn và có nhiều tác vụ hơn. GPU có thể làm gì? Về đồ họa và các hoạt động ma trận lớn, chẳng hạn như thuật toán học máy, khai thác, bẻ khóa mật khẩu …

GPU không nhanh hơn CPU. CPU và GPU được thiết kế với hai mục tiêu khác nhau, có sự đánh đổi khác nhau, do đó chúng có các đặc tính hiệu suất khác nhau. Một số tác vụ nhanh hơn với CPU trong khi các tác vụ khác được tính toán nhanh hơn với GPU. CPU vượt trội trong việc thực hiện các thao tác phức tạp đối với một tập dữ liệu nhỏ, GPU vượt trội trong việc thực hiện các thao tác đơn giản đối với một tập dữ liệu lớn.

Nói một cách đơn giản, CPU có khả năng xử lý tốt các hoạt động phức tạp như dự đoán rẽ nhánh và GPU thực hiện tốt các hoạt động đơn giản trên một lượng lớn dữ liệu. Một là lao động phức tạp, hai là nhiều công việc song song.

GPU là một CPU có mục đích đặc biệt, được thiết kế để một lệnh duy nhất hoạt động trên một khối dữ liệu lớn (SIMD / Single Instruction Multiple Data), tất cả chúng đều áp dụng cùng một hoạt động. Làm việc trong các block dữ liệu chắc chắn hiệu quả hơn làm việc với một cell duy nhất tại một thời điểm vì chi phí giải mã các lệnh được giảm đi nhiều, tuy nhiên làm việc trong các block lớn có nghĩa là có nhiều đơn vị làm việc song song hơn, vì vậy nó sử dụng nhiều transistor hơn để thực hiện một lệnh GPU duy nhất (gây ra hạn chế về kích thước vật lý, sử dụng nhiều năng lượng hơn và tạo ra nhiều nhiệt hơn).

CPU được thiết kế để thực thi một lệnh trên một mức dữ liệu nhanh nhất có thể. Vì nó chỉ cần làm việc với một mức dữ liệu duy nhất, nên số lượng transistor được yêu cầu để thực hiện một lệnh đơn ít hơn nhiều, nên CPU có thể đủ khả năng để có tập lệnh lớn hơn, ALU phức tạp hơn, dự đoán nhánh tốt hơn. Các chu kỳ lệnh của nó cũng nhanh hơn.

Lý do tại sao chúng ta vẫn sử dụng CPU không phải vì x86 là vua của kiến ​​trúc CPU và Windows được viết cho x86. Chúng ta vẫn sử dụng CPU là vì loại tác vụ mà một hệ điều hành chạy hiệu quả hơn trên kiến ​​trúc CPU. Một hệ điều hành cần xem xét hàng trăm loại dữ liệu khác nhau và đưa ra các quyết định khác nhau mà tất cả đều phụ thuộc vào nhau; loại công việc này không dễ dàng song song, ít nhất là không thành kiến ​​trúc SIMD.

Trong tương lai, những gì chúng ta sẽ thấy là sự hội tụ giữa kiến ​​trúc CPU và GPU khi CPU có được khả năng hoạt động trên các block dữ liệu, ví dụ: SSE. Ngoài ra, khi công nghệ sản xuất được cải thiện và chip nhỏ hơn, GPU có thể đủ khả năng thực hiện các lệnh phức tạp hơn.