Các lõi GPU có hiệu quả có thể chạy nhiều luồng cùng một lúc, do cách chúng chuyển đổi giữa các luồng để ẩn độ trễ . Trên thực tế, bạn cần chạy nhiều luồng trên mỗi lõi để sử dụng đầy đủ GPU của mình.
Một GPU là sâu sắc pipelined , có nghĩa là ngay cả khi hướng dẫn mới đang bắt đầu mỗi chu kỳ, mỗi hướng dẫn cá nhân có thể mất vài chu trình để chạy. Đôi khi, một lệnh phụ thuộc vào kết quả của một lệnh trước đó, vì vậy nó không thể bắt đầu (nhập đường ống) cho đến khi lệnh trước đó kết thúc (thoát khỏi đường ống). Hoặc nó có thể phụ thuộc vào dữ liệu từ RAM sẽ mất một vài chu kỳ để truy cập. Trên CPU, điều này sẽ dẫn đến một " gian hàng đường ống " (hoặc "bong bóng"), khiến một phần của đường ống không hoạt động trong một số chu kỳ, chỉ chờ lệnh mới bắt đầu. Đây là một sự lãng phí tài nguyên máy tính, nhưng nó có thể là không thể tránh khỏi.
Không giống như CPU, lõi GPU có thể chuyển đổi giữa các luồng rất nhanh - theo thứ tự một hoặc hai chu kỳ. Vì vậy, khi một luồng bị trì hoãn trong một vài chu kỳ vì lệnh tiếp theo của nó chưa thể bắt đầu, GPU chỉ có thể chuyển sang một số luồng khác và bắt đầu hướng dẫn tiếp theo của nó. Nếu luồng đó bị kẹt, GPU sẽ chuyển luồng một lần nữa, v.v. Các luồng bổ sung này đang thực hiện công việc hữu ích trong các giai đoạn đường ống có thể không hoạt động trong các chu kỳ đó, vì vậy nếu có đủ các luồng để lấp đầy các khoảng trống của nhau, GPU có thể hoạt động ở mọi giai đoạn đường ống trên mỗi chu kỳ. Độ trễ trong bất kỳ một chủ đề được ẩn bởi các chủ đề khác.
Đây là nguyên tắc tương tự làm nền tảng cho tính năng siêu phân luồng của Intel, làm cho một lõi đơn xuất hiện dưới dạng hai lõi logic. Trong trường hợp xấu nhất, các luồng chạy trên hai lõi đó sẽ cạnh tranh với nhau về tài nguyên phần cứng và mỗi luồng chạy ở tốc độ một nửa. Nhưng trong nhiều trường hợp, một luồng có thể sử dụng các tài nguyên mà người kia không thể - ALU không cần thiết vào lúc này, các giai đoạn đường ống sẽ không hoạt động do quầy hàng - để cả hai luồng chạy với tốc độ hơn 50% tốc độ họ sẽ đạt được nếu chạy một mình. Thiết kế của GPU về cơ bản mở rộng lợi ích này đến hơn hai luồng.
Bạn có thể thấy hữu ích khi đọc Hướng dẫn thực hành tốt nhất CUDA của NVIDIA , cụ thể là chương 10 ("Tối ưu hóa cấu hình thực thi"), cung cấp thông tin chi tiết hơn về cách sắp xếp các luồng của bạn để giữ cho GPU luôn bận rộn.