A StructArray is made up of two individual arrays, so the memory layout is different to what CUFFT expects (complex elements). So that can’t work, unless CUFFT has APIs that accept two arrays too, in which case you’d need to add the necessary wrappers using ::StructArray inputs. Another alternative is a native Julia FFT kernel, but that’s a lot of work too.