cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

gdebrecz
Journeyman III

Re: Apple's FFT on AMD cards with C++ OpenCL API

Hi,

Thanks for spotting all these out. I re-run my performance test again:

gdebrecz@xxxxxx:~/amdfft$ lspci | grep -i radeon

04:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Cayman XT [Radeon HD 6970]

here are some timing tests for C2C ForwardFFT as a function of the length (power of 2)

7 128 339.259 fft / sec2.9476ms / fft
8 256 519.462 fft / sec1.92507ms / fft
9 512 392.807 fft / sec2.54578ms / fft
10 1024 303.491 fft / sec3.29499ms / fft
11 2048 275.528 fft / sec3.6294ms / fft
12 4096 138.66 fft / sec7.21186ms / fft
13 8192 163.3 fft / sec6.1237ms / fft
14 16384 136.564 fft / sec7.32257ms / fft
15 32768 181.027 fft / sec5.52405ms / fft
16 65536 227.177 fft / sec4.40185ms / fft
17 131072 113.805 fft / sec8.78693ms / fft
18 262144 121.572 fft / sec8.22555ms / fft
19 524288 97.6293 fft / sec10.2428ms / fft
20 1048576 101.543 fft / sec9.84801ms / fft
21 2097152 80.9414 fft / sec12.3546ms / fft
22 4194304 78.31 fft / sec12.7698ms / fft
23 8388608 40.6493 fft / sec24.6007ms / fft
24 16777216 29.2014 fft / sec34.245ms / fft

are these numbers reasonable, or I do something wrong ? I create a context only one GPU device in it, still

during the test I see the CPU running 100%...is it possible that it runs on the CPU then, why it is so slow ?

thanks again for your help and  ansewers...

here is the relevant code pieces from the testing:

  clAmdFftSetupData  fftSetupData;

  clAmdFftPlanHandle fftPlan;

  clAmdFftDim fftDim = CLFFT_1D;

  clAmdFftSetup(&fftSetupData);

  clAmdFftInitSetupData(&fftSetupData);

.

.

.

  cl::Buffer * d_src = new cl::Buffer(myRuntimeEnv.appContexts[0], CL_MEM_READ_WRITE, buffersize, NULL, &err);

  if (err != 0 ) { std::cout << "Error creating buffer1. Exiting. Error code: " << err << endl;  return -1;}

  cl::Buffer * d_dest = new cl::Buffer(myRuntimeEnv.appContexts[0], CL_MEM_READ_WRITE, buffersize, NULL, &err);

  if (err != 0 ) { std::cout << "Error creating buffer2. Exiting. Error code: " << err <<< endl;  return -1;}

.

.

.

for (.....

clAmdFftEnqueueTransform(fftPlan, CLFFT_FORWARD, 1,

            &myRuntimeEnv.appQueues[0](), 0, NULL, NULL, &(*d_src)(), &(*d_dest)(), NULL);

}

Gergely

0 Likes
Meteorhead
Challenger

Re: Apple's FFT on AMD cards with C++ OpenCL API

I would also be interested in what the issue is at hand here... I do not find anything wrong with the code.

0 Likes
Micha_M
Journeyman III

Re: Apple's FFT on AMD cards with C++ OpenCL API

Hi,

I am interested in  OpenCL  source code that run Apple's FFT  using Visual studio 2010 and windows 7.

Is someone have a link or have this source code?

Thanks,

Micha

0 Likes
ash
Journeyman III

Re: Apple's FFT on AMD cards with C++ OpenCL API

Hi,

I'm trying to use the Apple's lib for FFT(forward/inverse) in my project. I'm on linux working with Nvidia GPU and found some code adapted from Apple's sample on Github to linux. It compiles fine.

So I added the files of the samples in my program and it also compiles. However at the execution, when I call the function createPlan I have this error :

undefined symbol: _Z5FFT1DP11cl_fft_plan12kernel_dir_t

Did you encountered this error too? I hope you'll be able to help. If I could make it work it would be nice progress for me.

Best regards,

ash

0 Likes