Tôi đang làm việc trên thiết bị GPU có độ trễ số nguyên phân chia rất cao, vài trăm chu kỳ. Tôi đang tìm cách tối ưu hóa các bộ phận.Phân chia số nguyên nhanh hơn khi mẫu số được biết?
Tất cả các bộ phận theo mẫu số trong tập hợp {1,3,6,10}, tuy nhiên tử số là giá trị dương thời gian chạy, khoảng 32000 trở xuống. do hạn chế về bộ nhớ, bảng tra cứu có thể không phải là một lựa chọn tốt.
Bạn có thể nghĩ lựa chọn thay thế không? Tôi đã nghĩ về tính toán điểm phao inverses, và sử dụng chúng để nhân tử số.
Cảm ơn
PS. cảm ơn mọi người. bit shift hack là một thực sự mát mẻ. để phục hồi từ roundoff, tôi sử dụng sau đây phân khúc C:
hệ thống// q = m/n
q += (n*(j +1)-1) < m;
vâng, đó là đủ nhỏ. cảm ơn – Anycorn
tôi nhận được lỗi roundoff, nhưng tôi có một cách để phục hồi kết quả chính xác. Cảm ơn bạn – Anycorn
Đối với lỗi roundoff, bạn có thể thử thêm một nửa trước khi chia, trong trường hợp này sẽ là a/b = (a * ((1 << 16)/b) + (1 <<15))>> 16 – drawnonward