NVCC tối ưu hóa mã thiết bị như thế nào? Liệu nó có thực hiện bất kỳ loại tối ưu nào như xếp liên tục và loại trừ biểu hiện chung không?NVCC hoạt động tốt như thế nào khi tối ưu hóa mã?
Ví dụ, nó sẽ làm giảm sau:
float a = 1/sqrtf(2 * M_PI);
float b = c/sqrtf(2 * M_PI);
này:
float sqrt_2pi = sqrtf(2 * M_PI); // Compile time constant
float a = 1/sqrt_2pi;
float b = c/sqrt_2pi;
gì về tối ưu hóa thông minh hơn, liên quan đến hiểu biết ngữ nghĩa của hàm toán học:
float a = 1/sqrtf(c * M_PI);
float b = c/sqrtf(M_PI);
để này:
float sqrt_pi = sqrtf(M_PI); // Compile time constant
float a = 1/(sqrt_pi * sqrtf(c));
float b = c/sqrt_pi;
Vì vậy, nó * * liên tục gấp sau đó? Và trình biên dịch nào là nvOpen64? Đó là phiên bản của NVidia hay một phiên bản OSS? Còn trường hợp thứ hai thì sao? –
nvOpen64 là trình biên dịch NVIDIA, dựa trên [Open64] (http://www.open64.net/) (lưu ý nvcc không phải là trình biên dịch), – talonmies
Xin lỗi vì sự thiếu hiểu biết của tôi, nhưng chính xác thì nvcc là gì nếu nó không phải là trình biên dịch? –