cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

ssclift
Journeyman III

Stream SDK and 8.501 Linux Driver + Double Precision Question

Does the driver work, does cos(double) work?

I've just grabbed the 8.501 (8.6) release of the Catalyst driver for Linux, which I note is a higher release number than that of the driver with SDK 1.1.  I'm using a Radeon 3870.  Is the 8.501 Linux Catalyst driver what I should be using?

Also, In Brook+ do the Kernel intrinsics work with double or only float numbers.  So should

double a;
double b;
...
b = cos(a);

work.  (So far it doesn't work for me).

 

0 Likes
7 Replies
rahulgarg
Adept II

1. I upgraded to the new drivers on a ubuntu 32-bit machine. works fine for me with CAL. I dont use brook but I see no reason why it should not work since brook uses CAL anyway.

2. I dont think there is support for sin/cos etc for doubles built into the hardware.

0 Likes

That's consistent with my results today.

I'm not sure about all of the intrinsic operations being float-only.  For example, this compiles:

kernel void
check_ops( double fu<>, out double bar<> )
{
double x;

bar = fmod(fu,10.0);
clamp( bar, (double) 1.0, (double) 2.0 );
x = dot( fu, bar );
}

From the R600 instruction set I can't really tell what is available in double precision and the intermediate language document doesn't seem to be on line.

If the usual double-single computations are happening for the arithmetic operations, then there are extensions of various transcendental operations (see dsfun90 for example) but I have no feeling for how well these would work in a GPGPU context.

I see also that Brook defines a double2, which I suppose is reasonable since the double is two floats.

 

0 Likes
rahulgarg
Adept II

Look for the IL document in the amdcal installation folder.
On my machine it is /usr/local/amdcal/doc/il.pdf
The IL documentation installed by default.

0 Likes

Thanks, I'd missed it.

I'm guessing that even if the FPU's in the GPU don't do transcendentals to double precision that it would be useful, depending on how the double-single representation works in the GPU, to have approximations.  I was looking more into DSFUN90 (the classic Fortran implementation) and I'm guessing those approaches could be adapted easily enough, possibly using the single-precision result as a starting point for cases where iteration is required.

0 Likes

Could someone from AMD address my questions about DP kernel intrinsics, please?

Thanks.

0 Likes

Hi ssclift,

I apologize for the delay in responding! I couple of us were out at ISC'08 in Dresden last week and have been trying desperately to catch up to forum and other emails.

In Brook+, double precision transcendental functions don't exist at the moment. You will need to convert down to a single precision variable, perform your transcendental operation, and convert back to double.

http://forums.amd.com/devforum...tid=328&threadid=95041 is a similar thread on this topic.

Michael.
0 Likes

Thanks!

Last time I was in Dresden it took me a couple of days to "catch up" as well.

 

0 Likes