cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

stevenovakov
Adept I

clAmdFft - Multi-Device enqueueTransform Failure

I hope you guys can tell how obsessed I am with trying to get this to work due to the sheer volume of my recent posts on the topic

Anyways, essentially, I have a large matrix of dual polarizations, and I'm needing to fft each column individually. Here is is a summary of how this plays out in the handler, (shown below).

for columnIterator:

    for device:

          clAmdFftEnqueueTransform (  deviceCommandQueue , columnIterator->data() )

          deviceCommandQueue->flush()

          columnIterator++

    for device

          deviceCommandQueue->finish()

Every time, without failure, for any number of columns greater than 1 column, I get the following error in console, (here there are 2 columns):

Created CommQueue, Dev: 0

Created CommQueue, Dev: 1

Enqueueing Column : 0

Enqueueing Column : 1

OPENCL_V< CLFFT_INVALID_PROGRAM_EXECUTABLE > (1201): clEnqueueNDRangeKernel failed

OPENCL_V< CLFFT_INVALID_PROGRAM_EXECUTABLE > (1201): clEnqueueNDRangeKernel failed

FINAL Read 0 Complete

FINAL Read 1 Complete

However, upon closer inspection, it seems that, in fact, it is the second DEVICE which is consistently failing to enqueue the kernels:

Created CommQueue, Dev: 0

Created CommQueue, Dev: 1

Enqueueing Column : 0

Enqueueing Column : 1

OPENCL_V< CLFFT_INVALID_PROGRAM_EXECUTABLE > (1201): clEnqueueNDRangeKernel failed

OPENCL_V< CLFFT_INVALID_PROGRAM_EXECUTABLE > (1201): clEnqueueNDRangeKernel failed

FINAL Read 0 Complete

FINAL Read 1 Complete

Enqueueing Column : 2

Enqueueing Column : 3

OPENCL_V< CLFFT_INVALID_PROGRAM_EXECUTABLE > (1201): clEnqueueNDRangeKernel failed

OPENCL_V< CLFFT_INVALID_PROGRAM_EXECUTABLE > (1201): clEnqueueNDRangeKernel failed

FINAL Read 2 Complete

FINAL Read 3 Complete

Enqueueing Column : 4

Enqueueing Column : 5

OPENCL_V< CLFFT_INVALID_PROGRAM_EXECUTABLE > (1201): clEnqueueNDRangeKernel failed

OPENCL_V< CLFFT_INVALID_PROGRAM_EXECUTABLE > (1201): clEnqueueNDRangeKernel failed

FINAL Read 4 Complete

FINAL Read 5 Complete


...etc... for N devices. Notice that the 0, 2, 4, etc enqueues (Device 0), work perfectly well.     The handler is attached as a text file.

Any ideas? Thanks.

0 Likes
10 Replies