1

I just found that on my (pretty expensive) Radeon 6970, only cl_amd_fp64 extension is supported. I am getting odd results in some parts of the code (accessing the value of 0.005 actually uses 1.99916e+37?) when running with cl_amd_fp64. Using cl_khr_fp64 with Intel SDK on the CPU works just fine. (The input buffers are exactly the same)

The extension page gives very little information.

What are exactly the differences between both?

1 Answer 1

2

cl_khr_fp64 is the Khronos official double precision floating point precision extension. It requires that arithmetic be IEEE 754-2008 compliant, and the full range of OpenCL vector types and standard library functions be supported.

Initially, AMD only implemented a subset of what the cl_khr_fp64 extension requires, so they issued there own vendor extension cl_amd_fp64 for supporting double precision on their GPU hardware. When it first appeared, the range of support was very limited (perhaps only +,-,* with non standard rounding behaviour IIRC), but it has slowly expanded with successive SDK releases and newly hardware revisions. They list what is supported in their release notes, if my memory serves correctly.

I haven't followed their progress closely for a while, so I am not sure why what you are seeing might be occurring. If you have the latest driver and stream SDK version installed, I would suggest putting together a repro case and filing a bug report with them. It might be you are using something they don't support or guarantee the results of, but it could also be that you have found a bug.

1
  • Thanks. I just found out the bug is triggered only for some arrangements within a struct, likely alignment issues (union{ struct{ double; };} after int is buggy, if the union comes after double4, it is OK). I will try to play with that, to find about a possible cause and isolate a minimum example.
    – eudoxos
    Commented Feb 2, 2012 at 22:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.