OpenCL-CTS
OpenCL-CTS copied to clipboard
Fixes for basic explicit_s2v and commonfns degrees for cl_half
Basic explicit_s2v:
The verification step was always using round to even when converting a float to half even for round to zero cores.
Commonfns degrees:
The verification step was only taking into account infinities and not values that over/underflow. This resulted in an incorrect error calculation. E.g:
double cpu_result = 175668.85998711039; cl_half gpu_result = 31743; // this is 65504 when converting to float, we overflowed. float error = (cpu_result - gpu_result) * some_factor;
The fix adds the check if( (cl_half) reference == test ) before calculating the error.