Tại sao GPU nhanh hơn CPU? Dưới đây chính là lý do

Trong vài thập kỷ trở lại đây, GPU ngày càng trở nên phổ biến, đặc biệt là vụ cháy ChatGPT gần đây, GPU, thiết bị phần cứng dùng để đào tạo các mô hình lớn, đã trở nên đắt đỏ và hiếm hàng.

Bạn đã bao giờ tự hỏi: Tại sao bạn cần GPU? CPU có lỗi thời không?

Hôm nay chúng ta sẽ nói về lý do tại sao GPU lại nhanh hơn CPU!

GPU nhanh hơn CPU, có chính xác không?

Nói một cách đơn giản, việc GPU nhanh hơn hay CPU nhanh hơn là không công bằng. Ý tưởng thiết kế của cả hai là khác nhau.

GPU nhanh hơn CPU, có chính xác không?

CPU được gọi là "bộ não" của máy tính. Nó chịu trách nhiệm chính về các chức năng xử lý máy tính. Các hoạt động như hệ điều hành và các chương trình ứng dụng đều phải dựa vào nó. CPU cũng quyết định tốc độ chung của máy tính.

Vai trò của GPU ngày càng chuyên nghiệp hơn, ban đầu nó được thiết kế để hỗ trợ kết xuất 3D và có thể song song hóa nhiều hướng dẫn cùng lúc, rất phù hợp với các khối lượng công việc phổ biến như kết xuất hoạt hình, xử lý hình ảnh và trí tuệ nhân tạo.

Nói một cách đơn giản, CPU được tối ưu hóa cho độ trễ, trong khi GPU được tối ưu hóa cho băng thông. CPU xử lý từng tác vụ một tốt hơn, trong khi GPU có thể xử lý nhiều tác vụ cùng một lúc. Giống như một số người giỏi thực hiện từng nhiệm vụ một theo trình tự, một số người có thể thực hiện nhiều nhiệm vụ cùng một lúc.

Để chứng minh sự khác biệt giữa CPU và GPU, NVIDIA từng mời Adam SavageJamie Hyneman sử dụng robot và súng sơn để tái tạo một tác phẩm nghệ thuật nổi tiếng - Mona Lisa. Video này thể hiện đầy đủ quá trình hoạt động của CPU và GPU. Chẳng hạn như video dưới đây:

Hãy để tôi giải thích sự khác biệt giữa hai cách này một cách đơn giản bằng cách sử dụng một phép loại suy. CPU giống như một chiếc Ferrari và GPU giống như một chiếc xe tải chở hàng, nhiệm vụ của cả hai là vận chuyển 100 Gói hàng từ vị trí A đến vị trí B. CPU (Ferrari) có thể nhanh chóng lấy được một số dữ liệu bộ nhớ (hàng hóa) trong RAM. , trong khi GPU (xe chở hàng) hoạt động chậm hơn (độ trễ cao hơn). Nhưng CPU (Ferrari) chỉ có thể phân phối 2 Gói hàng cùng một lúc và phải mất 50 lần để hoàn thành việc phân phối.

Giải thichd sự khác biệt giữa CPU và GPU - hình 1

Tuy nhiên, GPU (xe tải chở hàng) có thể thu được nhiều dữ liệu bộ nhớ hơn cùng một lúc và vận chuyển dữ liệu đó.

Giải thichd sự khác biệt giữa CPU và GPU - hình 2

Nói cách khác, CPU có xu hướng xử lý nhanh chóng lượng dữ liệu nhỏ (chẳng hạn như các phép toán số học: 5*6*7) và GPU xử lý lượng lớn dữ liệu lặp lại tốt hơn (chẳng hạn như các phép toán ma trận: (A*B) *C). Do đó, mặc dù thời gian phân phối đơn của CPU nhanh hơn nhưng lợi thế của GPU lại đáng kể hơn khi xử lý xử lý hình ảnh, kết xuất hoạt ảnh và học sâu đòi hỏi khối lượng công việc lặp đi lặp lại lớn.

