Bộ xử lý đồ họa
Phân loại > Xử lý dòng chảy (Stream processing) và GPU đa năng (GPGPU)

Việc sử dụng các GPU đa năng (GPGPU) như một bộ xử lý dòng chảy (hoặc bộ xử lý vectơ) để chạy các compute kernel ngày càng trở nên phổ biến. Ý tưởng này biến sức mạnh tính toán khổng lồ của GPU hiện đại thành sức mạnh tính toán có mục đích chung, thay vì chỉ để thực hiện các tác vụ đồ họa. Trong một số ứng dụng nhất định đòi hỏi lượng phép toán vectơ khổng lồ, điều này có thể mang lại hiệu suất cao hơn vài bậc so với CPU thông thường. Hai nhà thiết kế GPU rời lớn nhất (xem phần "Cạc đồ họa chuyên dụng" ở trên), AMD và Nvidia, đang bắt đầu theo đuổi cách tiếp cận này với một loạt các ứng dụng. Cả Nvidia và AMD đều đã hợp tác với Đại học Stanford để tạo ra một ứng dụng khách dựa trên GPU cho dự án điện toán phân tán Folding@home, phục vụ cho các phép tính gấp protein. Trong một số trường hợp nhất định, GPU tính toán nhanh hơn bốn mươi lần so với các CPU trong cùng ứng dụng.
GPGPU có thể được sử dụng cho nhiều tác vụ song song hoàn toàn như ray tracing. Chúng thường phù hợp với các kiểu phép tính thông lượng cao với dữ liệu song song để khai thác kiến ​​trúc SIMD vectơ rộng của GPU.
Hơn nữa, các máy tính hiệu suất cao dựa trên GPU đang bắt đầu đóng một vai trò quan trọng trong việc tạo mô hình quy mô lớn. Ba trong số 10 siêu máy tính mạnh nhất trên thế giới tận dụng khả năng tăng tốc của GPU.
GPU hỗ trợ các phần mở rộng API cho ngôn ngữ lập trình C như OpenCL và OpenMP. Hơn nữa, mỗi nhà cung cấp GPU giới thiệu API của riêng mình, chỉ hoạt động với card của họ: AMD APP SDK và CUDA của AMD và Nvidia. Các công nghệ này cho phép các hàm định sẵn, gọi là compute kernel từ một chương trình C thông thường để chạy trên bộ xử lý dòng của GPU. Điều này giúp các chương trình C có thể tận dụng khả năng của GPU để thao tác song song trên các bộ đệm lớn, trong khi vẫn sử dụng CPU khi thích hợp. CUDA cũng là API đầu tiên cho phép các ứng dụng dựa trên CPU truy cập trực tiếp vào tài nguyên của GPU để tính toán cho mục đích chung hơn mà không bị giới hạn bởi việc sử dụng API đồ họa.[cần dẫn nguồn]
Kể từ năm 2005, người ta đã quan tâm đến việc sử dụng hiệu suất được cung cấp bởi GPU để tính toán tiến hóa nói chung và để đẩy nhanh đánh giá độ phù hợp trong lập trình di truyền nói riêng. Hầu hết các cách tiếp cận đều biên dịch các chương trình dạng cây hoặc tuyến tính trên PC chủ và chuyển tệp thực thi sang GPU để chạy. Thông thường, lợi thế về hiệu suất chỉ có được khi chạy chương trình hoạt động duy nhất đồng thời trên nhiều bài toán mẫu một cách song song, sử dụng kiến ​​trúc SIMD của GPU. Tuy nhiên, cũng có thể đạt được khả năng tăng tốc đáng kể bằng cách không biên dịch các chương trình mà thay vào đó chuyển chúng sang GPU để diễn dịch. Sau đó có thể tăng tốc bằng cách diễn dịch nhiều chương trình đồng thời hoặc chạy đồng thời nhiều bài toán mẫu, hoặc kết hợp cả hai cách. Một GPU hiện đại có thể diễn dịch đồng thời hàng trăm nghìn chương trình rất nhỏ một cách dễ dàng.
Một số GPU máy trạm hiện đại, chẳng hạn như Nvidia Quadro sử dụng kiến ​​trúc Volta và Turing, có các lõi xử lý dành riêng cho các ứng dụng học sâu dựa trên tensor. Trong loạt GPU hiện tại của Nvidia, các lõi này được gọi là Lõi Tensor. Các GPU này thường có hiệu suất FLOPS tăng đáng kể, sử dụng phép nhân và chia ma trận 4x4, dẫn đến hiệu suất phần cứng lên đến 128 TFLOPS trong một số ứng dụng. Các lõi tensor này cũng được cho là xuất hiện trong dòng sản phẩm người tiêu dùng sử dụng kiến ​​trúc Turing và có thể trong dòng sản phẩm người tiêu dùng Navi của AMD.
Vi xử lý ANTIC (1979) trong một máy Atari 130XE
NEC μPD7220A
IBM 8514
VisionTek GeForce 256, với chipset GeForce 256 của NVIDIA.
Vị trí của GPU trong sơ đồ một hệ thống northbrige/southbridge