compute-runtime icon indicating copy to clipboard operation
compute-runtime copied to clipboard

Abort was called at 341 line at drm_neo.cpp on Alderlake

Open madjestic opened this issue 3 years ago • 1 comments

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.

madjestic avatar Sep 21 '22 19:09 madjestic

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

madjestic avatar Sep 22 '22 11:09 madjestic

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.

v-lopez avatar Oct 07 '22 11:10 v-lopez

Attaching strace clinfo clinfo_strace.txt

v-lopez avatar Oct 07 '22 11:10 v-lopez

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.

madjestic avatar Oct 07 '22 12:10 madjestic

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.

v-lopez avatar Oct 07 '22 13:10 v-lopez

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"
...

madjestic avatar Oct 10 '22 10:10 madjestic

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.

v-lopez avatar Oct 21 '22 16:10 v-lopez

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.

eero-t avatar Oct 26 '22 11:10 eero-t