arrayfire-python icon indicating copy to clipboard operation
arrayfire-python copied to clipboard

RuntimeError: In function void opencl::fft_inplace

Open brianmcconnel opened this issue 3 years ago • 1 comments

Using this arrayfire release (https://arrayfire.s3.amazonaws.com/3.8.0/ArrayFire-v3.8.0_Linux_x86_64.sh) on the opencl backend with the python api I get the following error.

import arrayfire as af
af.set_backend('opencl')
random_signal = af.random.randn(100)
test = af.signal.fft(random_signal)

Error

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-7-a744aa37e707> in <module>
----> 1 test = af.signal.fft(random_signal)

~/miniconda3/envs/af/lib/python3.7/site-packages/arrayfire/signal.py in fft(signal, dim0, scale)
    177 
    178     output = Array()
--> 179     safe_call(backend.get().af_fft(c_pointer(output.arr), signal.arr, c_double_t(scale), c_dim_t(dim0)))
    180     return output
    181 

~/miniconda3/envs/af/lib/python3.7/site-packages/arrayfire/util.py in safe_call(af_error)
     77         err_len = c_dim_t(0)
     78         backend.get().af_get_last_error(c_pointer(err_str), c_pointer(err_len))
---> 79         raise RuntimeError(to_str(err_str))
     80 
     81 def get_version():

RuntimeError: In function void opencl::fft_inplace(opencl::Array<T>&, int, bool) [with T = cl_float2]
In file src/backend/opencl/fft.cpp:

I'm running Ubuntu 20.04 with Nvidia OpenCL Drivers. I have arrayfire debugging enabled and got the following output when the error occurred.

                        BUILD LOG
************************************************
<kernel>:19:10: error: expected expression
(float2)(};
         ^
<kernel>:891:1: error: expected '}'
^
<kernel>:18:32: note: to match this '{'
__constant float2 twiddles[] = {
                               ^
<kernel>:890:2: error: expected ';' after top level declarator
}
 ^
 ;

************************************************
FFTGeneratedStockhamAction::compileKernels failed

brianmcconnel avatar May 07 '21 22:05 brianmcconnel

It seems like some upstream OpenCL kernel is failing to compile at runtime on your target device. What is your OpenCL device ?

Note that the reason I said upstream(clFFT) is that, we don't have such global constants named as twiddles in our kernels at least.

9prady9 avatar May 08 '21 04:05 9prady9