Hi, I could find anything on searching for these compiler errors. Is there support for double precision math? Is there a compiler option and/or openacc notation to support this?
17, Accelerator restriction: datatype not supported: a
or
17, Accelerator restriction: unsupported operation: X87TODP
I get these errors from nvc++ when I use ‘long double’ types
long double a;
or
double a = 1.0L + 2;
Hi carlkyu,
Double precision is supported but the GPU’s don’t support 80-bit long double. These should be downgraded to double when generating the GPU code.
80-bit computation on the CPU is done in the x87 FPU, so the “X87TODP” operation is the cast from long double to double. Possibly due to the “1.0L”.
-Mat
I’ve updated the topic title for clarity. I couldn’t find anything on this error or this topic… your response clarifies what’s possible.
Thank you!