Tuy nhiên, vấn đề lớn nhất với GPU là ảnh hưởng của độ trễ đến hiệu suất. Tuy nhiên, đối với các tình huống tác vụ điển hình của học sâu, dữ liệu thường chiếm không gian bộ nhớ liền kề lớn. GPU có thể cung cấp băng thông bộ nhớ tốt nhất và độ trễ do sự song song của luồng gây ra tác động gần như không đáng kể.

Vậy điều gì khiến CPU và GPU hoạt động khác nhau? Điều đó còn phụ thuộc vào cấu trúc thiết kế của cả hai.

Tại sao GPU và CPU hoạt động khác nhau?

1. Các lõi kiến trúc khác nhau

Hai bức ảnh sau đây có thể giúp chúng ta hiểu được sự khác biệt trong cách hoạt động của CPU và GPU. Tôi đã đề cập ở trên rằng CPU được thiết kế để xử lý nối tiếp tuần tự và GPU được thiết kế để xử lý song song dữ liệu. GPU có hàng trăm hoặc hàng nghìn nội dung nhỏ hơn và đơn giản hơn, trong khi CPU có một số nhân lớn và phức tạp.

Tại sao GPU và CPU hoạt động khác nhau? - 1

Nhân GPU được tối ưu hóa để thực hiện đồng thời các hoạt động xử lý đơn giản tương tự trên nhiều thành phần dữ liệu. Hơn nữa, CPU được tối ưu hóa để xử lý lệnh tuần tự, điều này cũng dẫn đến sự khác biệt về khả năng xử lý lõi của cả hai.

Trên Internet có một phép ẩn dụ dùng để so sánh sự khác biệt giữa lõi GPU và lõi CPU, tôi thấy rất phù hợp, lõi của CPU giống như một giáo sư uyên bác, trong khi lõi của GPU giống một lũ học sinh tiểu học hơn những sinh viên chỉ có thể làm những phép tính số học đơn giản. Cho dù giáo sư có quyền lực đến đâu, và không thể tính được 500 phép cộng và phép trừ trong một giây, vì vậy đối với những phép tính lặp đi lặp lại đơn giản, một giáo sư không thể sánh được với một số lượng lớn học sinh tiểu học. Khi thực hiện các phép tính số học đơn giản, 500 học sinh tiểu học (đồng thời) Có thể dễ dàng đánh bại giáo sư.

2. Kiến trúc bộ nhớ khác nhau

Ngoài sự khác biệt về mặt tính toán, GPU còn sử dụng kiến trúc bộ nhớ băng thông cao chuyên dụng để gửi dữ liệu đến tất cả các lõi. Hiện tại, GPU thường sử dụng bộ nhớ GDDR hoặc HBM, cung cấp băng thông cao hơn băng thông bộ nhớ DDR tiêu chuẩn trong CPU.

Tại sao GPU và CPU hoạt động khác nhau? - 2

Dữ liệu do GPU xử lý được chuyển sang bộ nhớ chuyên dụng này để giảm thiểu độ trễ truy cập trong quá trình tính toán song song. Bộ nhớ của GPU được phân đoạn để có thể thực hiện truy cập đồng thời từ các lõi khác nhau để đạt được thông lượng tối đa.

Ngược lại, hệ thống bộ nhớ CPU được tối ưu hóa cao độ để truy cập vào dữ liệu được lưu trong bộ nhớ đệm với độ trễ thấp. Người ta ít chú trọng đến tổng băng thông, điều này có thể làm giảm hiệu quả của khối lượng công việc song song dữ liệu.

3. Tính song song

Sự kết hợp giữa lõi chuyên dụng và bộ nhớ cho phép GPU khai thác tính năng song song dữ liệu ở mức độ lớn hơn CPU. Đối với các tác vụ như đồ họa, kết xuất, cùng một chương trình đổ bóng có thể chạy song song trên nhiều đỉnh hoặc nhiều pixel.

Tại sao GPU và CPU hoạt động khác nhau? - 3

