I have just installed gpyfft on my ODROID-XU4 and encountered this issue when I attempted to run the benchmark. I believe it may be a quirk of the ARM Platform implementation of OpenCL as I've encountered similar issues with casting when I have used Reikna on the same device. Below is the output from python when I attempt to run the benchmark.
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gpyfft.benchmark
>>> gpyfft.benchmark.run()
Choose platform:
[0] <pyopencl.Platform 'ARM Platform' at 0x-4aea32d8>
[1] <pyopencl.Platform 'Portable Computing Language' at 0x-4bf3effc>
Choice [0]:0
Choose device(s):
[0] <pyopencl.Device 'Mali-T628' on 'ARM Platform' at 0x-4aed4f40>
[1] <pyopencl.Device 'Mali-T628' on 'ARM Platform' at 0x-4aed4de8>
Choice, comma-separated [0]:0
Set the environment variable PYOPENCL_CTX='0:0' to avoid being asked again.
out of place transforms (1024, 1024) complex64
axes in out
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
(-2, -1) C C 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
(-2, -1) C F 7.5e-04 80.18ms 1.31 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
(-2, -1) F C 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global float2 * restrict gb)
^
<source>:2042:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global float2 * restrict gb)
^
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
(-2, -1) F F 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global float2 * restrict gb)
^
<source>:2042:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global float2 * restrict gb)
^
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
(-1, -2) C C 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
(-1, -2) C F 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
(-1, -2) F C 7.5e-04 78.19ms 1.34 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
(-1, -2) F F 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global float2 * restrict gb)
^
<source>:2042:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global float2 * restrict gb)
^
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
None C C 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
None C F 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
None F C 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global float2 * restrict gb)
^
<source>:2042:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global float2 * restrict gb)
^
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
None F F 'INVALID_PROGRAM'
0.00ms 0.00 Gflops
in place transforms (1024, 1024) complex64
BUILD LOG
************************************************
<source>:1580:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2003:19: error: initializing '__global float4 *' with an expression of incompatible type '__global float2 *'
__global float4 *buff4g = bufOut;
^ ~~~~~~
<source>:2016:49: warning: unknown attribute 'max_constant_size' ignored
void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2036:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
<source>:2046:50: warning: unknown attribute 'max_constant_size' ignored
void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
^
<source>:2066:8: warning: assigning to '__global float2 *' from 'const __global float2 *' discards qualifiers
lwbIn = gbIn + iOffset;
^ ~~~~~~~~~~~~~~
error: Compiler frontend failed (error code 59)
************************************************
FFTGeneratedStockhamAction::compileKernels failed
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/odroid/Share/ResearchProject/gpyfft/gpyfft/gpyfft/benchmark.py", line 100, in run
events = transform.enqueue()
File "/home/odroid/Share/ResearchProject/gpyfft/gpyfft/gpyfft/fft.py", line 189, in enqueue
return self.enqueue_arrays(forward=forward, data=self.data, result=self.result, wait_for_events=wait_for_events)
File "/home/odroid/Share/ResearchProject/gpyfft/gpyfft/gpyfft/fft.py", line 221, in enqueue_arrays
direction_forward = forward, temp_buffer = self.temp_buffer, wait_for_events = wait_for_events)
File "gpyfft/gpyfftlib.pyx", line 621, in gpyfft.gpyfftlib.Plan.enqueue_transform
errcheck(clfftEnqueueTransform(self.plan,
File "gpyfft/gpyfftlib.pyx", line 55, in gpyfft.gpyfftlib.errcheck
raise GpyFFT_Error(result)
gpyfft.gpyfftlib.GpyFFT_Error: 'INVALID_PROGRAM'