Cơ chế đa luồng của GPU đƣợc thiết kế để đạt đƣợc các mục đích sau:
Để che giấu độ trễ của việc tải từ bộ nhớ và tải kết cấu từ DRAM và các bộ nhớ chia sẻ
42
Việc truy cập bộ nhớ có thể mất hàng trăm chu kì của bộ xử lý. Cơ chế đa luồng giúp cho bộ xử lý có thể chuyển đổi sang luồng khác trong khi một luồng đang chờ kết quả tải hoặc tái tạo kết cấu để tiếp tục làm việc. Do cơ chế đa luồng ở mức cao giúp cho bộ xử lý đa nhân luôn ở trạng thái làm việc dù cho nhiều luồng đang chờ đợi quá trình tải thông tin từ bộ nhớ nhƣng số lƣợng các luồng đang hoạt động vẫn luôn đƣợc duy trì ở mức đảm bảo, do đó xác suất bộ xử lý “rảnh rỗi” sẽ thấp.
Để hỗ trợ mô hình lập trình shader đồ họa tinh và mô hình tính toán song song:
Các chƣơng trình shader đồ họa thƣờng phải thực thi nhiều trạng thái khác nhau từ đổ bóng đỉnh đến đổ bóng pixel do đó các bộ xử đa nhân dòng đƣợc thiết kế để thực thi nhiều luồng khác nhau đồng thời.
Để ảo hóa các bộ xử lý vật lý thành các luồng và các khối luồng dễ dàng mở rộng
Hơn nữa, mỗi luồng đều có thanh ghi, bộ nhớ, bộ đếm chƣơng trình và trạng thái thực thi của riêng nó và có thể thực thi các đoạn mã riêng biệt tuần tự. Để đạt đƣợc những yêu cầu trên, bộ xử lý nhiều lõi GPU phải có cơ chế đa luồng tích hợp ở phần cứng, có khả năng quản lý hàng trăm luồng mà không phải hao phí cho các đầu mục để quản lý xếp lịch. Các luồng trong cùng một khối luồng đồng bộ với nhau qua chỉ thị đồng bộ rào chắn.
Để đơn giản hóa mô hình lập trình song song giúp cho lập trình viên chỉ phải viết những đoạn mã kernel tuần tự
Tính chất song song của phần mở rộng CUDA thêm vào đối với C và C++là các chức năng kernel. Điều đó giúp cho đơn giản hóa logic của các phần mềm song song dữ liệu.