2010-03-04 38 views
5

Hướng dẫn lập trình CUDA khẳng định rằngÝ nghĩa của băng thông trong CUDA và lý do tại sao điều quan trọng là

"băng thông là một trong những yếu tố gating quan trọng nhất để thực hiện. Hầu như tất cả các thay đổi mã nên được thực hiện trong bối cảnh cách chúng ảnh hưởng đến băng thông. "

Nó tiếp tục tính toán băng thông lý thuyết theo thứ tự hàng trăm gigabyte trên giây. Tôi đang ở một mất mát là tại sao có bao nhiêu byte người ta có thể đọc/ghi vào bộ nhớ toàn cầu là một sự phản ánh của một hạt nhân được tối ưu hóa tốt như thế nào.

Nếu tôi có hạt nhân thực hiện tính toán chuyên sâu trên dữ liệu được lưu trữ trong bộ nhớ chia sẻ và/hoặc sổ đăng ký, chỉ đọc một lần khi bắt đầu và ghi ra từ đầu đến bộ nhớ toàn cục, chắc chắn băng thông hiệu quả sẽ là nhỏ, trong khi hạt nhân chính nó có thể rất hiệu quả.

Có thể giải thích thêm bất kỳ băng thông nào trong ngữ cảnh này không?

Cảm ơn

Trả lời

4

hầu hết tất cả các hạt tính toán phi thường, trong vùng CPU và GPU, bộ nhớ bị ràng buộc. GPU có cường độ và thông lượng tính toán rất cao, nhưng truy cập vào bộ nhớ chính rất chậm và có độ trễ cao, vài trăm chu kỳ cho mỗi lần đọc/lưu trữ so với bốn chu kỳ đối với các phép tính số học mmany.

Có vẻ như hạt nhân của bạn bị ràng buộc tính toán, vì vậy bạn sẽ gặp may mắn. Tuy nhiên bạn vẫn phải xem xét xung đột ngân hàng bộ nhớ chia sẻ, có thể tuần tự hóa các phần mã bất ngờ.

0

Các hạt nhân thường khá nhỏ và đơn giản và thực hiện cùng thao tác trên nhiều dữ liệu. Bạn có thể có một loạt các hạt nhân mà bạn gọi theo thứ tự để thực hiện một số hoạt động phức tạp hơn (nghĩ về nó như một đường ống xử lý). Rõ ràng thông lượng của đường ống của bạn sẽ phụ thuộc vào mức độ hiệu quả của hạt nhân của bạn và cho dù bạn bị giới hạn bởi băng thông bộ nhớ theo bất kỳ cách nào.

1

Hầu hết hạt nhân là bộ nhớ bị ràng buộc để tối đa hóa thông lượng bộ nhớ là rất quan trọng. Nếu bạn đủ may mắn để có một hạt nhân tính toán thì việc tối ưu hóa để tính toán thường dễ dàng hơn. Bạn cần phải tìm ra sự phân kỳ và bạn vẫn nên đảm bảo bạn có đủ luồng để ẩn độ trễ của bộ nhớ.

Kiểm tra bản trình bày Advanced CUDA C để biết thêm thông tin, bao gồm một số mẹo về cách so sánh hiệu suất đã thực hiện của bạn với hiệu suất lý thuyết. Các thực hành tốt nhất của CUDA Gude cũng có một số thông tin tốt, nó có sẵn như một phần của bộ công cụ CUDA (tải xuống từ NVIDIA site).

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