GPU hiện đại chứa hàng nghìn lõi, trong khi CPU cao cấp có tối đa ít hơn 100 lõi. Với nhiều lõi hơn, GPU có thể xử lý dữ liệu trên phạm vi song song rộng hơn với cường độ số học cao hơn. Đối với khối lượng công việc song song, lõi GPU có thể đạt thông lượng cao hơn gấp 100 lần hoặc hơn so với CPU.

Ngược lại, định luật Amdahl có nghĩa là có một giới hạn đối với khả năng tăng tốc song song mà CPU có thể đạt được đối với một thuật toán. Ngay cả với 100 lõi bên trong, tốc độ thực tế bị giới hạn ở mức 10 lần trở xuống do phần nối tiếp và giao tiếp. Nhờ kiến trúc song song ồ ạt, GPU có thể đạt được khả năng tăng tốc song song gần như hoàn hảo.

4. Biên dịch đúng lúc (JIT)

Một ưu điểm khác của GPU là biên dịch đúng lúc (JIT), giúp giảm chi phí lập kế hoạch cho khối lượng công việc song song. Trình điều khiển GPU và thời gian chạy có tính năng biên dịch JIT giúp chuyển đổi mã đổ bóng cấp cao thành hướng dẫn thiết bị được tối ưu hóa trước khi thực thi.

Tại sao GPU và CPU hoạt động khác nhau? - 4

Điều này mang lại cho các lập trình viên sự linh hoạt trong khi tránh được bước biên dịch ngoại tuyến truyền thống mà CPU yêu cầu. JIT cũng hỗ trợ tối ưu hóa dựa trên thông tin thời gian chạy và hiệu ứng kết hợp giúp giảm chi phí GPU xuống gần như bằng không.

Ngược lại, CPU phải tuân theo mã máy được biên dịch trước và không thể biên dịch lại một cách thích ứng dựa trên hành vi thời gian chạy, do đó CPU có chi phí lập kế hoạch cao hơn và kém linh hoạt hơn.

5. Mô hình lập trình

So với CPU, GPU cũng cung cấp mô hình lập trình song song CUDA tốt hơn, các nhà phát triển có thể viết mã song song nhanh hơn mà không phải lo lắng về các vấn đề phân luồng, đồng bộ hóa và giao tiếp cấp thấp.

Tại sao GPU và CPU hoạt động khác nhau? - 5

CUDA và OpenCL cung cấp các ngôn ngữ lập trình C/C++, trong đó mã tập trung vào tính toán song song trên các luồng trừu tượng và các chi tiết phối hợp lộn xộn được xử lý một cách ẩn giấu ở hậu trường.

Thay vào đó, tính song song của CPU yêu cầu xử lý các luồng trực tiếp bằng các thư viện như OpenMP. Có sự phức tạp bổ sung đáng kể về mặt quản lý luồng, khóa và tránh các điều kiện chạy đua. Điều này khiến việc suy nghĩ về sự song song ở cấp độ cao trở nên khó khăn hơn.

6. Các phương pháp phản hồi khác nhau

Về cơ bản, CPU phản hồi theo thời gian thực và có yêu cầu cao về tốc độ của một tác vụ, vì vậy nhiều lớp bộ nhớ đệm được sử dụng để đảm bảo tốc độ của một tác vụ.

GPU thường sử dụng cơ chế xử lý hàng loạt, tức là các tác vụ được xếp hàng đợi và xử lý từng tác vụ một.

Tại sao GPU và CPU hoạt động khác nhau? - 6

7. Hướng ứng dụng khác nhau

Các ứng dụng như hệ điều hành mà CPU giỏi cần phản hồi nhanh với thông tin thời gian thực và cần tối ưu hóa độ trễ, do đó số lượng bóng bán dẫn và mức tiêu thụ năng lượng cần được sử dụng trong các bộ phận điều khiển như dự đoán nhánh, out- thực thi theo thứ tự và bộ đệm có độ trễ thấp.

