Các khác biệt tính toán giữa CPU và GPU ( phần 1)

Bài viết chỉ tập trung vào phạm trù máy tính cá nhân (PC) và các dịch vụ trực tiếp liên quan đến máy tính cá nhân nên không đi sâu vào các công nghệ quân đội hoặc chuyên sâu chỉ áp dụng trong siêu máy tính hoặc các phòng LAB riêng các hãng.

1. Khác biệt cấu trúc:

  1. CPU có cấu trúc nhân phức tạp, có thể đảm nhận tất cả các loại công việc tính toán. Các công việc CPU đảm nhận rộng rãi vì nhờ có rất nhiều thành phần bổ trợ trong nhân CPU như:
    • Bộ xử lí đồng toán học (ALU)
    • Bộ xử lí dấu phẩy động (floating point unit)
    • Bộ nhớ thanh ghi giúp lưu trữ và thực hiện tiếp các tính toán trong chuỗi tính toán, công thức.
    • Các lệnh thực thi phức tạp như dự đoán rẽ nhánh ở tốc độ rất cao
    • Số lượng nhân xử lí hoặc đế (socket, die) trên 1 máy tính thông dụng hiện nay là từ 4- 12 và trên các máy chủ đặc thù cũng chỉ vài trăm.
  2. GPU cũng là 1 CPU nhưng được chuyên biệt hóa. Ban đầu GPU tập trung vào việc xử lí, kết xuất dựng hình, luồng hình ảnh giúp giảm tải công việc này CPU ( tiến hóa từ VGA – Video Graphics Array hoặc các chuẩn xa xưa hơn nữa):
    • Hiển thị thông tin hình ảnh
    • Chức năng dựng hình đa giác
    • Chức năng tính toán đổ màu
    • Chức năng tính toán đổ bóng
    •  Nhưng theo thời gian, các nhu cầu tính toán phát sinh đã giúp GPU sử dụng các sức mạnh tính toán của mình để tham gia vào các mục đích mới.
    • Có rất nhiều nhân nhỏ cơ bản, sức mạnh tính toán hiệu quả cao. Như 1 bộ xử lí Nvidia thông dụng RTX 2060 có gần 2000 nhân CUDA (1920)
 
CPUGPU
Central Processing UnitGraphics Processing Unit
Một số hạn chế nhân (từ vài nhân)Vài ngàn nhân
Chậm trễ xử lí thấpNăng lực xử lí thông lượng dữ liệu lớn
Tập trung tính toán tuần tựMạnh về tính toán song song
Có thể kết hợp xử lí dữ liệu đa dạngCó thể thực hiện rất nhiều phép tính 1 lần

 

2. Mục đích sử dụng:

  1. CPU luôn là 1 đơn vị tính toán buộc phải có trên mọi máy tính, đảm nhiệm chức nhưng xử lí theo mô hinh input processing output và áp dụng rộng rãi mọi mặt đời sống con người. CPU là đơn vị tính toán điều phối hoạt động xử lí. Các công việc xử lí tuần tự, việc sau là kết quả của việc trước. Vì vậy, tập lệnh hỗ trợ xử lí của CPU rất rộng, thiết kế và hỗ trợ lượng bộ nhớ rất lớn ( lên đến hàng TB RAM)
  2. GPU là đơn vị xử lí tính toán tập trung vào các công việc phù hợp được định nghĩa xác định trước và được chuyển đến từ CPU, thực hiện các tính toán nhỏ đồng thời do CPU phân phối. Do các nhân nhỏ, thiết kế đơn giản hiệu quả nên mức độ hỗ trợ đa dạng tính toán không cao và tập lệnh cũng đơn giản hơn nhiều tập lệnh của CPU. Dung lượng bộ nhớ cũng giới hạn hơn nhiều so với của CPU. Hiện đang có những project thúc đẩy việc liên kết bộ nhớ giữa các nhân GPU lẫn nhau để giảm bớt việc yêu cầu bộ xử lí sao chép dữ liệu giữa các vùng nhớ ( khác với tính năng DMA).
  3. Từ GPU cũng có những thiết kế riêng tùy biến tập trung mức độ công việc cao với hiệu quả riêng ( như nhanh hơn, tiết kiệm điện năng hơn…) và là 1 tập rộng lớn bao gồm: Field-Programmable Grid Arrays (FPGA) and then Application Specific Integrated Circuits (ASIC). Như trong thiết kế nhân GPU tính toán hiện nay, nhân Tensor hỗ trợ bộ thư viện mở TensorFlow của Google tập trung vào các tác vụ tính toán số nguyên ma trận nên có sự cạnh tranh giữa các chip xử lí chỉ bao gồm nhân Tensor hay trong các nhân GPU kèm các bộ nhân xử lí Tensor giúp tăng tốc quá trình xử lí máy học. Vì vậy, rất nhiều GPU hiện nay ứng dụng thiết kế không còn tập trung khả năng xử lí hình ảnh thuần túy như dù cho xuất phát điểm ban đầu đều là GPU xử lí đồ họa: Nvidia Telsa, Intel Phi… ( tiếp phần 2).

Một số dòng máy hỗ trợ tốt tính toán cho AI để lắp GPU thêm