2015-07-16 20 views
9

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.

Trả lời

5

Đoạn cuối cùng của bạn về cơ bản là câu trả lời cho câu hỏi của bạn. Cải thiện hiệu suất đến từ lợi ích hiệu quả, theo hai cách

  1. mức tải hoặc lưu trữ nhiều từ chỉ yêu cầu một lệnh duy nhất, vì vậy tỷ lệ byte trên lệnh cao hơn và tổng số lệnh độ trễ cho một giao dịch bộ nhớ cụ thể thấp hơn.
  2. Ở cấp bộ điều khiển bộ nhớ, yêu cầu giao dịch có kích thước vectơ từ một kết quả dọc trong một lưu lượng bộ nhớ mạng lớn hơn cho mỗi giao dịch, do đó tỷ lệ byte trên mỗi giao dịch cao hơn. Yêu cầu giao dịch ít hơn làm giảm ganh đua bộ điều khiển bộ nhớ và có thể tạo ra mức sử dụng băng thông bộ nhớ tổng thể cao hơn.

Vì vậy, bạn sẽ có được hiệu quả đạt được cả ở bộ điều khiển đa xử và bộ nhớ bằng cách sử dụng hướng dẫn bộ nhớ vector, so với việc ban hành hướng dẫn cá nhân sản xuất giao dịch ký ức cá nhân để có được cùng một lượng byte từ bộ nhớ toàn cầu

3

Bạn có câu trả lời toàn diện cho câu hỏi trong Parallel4All blog: http://devblogs.nvidia.com/parallelforall/cuda-pro-tip-increase-performance-with-vectorized-memory-access/

Lý do chính là ít chỉ số arithmetics mỗi byte được tải trong trường hợp tải trọng véc tơ được sử dụng.

Có một tải trọng khác trong chuyến bay, giúp băng thông bộ nhớ bão hòa trong trường hợp dung lượng thấp.

+0

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

+0

Cảm ơn, chỉ cần làm điều đó. –

Các vấn đề liên quan