Không phải CPU không xử lý hình ảnh được, chỉ là nó không được tối ưu cho lắm mà thôi.

Bạn có bao giờ cảm thấy thắc mắc về việc vì sao cùng là thiết bị tính toán nhưng người ta lại thường dùng GPU tay vì CPU để xử lý hình ảnh hiển thị không? Nghe thì có vẻ khó hiểu nhưng thực sự thì đơn giản lắm. 

Đầu tiên, chúng ta hãy nói đến cấu tạo của một CPU.

HIện nay, một dòng CPU dành cho người dùng phổ thông tối thiểu cũng sẽ có 2 nhân, những dòng CPU cao cấp hơn sẽ có 4 nhân, 6 nhân, 8 nhân, hay thậm chí là hơn thế nữa. Mỗi một nhân của CPU cũng có cấu tạo cực kỳ phức tạp, chúng có có thể chứa đến hàng trăm triệu bóng bán dẫn và các bóng bán dẫn này sẽ được nối với nhau bởi rất nhiều lớp vi mạch.

Sơ đồ cấu tạo đế bán dẫn của CPU Coffee Lake

Nhân CPU sở dĩ phức tạp như thế là vì nó được thiết kế để giải quyết những vấn đề khó khăn nhất từ logic cho đến hình học, số học… Về cơ bản thì CPU có thể làm hầu hết mọi việc từ cơ bản cho đến phức tạp, dựng hình cũng không phải vấn đề, vấn đề ở đây là chắc chắn nó sẽ không làm việc đó hiệu quả bằng GPU được.

Vì sao GPU lại hiệu quả hơn CPU?

CPU tuy rất thông minh nhưng nó lại kém hơn GPU ở một điểm, đó là số lượng nhân. Một CPU thuộc hàng khủng khiếp nhất thời điểm hiện tại như Xeon Platinum 9200 sẽ chỉ có 56 nhân CPU mà thôi và số nhân này không là gì cả nếu đem so với một GPU, ví dụ như GPU tầm trung của NVIDIA là RTX 2060 đã có đến 1920 nhân CUDA rồi. Từ đó chúng ta có thế thấy rằng GPU có số nhân áp đảo hoàn toàn so với CPU.

Ảnh chụp đế bán đẫn của GPU thế hệ kiến trúc Turing

Đối với những công việc có độ phức tạp cao, nhân CPU sẽ sử dụng kiến trúc tinh vi của mình để phân tích rồi xử lý, và nó xử lý rất hiệu quả. Tuy nhiên, đối với các công việc đơn giản và có tính chất lặp đi lặp lại thì khác, nhân CPU tuy vẫn có thể giải quyết chúng nhưng điều đó là rất lãng phí, vì những tác vụ như thế vốn không cần đến những kiến trúc tinh vi của nhân CPU để giải quyết. Lúc này thì một loại nhân khác có cấu tạo đơn giản hơn, vừa đủ giải quyết vấn đề nhưng phải có số lượng thật nhiều để tăng tính hiệu quả, và đó là các nhân của GPU.

So sánh số nhân của CPU và GPU

Trong quá trình dựng hình, CPU sẽ liên tục tính toán những công việc phải làm rồi phân công cho GPU làm những công việc đó. Hàng ngàn nhân của GPU sẽ chạy song song để làm những công việc đơn giản, lặp đi lặp lại như tô màu các điểm ảnh, đổ bóng các vật thể, tạo hiệu ứng phản chiếu, khử răng cưa cho các khung hình… và chúng làm việc đó nhanh hơn rất nhiều lần so với chỉ vài nhân của CPU.

Kết quả hình ảnh cho Ray Tracing

Sự tương quan của CPU và GPU

Sự tương quan của CPU giống như đội kỹ sư xây dựng và đội thi công vậy. Công việc của đội kỹ sư (CPU) rất rắc rối và cần trình độ rất cao để xử lý, trong khi đó thì công việc của đội thi công (GPU) thì đơn giản hơn, đó là làm theo chỉ dẫn của đội kỹ sư để hoàn thành công trình, và công trình ở đây chính là những hình ảnh hoàn chỉnh mà bạn thấy trên màn hình.

Về cơ bản thì mấy ông kỹ sư cũng biết thi công công trình, nhưng nếu bạn bắt cả đội kĩ sư trực tiếp đi làm việc đó thì trình độ của họ sẽ bị lãng phí. Thay vào đó một đội thi công tháo vát hoạt động theo chỉ dẫn của mấy ông kỹ sư đó sẽ hiệu quả hơn nhiều.