Tôi có một hạt nhân sử dụng 17 thanh ghi, giảm xuống còn 16 sẽ mang lại cho tôi 100% dung lượng. Câu hỏi của tôi là: có những phương pháp có thể được sử dụng để giảm số lượng hoặc sổ đăng ký được sử dụng, không bao gồm viết lại hoàn toàn thuật toán của tôi theo cách khác. Tôi đã luôn luôn loại giả định trình biên dịch là thông minh hơn rất nhiều so với tôi, vì vậy ví dụ tôi thường sử dụng các biến thêm cho lợi ích của rõ ràng một mình. Tôi có sai trong suy nghĩ này không?Giảm số lượng thanh ghi được sử dụng trong hạt nhân CUDA
Xin lưu ý: Tôi biết về --max_registers (hoặc bất kỳ cú pháp là) cờ, nhưng việc sử dụng bộ nhớ địa phương sẽ có nhiều bất lợi hơn so với một công suất thấp hơn 25% (tôi nên kiểm tra này)
Lạ lùng thay, tôi chỉ cố gắng ra maxrregcount = 16 và nó thực sự giảm số lượng thanh ghi Tôi đã sử dụng đến 15 và không có ký ức địa phương được sử dụng . Nhưng nó thực sự đã chậm hơn! Nó hoạt động như thế nào? – zenna
cố gắng lập hồ sơ ứng dụng của bạn. Trình biên dịch cũng có thể giới thiệu một số shenanigans. – Anycorn
Số người dùng cao hơn với 15 thanh ghi như tôi đã dự đoán và mọi thứ khác đều giống nhau, ngoại trừ số lượng lệnh tăng lên với số lượng đăng ký thấp hơn. từ 3.9M đến 4.3M – zenna