I’ve been running the exact same brook binary on two different cards - NVIDIA GeForce 7900 and NVIDIA Tesla C870 (both on the same machine). While trying to figure out why I was getting very different results on the two GPUs, I finally narrowed it down to the following - when running on Tesla, streamRead would turn every negative value into 0 and every value > 1 into 1 (values between 0 and 1 would be transferred correctly)! Nothing like that happens with NVIDIA GeForce 7900.
This can be observed either by following a streamRead with streamWrite - this would show that all values were truncated. Or insert a simple “out = in * 100 - 50” kernel call between the streamRead and streamWrite calls - this would return value in the -50…50 range, demonstrating that it’s the streamRead that truncates, not streamWrite. I tried both 1D and 2D streams of floats, with the same result.
I am using brook 0.5 beta1, ogl backend on Red Hat Entreprise Linux wth NVIDIA drivers and libraries v. 169.09.
What’s going on?! How do I get it to stop? Any help would be greatly appreciated.
P.S. Crossposted to gpgpu.org forum