Trong lĩnh vực đồ hoạ máy tính, loài người đã đạt được những bước tiến dài trong hơn một chục năm trở lại đây. Các bộ phim điện ảnh, với sự hỗ trợ của đồ hoạ vi tính, đã đạt được những thành tựu đáng kinh ngạc với những thước phim được xử lý kỹ xảo chân thực.
Còn các trò chơi điện tử hiện nay đang sở hữu chất lượng đồ hoạ cao chưa từng có trong lịch sử. Các chi tiết được tái tạo chân thực đến mức từng sợi tóc của nhân vật hay những mảnh kính vỡ đều hiển thị sắc nét như ngoài đời thật. Câu hỏi đặt ra là, chúng ta đã làm thế nào để đi từ những trò chơi với đầy những chấm vuông pixel tới các trò chơi điện tử có giao diện siêu chân thực như vậy? Và câu trả lời nằm ở bộ xử lý đồ hoạ (GPU) của thiết bị chơi game của bạn.
Cách thức hoạt động của GPU
Bộ xử lý đồ hoạ (Graphical Processing Unit - GPU) là một bộ xử lý chuyên sử dụng để giải quyết các bài toán hình học. GPU có thể đảm nhiệm các tác vụ chuyên biệt liên quan đến dựng hình khối và thực hiện nó một cách hiệu quả. Đa số các GPU hiện nay được thiết kế dựa trên kiến trúc CUDA do công ty NVIDIA sáng chế.
CUDA (viết tắt của cụm từ Compute Unified Device Architecture, tạm dịch là Kiến trúc Thiết bị Tính toán Thống nhất) là kiến trúc tính toán song song được phát triển bởi NVIDIA. Tính toán song song là quy trình giải quyết nhiều phép tính đồng thời tại một thời điểm. Các bài toán lớn được phân chia ra thành nhiều bài toán nhỏ và được thực hiện đồng thời. Để hiểu cách các bài toán này được giải quyết, chúng ta cần phải nắm được chức năng của mỗi "lõi" trong một bộ vi xử lý. Mặc dù các định nghĩa về "lõi" có thể có những sự khác biệt, nhưng trong lĩnh vực tính toán và vi xử lý, lõi là một đơn vị cấu trúc có chức năng nhận một tập hợp các lệnh và thực hiện các phép tính toán dựa trên những lệnh đó. Các lõi CUDA nằm trong các GPU hiện đại bao gồm nhiều lõi con siêu nhỏ, có chức năng chia bài toán lớn thành nhiều bài toán nhỏ và thực hiện tính toán song song trên các lõi con đó, nhờ vậy mà những bài toán này có thể được giải một cách đồng thời bởi tất cả các lõi con.
Sự khác biệt giữa CPU và GPU
Theo How Stuff Works, cách giải thích tương tự có thể áp dụng để giải thích sự khác biệt căn bản giữa một bộ xử lý trung tâm (CPU) và bộ xử lý đồ hoạ (GPU). Nói một cách hình tượng, bạn có thể coi CPU như một con dao Thuỵ Sĩ sắc bén trong khi GPU giống như một con dao phẫu thuật nhiều hơn. CPU phát huy tốt vai trò của nó trong việc thực thi các chương trình đa chức năng, chẳng hạn như nghe nhạc, xem phim, tính toán, phần mềm bảng tính hoặc thậm chí là một trò chơi không đòi hỏi quá nhiều về đồ hoạ.
Nếu đi sâu vào chi tiết, thì hai thiết bị này khác nhau chủ yếu ở vi kiến trúc và cách thức thực thi lệnh.
Để hiểu rõ sự khác biệt giữa vi kiến trúc của CPU và GPU, bạn cần biết về những thành phần ở bên trong thiết bị đó. Trong CPU, chúng ta thấy có Bộ xử lý số học - logic (Arithmetic Logical Unit), chịu trách nhiệm thực hiện các lệnh tính toán. Bộ điều khiển (Control Unit) có trách nhiệm điều khiển mọi hoạt động của bộ vi xử lý, có chức năng cho ALU và bộ nhớ biết cách thức thực hiện các lệnh tính toán như thế nào. Bộ nhớ Cache là một loại bộ nhớ đặc biệt dùng để lưu các dữ liệu tạm đang chờ xử lý của CPU, nhằm hạn chế tối đa sự suy giảm tốc độ xử lý do CPU phải chờ nạp dữ liệu từ bộ nhớ chính. Bộ nhớ truy cập ngẫu nhiên động (Dynamic Random Access Memory - DRAM) là một loại bộ nhớ truy cập ngẫu nhiên (RAM) đặc biệt có chức năng giúp bộ vi xử lý truy cập vào bất kỳ dữ liệu ngẫu nhiên nào nằm trên các loại bộ nhớ khác nhau của máy, thay vì bắt CPU phải đi lần lượt qua từng khối dữ liệu một.
Cách thức hoạt động của CPU theo phương pháp tính toán tuần tự
Giờ các bạn đã hiểu sự khác biệt về mặt cấu trúc giữa CPU và GPU: số lượng ALU, hay số lõi trong một CPU ít hơn rất nhiều so với trong GPU. Điều này là bởi mỗi lõi trung tâm của CPU có nhiệm vụ thực hiện một chương trình phần mềm khác nhau trong cùng một thời điểm, giúp máy tính có khả năng thực hiện đa tác vụ cùng một lúc. Chẳng hạn, bạn có thể chạy hai phần mềm Microsoft Word và Google Chrome cùng lúc là bởi mỗi phần mềm sẽ được một lõi của CPU đảm trách thực hiện. Trong khi đó, GPU có rất nhiều lõi con bên trong, nhưng mỗi lõi có nhiệm vụ thực hiện một phần nhỏ của bài toán một cách đồng thời. Do vậy, GPU có thể thực hiện mật độ tính toán cao hơn để giải quyết một bài toán cụ thể.
Cách thức hoạt động của GPU theo phương pháp tính toán song song
CPU có bộ nhớ cache lớn hơn GPU. Điều này là bởi CPU cần nhiều bộ nhớ tạm hơn để lưu trữ các lệnh chờ được xử lý lần lượt, do số lượng lõi có trong một CPU ít hơn nhiều so với GPU. GPU có ít bộ nhớ cache hơn, bởi chúng có số lượng lõi nhiều hơn đáng kể để thực hiện một lượng lớn các lệnh ở cùng một thời điểm. Nói chung, phương thức hoạt động của CPU là phương thức tính toán tuần tự, còn cách tiếp cận của GPU là tính toán song song.
Vai trò của GPU và CPU trong việc chơi game
Và bây giờ hãy cùng quan sát cách thức hoạt động và vai trò của GPU và CPU trong khi chơi game hoặc thực hiện các chương trình đồ hoạ đòi hỏi phải kết xuất (render) trong thời gian thực, ví dụ như việc xem trước các hiệu ứng hình ảnh trong các phần mềm dựng phim. Xét một mô hình 3D trong trò chơi điện tử, chúng ta thấy, GPU có trách nhiệm tính toán và tái tạo về mặt hình học, màu sắc, chất liệu của vật thể. Cách thức hoạt động của GPU là chia các mặt phẳng phức tạp của vật thể thành các tam giác nhỏ. Các dữ liệu, thông số của hình ảnh trong mỗi tam giác sẽ được xử lý bởi một lõi con của GPU. CPU rõ ràng không có khả năng làm được điều này bởi cách thức vận hành tuần tự của chúng không cho phép tái tạo tất cả mọi phần của hình ảnh trong cùng một thời điểm khi kết xuất hình ảnh 3D.
Nói nôm na, GPU phụ trách giải quyết các yếu tố "nghệ thuật" của game, nhưng CPU lại đóng vai trò then chốt trong khâu tổ chức hoạt động của phần mềm trò chơi. CPU có trách nhiệm quản lý luật lệ của ván chơi. Ví dụ, khi chúng ta chơi các game có chi tiết bắn súng, CPU sẽ có trách nhiệm tính toán những yếu tố hình ảnh nào cần xuất hiện khi người chơi bắn ra một viên đạn. Cụ thể, khi người chơi nổ súng vào một vật thể, CPU sẽ nói cho GPU biết cần hiển thị các hiệu ứng hình ảnh nào trên vật thể đó khi bị đạn bắn, và GPU sẽ có nhiệm vụ tính toán và kết xuất hình ảnh tương ứng.
Kết luận lại, chúng ta có thể nói rằng nếu không có sức mạnh tính toán khủng khiếp của GPU trên phương diện nâng cao chất lượng đồ hoạ, sẽ khó mà tưởng tượng được có ngày chúng ta sẽ được chơi các trò chơi có đồ hoạ sống động và chân thực như hiện nay. Các nhà sản xuất cũng đang chạy đua để cải tiến các GPU qua các đời thiết bị, nhằm đẩy các giới hạn về hình ảnh đồ hoạ của game ngày càng xa hơn nữa.
An Huy