Troubleshooting
Common Issues
No devices detected
Symptom: oneAPI.devices() returns an empty list.
Solution:
- Ensure you are running on Linux (recommended) or WSL2.
- Check if the Intel Compute Runtime is installed and accessible.
- Verify your user has permissions to access the GPU render device (usually
rendergroup). - Run
oneAPI.versioninfo()to see detailed diagnostic information.
"Double type is not supported"
Symptom: Kernel compilation fails with an error about Float64 or Double support.
Solution: Some Intel GPUs (especially integrated graphics) lack native hardware support for 64-bit floating point operations.
- Use
Float32instead ofFloat64. - Check support with:
using oneAPI.oneL0 oneL0.module_properties(device()).fp64flags & oneL0.ZE_DEVICE_MODULE_FLAG_FP64 != 0
"Out of memory" errors
Symptom: Memory allocation fails.
Solution:
- Trigger garbage collection:
GC.gc(). - Manually free unused arrays:
oneAPI.unsafe_free!(array). - Check if you are exceeding the device's memory capacity.
Debugging
Validation Layer
Enable the Level Zero validation layer to catch API misuse:
export ZE_ENABLE_VALIDATION_LAYER=1
export ZE_ENABLE_PARAMETER_VALIDATION=1Debug Mode
Enable debug mode in oneAPI.jl to use debug builds of underlying toolchains (if available):
oneAPI.set_debug!(true)