Intel oneMKL SYCL DFT

raw JSON →
2026.0.0 verified Fri May 01 auth: no python

Intel® oneAPI Math Kernel Library (oneMKL) DFT component for SYCL. This package provides Discrete Fourier Transform (DFT) routines optimized for Intel GPUs and CPUs via SYCL. Version 2026.0.0 is the latest. Release cadence is quarterly.

pip install onemkl-sycl-dft
error ModuleNotFoundError: No module named 'psydac'
cause The DFT Python bindings are part of the psydac package, not installed by default with onemkl-sycl-dft.
fix
Install psydac: pip install psydac
error RuntimeError: sycl::queue not provided or invalid
cause DFT constructor requires a dpctl.SyclQueue as first argument.
fix
Ensure you pass a valid SyclQueue: queue = dpctl.SyclQueue()
error ValueError: Input array is not device-allocated
cause DFT expects dpnp.ndarray, not numpy.ndarray.
fix
Convert data to dpnp: data = dpnp.array(numpy_data)
breaking The Python API for DFT was restructured. In 2026.0.0, the DFT class is in psydac.dft, not onemkl_sycl_dft. Old imports will fail.
fix Use 'from psydac.dft import DFT' instead of 'from onemkl_sycl_dft import DFT'.
gotcha The DFT class expects data to be a dpnp.ndarray (device memory). Passing a NumPy array will cause silent errors or crashes.
fix Always convert NumPy arrays to dpnp arrays via dpnp.array(numpy_array) before passing to DFT.
deprecated The 'dpnp.complex64' type may be deprecated in future; use 'np.dtype(np.complex64)' for clarity.
fix Use 'np.dtype(np.complex64)' or 'np.complex64' (dpnp alias).
pip install dpctl dpnp onemkl-sycl-dft

Create a SYCL queue, allocate data on device via dpnp, and run a forward FFT.

import dpctl
import dpnp as np
from psydac.dft import DFT

device = dpctl.SyclDevice()
queue = dpctl.SyclQueue(device)

data = np.array([1.0, 2.0, 3.0, 4.0], dtype=np.complex64)
dft_handle = DFT(queue, data.shape, np.complex64)
dft_handle.forward(data)
print(data)