clFFT using multiple queues and/or buffers

100 views
Skip to first unread message

Gale Straney

unread,
Jan 22, 2016, 3:16:11 PM1/22/16
to clmath
Has anyone tried using multiple queues or buffers in the clfftEnqueueTransform routine. I'm trying to input a buffer 512 batches by 16384 samples, rotate this by 50% of one FFT (8192 samples) into another buffer, window the FFT's of both buffers, parallel process both buffers using clfftEnqueueTransform and combine the results of the output buffers. I tried doing this as two separate calls to clfftEnqueueTransform and flushing the queues, this parallel processes them nicely but I get anomalies in the output like the data in the buffers are getting mixed up. If I use the output event of one as the input event of the other I get good data but now I'm processing serially. I noticed the ability of clfftEnqueueTransform to except multiple input and output buffers and/or queues and events but I can't find any examples or documentation on how this works. Any help would be appreciated. 

bragadeesh

unread,
Jan 25, 2016, 7:16:21 PM1/25/16
to clmath
Please be aware that multiple queues is not supported in 1 instance of a call to clfftEnqueueTransform. You MUST call clfftEnqueueTransform 2 times (passing in 1 queue each time) if you wish to use 2 different queues.
People have successfully used the library with 2 or more queues (each associated with different GPUs) to parallel process provided they call clfftEnqueueTransform appropriately. It is not explicitly clear from your post that if you are using multiple GPUs, or just multiple queueus on single GPU. If my answer is not clear, please let me know. If you have code for me to look at, I can point out the error pretty quickly.
Reply all
Reply to author
Forward
0 new messages