Trang chủ » làm thế nào để » Tại sao chúng ta vẫn sử dụng CPU thay vì GPU?

    Tại sao chúng ta vẫn sử dụng CPU thay vì GPU?

    Ngày càng có nhiều GPU được sử dụng cho các nhiệm vụ phi đồ họa như tính toán rủi ro, tính toán động lực học chất lỏng và phân tích địa chấn. Điều gì ngăn chúng tôi áp dụng các thiết bị điều khiển GPU?

    Phiên hỏi và trả lời hôm nay đến với chúng tôi nhờ SuperUser - một phân ngành của Stack Exchange, một nhóm các trang web hỏi đáp trong cộng đồng.

    Câu hỏi

    Trình đọc SuperUser Ell cập nhật tin tức công nghệ và tò mò tại sao chúng tôi không sử dụng nhiều hệ thống dựa trên GPU hơn:

    Dường như với tôi rằng những ngày này rất nhiều tính toán được thực hiện trên GPU. Rõ ràng đồ họa được thực hiện ở đó, nhưng sử dụng CUDA và tương tự, AI, thuật toán băm (nghĩ Bitcoin) và các thuật toán khác cũng được thực hiện trên GPU. Tại sao chúng ta không thể tự mình loại bỏ CPU và sử dụng GPU? Điều gì làm cho GPU nhanh hơn nhiều so với CPU?

    Tại sao thực sự? Điều gì làm cho CPU trở nên độc đáo?

    Câu trả lời

    DragonLord, người đóng góp cho SuperUser cung cấp một cái nhìn tổng quan được hỗ trợ tốt về sự khác biệt giữa GPU và CPU:

    TL; DR trả lời: GPU có nhiều lõi xử lý hơn CPU, nhưng vì mỗi lõi GPU chạy chậm hơn đáng kể so với lõi CPU và không có các tính năng cần thiết cho các hệ điều hành hiện đại, chúng không phù hợp để thực hiện hầu hết việc xử lý trong máy tính hàng ngày. Chúng phù hợp nhất với các hoạt động chuyên sâu tính toán như xử lý video và mô phỏng vật lý.

    Câu trả lời chi tiết: GPGPU vẫn là một khái niệm tương đối mới. GPU ban đầu chỉ được sử dụng để kết xuất đồ họa; khi công nghệ tiến bộ, số lượng lớn lõi trong GPU so với CPU đã được khai thác bằng cách phát triển khả năng tính toán cho GPU để chúng có thể xử lý đồng thời nhiều luồng dữ liệu, bất kể dữ liệu đó có thể là gì. Mặc dù GPU có thể có hàng trăm hoặc thậm chí hàng nghìn bộ xử lý luồng, mỗi bộ xử lý chạy chậm hơn lõi CPU và có ít tính năng hơn (ngay cả khi chúng đã hoàn thành và có thể được lập trình để chạy bất kỳ chương trình nào CPU có thể chạy). Các tính năng bị thiếu trong GPU bao gồm ngắt và bộ nhớ ảo, được yêu cầu để triển khai hệ điều hành hiện đại.

    Nói cách khác, CPU và GPU có kiến ​​trúc khác nhau đáng kể giúp chúng phù hợp hơn với các nhiệm vụ khác nhau. GPU có thể xử lý một lượng lớn dữ liệu trong nhiều luồng, thực hiện các thao tác tương đối đơn giản trên chúng, nhưng không phù hợp với xử lý nặng hoặc phức tạp trên một hoặc một vài luồng dữ liệu. CPU nhanh hơn nhiều trên cơ sở mỗi lõi (về hướng dẫn mỗi giây) và có thể thực hiện các hoạt động phức tạp trên một hoặc một vài luồng dữ liệu dễ dàng hơn, nhưng không thể xử lý đồng thời nhiều luồng hiệu quả.

    Do đó, GPU không phù hợp để xử lý các tác vụ không được hưởng lợi đáng kể hoặc không thể song song, bao gồm nhiều ứng dụng tiêu dùng phổ biến như bộ xử lý văn bản. Hơn nữa, GPU sử dụng kiến ​​trúc cơ bản khác nhau; người ta sẽ phải lập trình một ứng dụng dành riêng cho GPU để nó hoạt động và cần có các kỹ thuật khác nhau đáng kể để lập trình GPU. Các kỹ thuật khác nhau này bao gồm ngôn ngữ lập trình mới, sửa đổi ngôn ngữ hiện có và mô hình lập trình mới phù hợp hơn để thể hiện một tính toán như một hoạt động song song được thực hiện bởi nhiều bộ xử lý luồng. Để biết thêm thông tin về các kỹ thuật cần thiết để lập trình GPU, hãy xem các bài viết trên Wikipedia về xử lý luồng và tính toán song song.

    GPU hiện đại có khả năng thực hiện các hoạt động vectơ và số học dấu phẩy động, với các thẻ mới nhất có khả năng thao tác các số dấu phẩy động có độ chính xác kép. Các khung như CUDA và OpenCL cho phép các chương trình được viết cho GPU và bản chất của GPU làm cho chúng phù hợp nhất với các hoạt động song song cao, như trong điện toán khoa học, trong đó một loạt thẻ tính toán GPU chuyên dụng có thể thay thế cho một loại nhỏ tính toán cụm như trong Siêu máy tính cá nhân NVIDIA Tesla. Người tiêu dùng có GPU hiện đại có kinh nghiệm với Folding @ home có thể sử dụng chúng để đóng góp cho khách hàng GPU, có thể thực hiện mô phỏng gấp protein ở tốc độ rất cao và đóng góp nhiều công việc hơn cho dự án (trước tiên hãy đọc Câu hỏi thường gặp, đặc biệt là những câu hỏi liên quan đến GPU). GPU cũng có thể cho phép mô phỏng vật lý tốt hơn trong các trò chơi video bằng PhysX, tăng tốc mã hóa và giải mã video và thực hiện các tác vụ chuyên sâu tính toán khác. Đây là những loại nhiệm vụ mà GPU phù hợp nhất để thực hiện.

    AMD đang tiên phong thiết kế bộ xử lý có tên là Bộ xử lý tăng tốc (APU) kết hợp các lõi CPU x86 thông thường với GPU. Điều này có thể cho phép các thành phần CPU và GPU hoạt động cùng nhau và cải thiện hiệu suất trên các hệ thống có không gian hạn chế cho các thành phần riêng biệt. Khi công nghệ tiếp tục phát triển, chúng ta sẽ thấy mức độ hội tụ ngày càng tăng của các bộ phận riêng biệt này. Tuy nhiên, nhiều tác vụ được thực hiện bởi các hệ điều hành và ứng dụng PC vẫn phù hợp hơn với CPU và cần nhiều công việc để tăng tốc chương trình sử dụng GPU. Do rất nhiều phần mềm hiện có sử dụng kiến ​​trúc x86 và vì GPU yêu cầu các kỹ thuật lập trình khác nhau và thiếu một số tính năng quan trọng cần thiết cho hệ điều hành, nên việc chuyển đổi chung từ CPU sang GPU cho máy tính hàng ngày là vô cùng khó khăn.


    Có một cái gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.