-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Building "compute-runtime" releases fails to ocloc errors with all IGC releases after "igc-1.0.9636" #224
Comments
CMake options and resulting config it shows:
(XE_HP_* stuff is disabled as its unit tests have been failing in my Xeon build machine.) |
Exactly same container build works fine if I downgrade IGC to previous release tag: "igc-1.0.9636". So this seems like a regression in IGC. Can you move this to IGC, or do I need to file a new bug against it? IGC build options (working for previous IGC release) and resulting config are following:
|
Note: I'm using Ubuntu opencl-clang, because building that myself would have required pulling & building also LLVM, which would be taking way too much time for building just one of the Intel GPU drivers. Ubuntu "opencl-clang" depends on the same LLVM v11 against which IGC is built, so I do not see why that would be a cause of this issue though: https://packages.ubuntu.com/hirsute/libopencl-clang11 (Especially as previous IGC release worked fine with it.) |
Hi @eero-t ,
Could you try to build 21.52.22081 with the previous IGC release? |
@JablonskiMateusz As I said, 21.52.22081 + igc-1.0.9636 builds fine. Whereas 21.52.22081 + igc-1.0.9933 build breaks to ocloc failures (with everything except the release tag from which intel-graphics-compiler project is cloned, being the same). EDIT: Or did you mean try building even earlier IGC release with the latest compute-runtime? (At least earlier IGC releases worked with earlier compute-runtime releases.) |
If 21.52.22081 works fine with igc-1.0.9636 while fails with igc-1.0.9933, then please transfer the issue to IGC team https://github.com/intel/intel-graphics-compiler |
I thought it was clear from my above comment:
That I do not any see functionality in this ticket to transfer it to IGC. So, I'm asking again, can you move this to IGC, or do I need to file a new bug against it? |
Thanks for moving the ticket! Same issue happens also with the new "compute-runtime" 22.01.22131 release. |
And with the new compute-runtime "22.04.22286" release. |
And new "igc-1.0.10183" IGC version. Also, IGC fails building SPIRV-Tools "v2022.1" (for "v2021.4" it still works). |
And new "igc-1.0.10200" IGC release with new "22.07.22465" compute-runtime release. This time on top of Ubuntu 20.10 i.e. LLVM 12 + GCC 11. Like earlier, downgrading to IGC "igc-1.0.9636" fixes compute-runtime build.
SPIRV-Tools issue was Khronos having mismatched releases. Build works fine when using e.g. the new "sdk-1.3.204.0" tag for both SPIRV headers and tools projects. |
Same problem with the new "igc-1.0.10395" release (on top of Ubuntu 20.10 i.e. LLVM 12 + opencl-clang12 + GCC 11) when building latest "compute-runtime":
I would like to get working new IGC because the old "igc-1.0.9636" release (working otherwise) does not generate code that would pass "compute-runtime" XE_HP* unit-tests, and I would really like to test it on DG2 HW. |
@pszymich, could somebody take a look at this? Same months old build regression happens also with the new "igc-1.0.10778" release and latest compute-runtime release "22.12.22749", on all Ubuntu releases with new enough LLVM / opencl-clang version:
What makes this issue more critical now, is that the latest 2 "compute-runtime" releases cannot any more be built even with the older (Dec 22) IGC "igc-1.0.9636" release (which does not have this particular issue), as newer compute-runtime releases require IGC EU fusion support to build. Additionally, IGC "igc-1.0.9636" fails compute-runtime build, if it's built with LLVM 13 (issue #204). I.e. the latest IGC + compute-runtime combination that I can build with system LLVM (which implies using also system opencl-clang):
Using newer version of any of those, causes compute-runtime build to fail due to different IGC issues. PS. I guess this bug (along with the external component usage issues that were fixed recently) explains why IGC and compute-runtime versions in forthcoming Ubuntu 22.04 LTS version are even older, from the last summer:
PPS. This is really frustrating as I mainly want up to date L0 Sysman API support on 22.04 for Intel dGPUs from the compute-runtime (which does not need anything from IGC, except it not breaking compute-runtime build). Aargh!!! |
Hi @eero-t Starting with the commit 3fde0acae81b48b5225e1760e1feb9ae44ccdbb2: remove spirvdll In your CMake command line, I see an option Additionally, I found a bug in IGC CMakeLists.txt that even without -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Source SPIRV_TRANSLATOR will be built from source if on the same level as the IGC folder there is an llvm-spirv folder with SPIRV_TRANSLATOR source. If you want to build your own SPIRV_TRANSLATOR, you need to rebuild openCL-clang. Please let me know if the above information is helpful. |
@mnaczk I tried using Ubuntu 21.10 spirv-llvm/-dev, spirv-tools and spirv-headers, but then IGC configuration failed to it not finding spirv-tools:
FYI: "spirv-tools" package file paths are following: https://packages.ubuntu.com/impish/amd64/spirv-tools/filelist When I added sources back for SPIRV tools & headers, IGC config phase passed, but then its build failed to vc-intrinsics issues #239. If build still fails after #239 is dealt with, I could try building both lllvm-spirv + opencl-clang... (If latter nowadays can be done without also building llvm. Last time I tried it, long time ago, it did not work.) PS: There's no mention of this LLVM<->SPIRV-LLVM<->OpenCL-Clang restriction in the build instructions, maybe something could be added there: https://github.com/intel/intel-graphics-compiler/blob/master/documentation/build_ubuntu.md |
@eero-t The error log point that issue is on resolving CMake files. /usr/lib/x86_64-linux-gnu/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake want libSPIRV-Tools-shared.so but it not exist in package https://packages.ubuntu.com/impish/amd64/spirv-tools/filelist. So the issue probably is not on the IGC side. I mentioned in #239 that vc-intinsics should be checkout to a specific commit described in the IGC release note. If building IGC with spirv-tool and spirv-headers from the source works fine then the current issue is resolved? |
@tjaalton Any comment on why Ubuntu "spirv-tools" package provides only static version of the tools library, and not the shared one required by IGC?
@mnaczk Yes, indeed it works fine now. Thanks! IMHO you could add some note (to Ubuntu build docs) about which all components need to either come from the system, or be all built from sources, and for which components you do not support use of system versions, but I'll close this now. |
KhronosGroup/SPIRV-Tools#3909 |
When trying to build latest compute-runtime "21.52.22081" release, after building:
I get following errors:
Googling shows this to happen when components have been built against different LLVM versions. However, above is built in a Ubuntu 21.04 container which has only (Ubuntu) LLVM v11 installed.
The text was updated successfully, but these errors were encountered: