我想用CUDA在GPU上实现一个算法。同时,我用C++编写了一个CPU版本来验证GPU版本的结果。但是,我在CPU和GPU中使用log()时遇到了麻烦。下面显示了一个非常简单的算法(用于CPU和GPU):
float U;
float R = U * log(U);
然而,当我比较CPU端的结果时,我发现有许多结果(1843161中的459883)有很小的差异(最大dif为0.5)。一些结果如下:
U -- R (CPU side) -- R (GPU side) -- R using Python (U * math.log(U))
86312.0 -- 980998.37