Tôi đã đọc rằng CUDA có thể đọc từ bộ nhớ toàn cầu 128 byte tại thời điểm đó, do đó, nó có ý nghĩa rằng mỗi luồng trong một sợi dọc có thể đọc/ghi 4 byte trong một mẫu được kết hợp với tổng số 128 byte.Tại sao các loại vector CUDA (int4, float4) nhanh hơn?
Đọc/ghi với các loại vectơ như int4 và float4 là faster.
Nhưng điều tôi không hiểu tại sao lại như vậy. Nếu mỗi luồng trong sợi dọc yêu cầu 16 byte và chỉ 128 byte có thể di chuyển qua xe buýt tại một thời điểm, thì hiệu suất đạt được từ đâu?
Có phải vì có ít yêu cầu bộ nhớ hơn, tức là "lấy 16 byte cho mỗi chuỗi trong sợi dọc này" một lần, trái ngược với "lấy 4 byte cho mỗi chuỗi trong sợi dọc này" 4 lần? Tôi không thể tìm thấy bất cứ điều gì trong các tài liệu nói rằng lý do chính xác tại sao các loại vector nhanh hơn.
Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. – Luke
Cảm ơn, chỉ cần làm điều đó. –