compute-runtime
compute-runtime copied to clipboard
Abort was called at 341 line at drm_neo.cpp on Alderlake
Hey guys,
I am trying to set up OpenCL on an Alderlake Intel laptop with Iris graphics, on gentoo gnu/linux, following the available guides. When running clinfo, I am getting the following error:
$ clinfo Abort was called at 341 line in file: /var/tmp/portage/dev-libs/intel-compute-runtime-22.31.23852/work/compute-runtime-22.31.23852/shared/source/os_interface/linux/drm_neo.cpp Aborted
How can I fix that? Thanks.
I also tried it with a newer version of the runtime:
$ clinfo Abort was called at 347 line in file: /var/tmp/portage/dev-libs/intel-compute-runtime-22.35.24055/work/compute-runtime-22.35.24055/shared/source/os_interface/linux/drm_neo.cpp Aborted
Same error on Alder Lake:
clinfo
Abort was called at 347 line in file:
../../neo/shared/source/os_interface/linux/drm_neo.cpp
Aborted (core dumped)
Happens after I upgrade Kernel from 5.15.49 to 5.18.19. Also happened with 6.0.0.
Attaching strace clinfo
clinfo_strace.txt
I think the problem went away for me after installing dev-util/intel-ocl-sdk and by including the intel microcode into the kernel blob. Clinfo seems to be working, as well as (CPU) OpenCL is working in target software.
Could you expand on that, I'm afraid I'm a bit list on the part of incuding the intel firmware into the kernel. I've compiled these kernels myself, but I do not know where to start for the intel firmware.
Could you expand on that, I'm afraid I'm a bit list on the part of incuding the intel firmware into the kernel. I've compiled these kernels myself, but I do not know where to start for the intel firmware.
For example for Elderlake Intel CPU system you could take a look at:
https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/secure-coding/loading-microcode-os.html
https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tree/main/intel-ucode
Essentially, it boils down to using latest kernel, firmware and compiling the microcode into the kernel, e.g.:
...
#
# Firmware loader
#
CONFIG_FW_LOADER=y
CONFIG_EXTRA_FIRMWARE="iwlwifi-ty-a0-gf-a0-59.ucode intel-ucode/06-9a-03 i915/adlp_dmc_ver2_16.bin i915/adlp_guc_70.1.1.bin i915/tgl_huc_7.9.3.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
...
Thanks for the help @madjestic.
While looking how to apply your suggestion, I saw that I had missing firmware after updating the kernel.
In my case, picking a linux-firmware from a newer Ubuntu distribution solved the issue.
Needing to find and search driver sources for answers is IMHO very poor usability. Before aborting, driver should print some error message describing what is / might be needed to get things working. Or at least what exact (user-relevant) operation failed.