Cấu tạo của CPU (vi xử lí trung tâm máy tính) và GPU (vi xử lí đồ họa máy tính) khác nhau như thế nào vậy? Những tác vụ nào được xử lý bởi GPU thay vì CPU và có gì đặc biệt ở cấu tạo của nó làm cho nó phù hợp hơn với các tác vụ đó thế?
____________________
Link Reddit: https://redd . it/euvpps
____________________
u/popejustice (11.4k points)
Câu trả lời tui ưa thích nhất là mỗi nhân CPU tương đương với một người có bằng tiến sĩ, còn GPU thì giống như có một đội quân gồm hàng triệu đứa trẻ mẫu giáo. Ông muốn giải quyết một vấn đề toán học phức tạp sử dụng nhiều dữ liệu? Đưa nó cho 8 tiến sĩ. Ông muốn tô màu một loạt các đốm nhỏ mỗi đốm một màu khác nhau? Bảo các bé mẫu giáo làm ấy.
Edit: haha, rất vui vì tất cả các ông thích cách giải thích này nhiều như tui.
>u/IAmATheLiquor (4.9k points)
Tui vừa dành 600 đô thuê lao động trẻ em để vẽ những đường thẳng tưởng tượng từ mặt trời.
>>u/Pecek (1.3k points)
Đây là cách thích hợp nhất để quảng cáo RTX.
(trans: NVIDIA RTX là nền tảng phát triển đồ họa của NVIDIA, được nhiều người biết đến là giải pháp đầu tiên cho phép sử dụng công nghệ ray-tracing (một kĩ thuật dựng (render) ánh sáng bằng cách truy theo các tia sáng) theo thời gian thực.
____________________
u/LordFauntloroy (4.9k points)
CPU chỉ sử dụng một vài nhân khỏe và tốt hơn nhiều trong các tác vụ tuyến tính phức tạp, trong khi đó GPU sử dụng rất nhiều nhân dù yếu nhưng tốt hơn trong các tác vụ song song. Nói cách khác, CPU được sử dụng để giải các bài toán khó, còn GPU thực hiện nhiều, rất nhiều vấn đề dễ dàng cùng một lúc. Làm việc cùng nhau thì chúng có thể giải quyết bất kì bài kiểm tra nào một cách nhanh chóng và hiệu quả.
>u/Blurgas (1.3k points)
Đó là lí do tại sao GPU rất được ưa chuộng để khai thác tiền điện tử.
>>u/psymunn (950 points)
Chính xác. Công việc tách được thành càng nhiều vấn đề song song thì càng tốt. GPU có thể tạo băm ngẫu nhiên nhanh hơn nhiều so với cpus
>>>u/iVtechboyinpa (544 points)
Vậy tại sao người ta không thiết kế ra các CPU có nhiều lõi yếu cho mục đích như này thế?
>>>>u/Hermanzurr (5.9k points)
Có chứ, người ta gọi đó là GPU.
____________________
u/GummyKibble (76 points)
Tui muốn bổ sung thêm là CPU còn giỏi những thứ như:
– So sánh tọa độ của vật thể viên đạn và tọa độ vật thể địch.
– Nếu hai tọa độ này giống nhau thì:
+ Đọc số điểm được lưu trữ tại một vị trí nhất định trong bộ nhớ.
+ Thêm 10 vào nó.
+ Viết con số mới trở lại vị trí bộ nhớ nơi lưu trữ điểm số.
+ Tra cứu vị trí của điểm bắt đầu chuỗi “hiển thị hình ảnh địch trúng đạn ngã xuống chết tươi” trong bộ nhớ.
+ Nhớ lại xem mình đang xử lí ở phần nào của chương trình.
+ Tạm thời chuyển đến phần “hình ảnh địch trúng đạn” trong chương trình đã tìm được trước đó.
Vân vân và vân vân. CPU thực sự rất giỏi trong việc thực hiện các bước công việc tương đối phức tạp như đã liệt kê ở trên. Nhưng vì mỗi bước có thể có rất nhiều chi tiết phức tạp, nên CPU mất rất nhiều công sức để hoàn thành hết các công việc đó. (Các ông có thể đọc thêm về “instruction pipelining” – en. wikipedia. org/wiki/Instruction_pipelining – nếu ông muốn đi vào vòng xoáy vô tận tìm hiểu về mức độ phức tạp của một chiếc CPU hiện giờ).
GPU chỉ có thể làm được những thứ đơn giản hơn rất nhiều. “Công việc” của GPU giống kiểu:
– Ê tìm một đoạn bộ nhớ bắt đầu tại một vị trí cụ thể này đi.
– Cộng thêm 3 vào 1000 số đầu tiên mày tìm thấy ở đó nha.
Hoặc là:
– Đây là một danh sách gồm 10 triệu số thập phân, kiểu như 2.3 hay 4.7. Cộng từng cặp số với nhau rồi chia đôi, sau đó ghi kết quả vào một danh sách khác. Ồ, với lại nếu tạm coi 2.3 là 2.9999999987 làm cho mày tính toán nhanh hơn, hãy làm thế đi. Ở đây tốc độ xử lí quan trọng hơn sự hoàn hảo toán học.
GPU không thể làm những việc như đưa ra quyết định phức tạp hoặc chuyển sang một phần khác trong chương trình. GPU không được trang bị mạch điện để làm những thứ đó. Nhưng những chỉ dẫn nhỏ bé đơn giản như trên kia ư? GPU xử lí chúng nó cực kì nhanh, và thực hiện cực kì nhiều chỉ dẫn nhỏ bé đơn giản đó cùng một lúc. Một con CPU có thể làm được tất cả những việc của GPU, nhưng mạch điện của nó không được thiết kế tối ưu để “làm một việc bé bé này nhiều lần vlllllll”.
TL; DR:
CPU giống như có một nhà toán học ngồi giải quyết các vấn đề toán học rắc rối.
GPU giống như có một nghìn học sinh mẫu giáo ngồi đếm ngón tay từ 1 đến 10, nhưng tất cả cùng đếm một lúc.
____________________
Bài đăng của bạn Tuấn Linh trong group: https://www.facebook.com/groups/rvn.group/permalink/539490943627785/