GPU phù hợp với các hoạt động kiến trúc với khả năng dự đoán cực cao và số lượng lớn các hoạt động tương tự cũng như độ trễ cao và thông lượng cao. 

Ứng dụng chính của GPU

GPU hiện được sử dụng rộng rãi trong ba thị trường ứng dụng chính: trò chơi, thực tế ảo và học sâu.

Tại sao GPU và CPU hoạt động khác nhau? - 7

1. Trò chơi

Chơi game là một trong những ứng dụng sớm nhất của GPU. Vì GPU có lợi thế tự nhiên trong việc xử lý hình ảnh và hiệu ứng vật lý nên GPU được sử dụng rộng rãi trong các công cụ trò chơi và kết xuất trò chơi trong phát triển trò chơi. Trong trò chơi, GPU có thể nhanh chóng tính toán một lượng lớn hình học, kết cấu, ánh sáng và bóng tối cũng như các dữ liệu khác để đạt được hiệu ứng hình ảnh chân thực hơn.

2. Thị trường thực tế ảo

Công nghệ thực tế ảo là công nghệ kết hợp hình ảnh ba chiều do máy tính tạo ra với thế giới thực. Trong các ứng dụng thực tế ảo, GPU có thể đạt được khả năng hiển thị thực tế của thế giới ảo và điều khiển chuyển động của đối tượng. Với sự phát triển không ngừng của công nghệ thực tế ảo, GPU ngày càng được sử dụng nhiều trên thị trường thực tế ảo, đặc biệt là trong các thiết bị gắn trên đầu và trải nghiệm sống động.

3. Học sâu

Học sâu là một thuật toán học máy dựa trên mạng lưới thần kinh nhân tạo. Trong học sâu, GPU có thể đào tạo mạng lưới thần kinh một cách hiệu quả và đẩy nhanh quá trình đào tạo thông qua tính toán song song quy mô lớn. Hiện nay, khi ứng dụng GPU trong deep learning tiếp tục được mở rộng, nó đã trở thành công cụ tăng tốc chính cho việc đào tạo các mô hình deep learning.

Ngoài ra, GPU còn có thể được sử dụng trong các lĩnh vực như lái xe tự động, phân tích hình ảnh y tế và kiểm soát rủi ro tài chính. Tuy nhiên, do các kịch bản ứng dụng khác nhau có yêu cầu khác nhau về hiệu suất GPU nên các yếu tố như sức mạnh tính toán, mức tiêu thụ điện năng và các trường ứng dụng cần được xem xét khi chọn GPU. GPU phù hợp nhất cần được lựa chọn dựa trên loại tác vụ và được tối ưu hóa để tận dụng hiệu suất.

Trong quá trình phát triển GPU, sự phụ thuộc của GPU vào CPU và độ khó cao trong việc nghiên cứu và phát triển GPU đã cản trở sự phát triển nhanh chóng của ngành. Đầu tiên, GPU có sự phụ thuộc vào CPU. Cấu trúc GPU không có bộ điều khiển và phải được CPU điều khiển để hoạt động, nếu không GPU không thể hoạt động một mình. Vì vậy, phù hợp với logic phát triển của ngành công nghiệp chip, CPU phải đi trước GPU một bước.

Hơn nữa, công nghệ GPU rất khó. Moor Head, nhà phân tích trưởng tại Moor Insights & Strategy, từng nói: “So với CPU, việc phát triển GPU khó hơn và có ít nhà thiết kế, kỹ sư và nhà phát triển trình điều khiển GPU hơn”. GPU trong nước phát triển chậm là một trong những nguyên nhân quan trọng.

Giờ đây, Việt Nam đang muốn phát triển ngành công nghiệp bán dẫn, một việc rất khó không chỉ đòi hỏi chính sách, nhân lực mà còn rất nhiều tiền. Không biết chúng ta có thể đi đến đâu trong lĩnh vực này, nhưng kiến thức về nó cũng rất đáng để tham khảo, học hỏi.

Theo: VnReview

CÓ THỂ BẠN QUAN TÂM