Tôi đã sử dụng atomicMax()
để tìm giá trị lớn nhất trong các hạt nhân CUDA:Chúng ta không thể sử dụng các phép toán nguyên tử cho các biến số dấu chấm động trong CUDA?
__global__ void global_max(float* values, float* gl_max)
{
int i=threadIdx.x + blockDim.x * blockIdx.x;
float val=values[i];
atomicMax(gl_max, val);
}
Nó được ném các lỗi sau:
error: no instance of overloaded function "atomicMax" matches the argument list
Các loại đối số là: (float *, float)
.
Để thực hiện phiên bản floaticMin float, chỉ cần thay thế fmaxf bằng fminf. – Madhatter