JuliaGPU / oneAPI.jl

Julia support for the oneAPI programming toolkit.
https://juliagpu.org/oneapi/
Other
182 stars 22 forks source link

Bump the toolchain. #374

Closed maleadt closed 8 months ago

maleadt commented 1 year ago

This includes PVC support, as requested by @kballeda. cc @pengtu

I did notice this introducing a new assertion failure in the driver though:

julia: /workspace/srcdir/intel-graphics-compiler/IGC/Compiler/CISACodeGen/ConstantCoalescing.cpp:1281: void IGC::ConstantCoalescing::MergeUniformLoad(llvm::Instruction*, llvm::Value*, uint, llvm::Value*, uint, uint, const IGC::ConstantCoalescing::ExtensionKind&, std::vector<IGC::BufChunk*>&): Assertion `loadNumElements == RoundChunkSize(loadNumElements)' failed.
[2300253] signal (6.-6): Aborted
in expression starting at /home/tim/Julia/pkg/oneAPI/test/device/intrinsics.jl:24
unknown function (ip: 0x7f4c4fd2fd3c)
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x7f4c4fccb394)
__assert_fail at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
MergeUniformLoad at /workspace/srcdir/intel-graphics-compiler/IGC/Compiler/CISACodeGen/ConstantCoalescing.cpp:1281
ProcessBlock at /workspace/srcdir/intel-graphics-compiler/IGC/Compiler/CISACodeGen/ConstantCoalescing.cpp:550
ProcessFunction at /workspace/srcdir/intel-graphics-compiler/IGC/Compiler/CISACodeGen/ConstantCoalescing.cpp:155
runOnFunction at /workspace/srcdir/intel-graphics-compiler/IGC/Compiler/CISACodeGen/ConstantCoalescing.cpp:64
runOnFunction at /workspace/srcdir/intel-graphics-compiler/build/IGC/llvm-deps/src/llvm/lib/IR/LegacyPassManager.cpp:1434
runOnModule at /workspace/srcdir/intel-graphics-compiler/build/IGC/llvm-deps/src/llvm/lib/IR/LegacyPassManager.cpp:1480
runOnModule at /workspace/srcdir/intel-graphics-compiler/build/IGC/llvm-deps/src/llvm/lib/IR/LegacyPassManager.cpp:1549
run at /workspace/srcdir/intel-graphics-compiler/build/IGC/llvm-deps/src/llvm/lib/IR/LegacyPassManager.cpp:539
run at /workspace/srcdir/intel-graphics-compiler/build/IGC/llvm-deps/src/llvm/lib/IR/LegacyPassManager.cpp:1676
CodeGen at /workspace/srcdir/intel-graphics-compiler/IGC/Compiler/CISACodeGen/OpenCLKernelCodeGen.cpp:3770
CodeGen at /workspace/srcdir/intel-graphics-compiler/IGC/Compiler/CISACodeGen/OpenCLKernelCodeGen.cpp:3796
TranslateBuildSPMD at /workspace/srcdir/intel-graphics-compiler/IGC/AdaptorOCL/dllInterfaceCompute.cpp:1491
TranslateBuildSPMDAndESIMD at /workspace/srcdir/intel-graphics-compiler/IGC/VISALinkerDriver/VLD.cpp:367
TranslateBuild at /workspace/srcdir/intel-graphics-compiler/IGC/AdaptorOCL/dllInterfaceCompute.cpp:1737
Translate at /workspace/srcdir/intel-graphics-compiler/IGC/AdaptorOCL/ocl_igc_interface/impl/igc_ocl_translation_ctx_impl.h:346
TranslateImpl at /workspace/srcdir/intel-graphics-compiler/IGC/AdaptorOCL/ocl_igc_interface/impl/igc_ocl_translation_ctx_impl.cpp:64
Translate<> at /workspace/destdir/include/igc/ocl_igc_interface/igc_ocl_translation_ctx.h:93
translate<IGC::IgcOclTranslationCtx<3> > at /workspace/srcdir/compute-runtime/shared/source/compiler_interface/compiler_interface.inl:75
build at /workspace/srcdir/compute-runtime/shared/source/compiler_interface/compiler_interface.cpp:149
compileGenBinary at /workspace/srcdir/compute-runtime/level_zero/core/source/module/module_imp.cpp:206
buildFromSpirV at /workspace/srcdir/compute-runtime/level_zero/core/source/module/module_imp.cpp:281
initialize at /workspace/srcdir/compute-runtime/level_zero/core/source/module/module_imp.cpp:586
create at /workspace/srcdir/compute-runtime/level_zero/core/source/module/module_imp.cpp:1062
createModule at /workspace/srcdir/compute-runtime/level_zero/core/source/device/device_imp.cpp:437
createModule at /workspace/srcdir/compute-runtime/level_zero/core/source/context/context_imp.cpp:841
zeModuleCreate at /workspace/srcdir/compute-runtime/level_zero/api/core/ze_module_api_entrypoints.h:23
pengtu commented 1 year ago

@maleadt: Would you try the compute runtime release 23.17.26241 as before but build with the option -DNEO_ENABLE_i915_PRELIM_DETECTION=TRUE? Looks like a regression in IGC unrelated with the build option flag. Thanks!

maleadt commented 1 year ago

https://github.com/JuliaRegistries/General/pull/93633

kballeda commented 12 months ago

JuliaRegistries/General#93633

@maleadt / @pengtu : I tried oneAPI.jl after this change on PVC, now I dont find incompatibility issues on PVC and also we dont have to set local oneAPI tool chain using res/local.jl.

  Updating `~/Kali/JULIA/anl_support/oneAPI.jl/Project.toml`
  [79e6a3ab] + Adapt v3.7.1
⌅ [fa961155] + CEnum v0.4.2
  [e2ba6199] + ExprTools v0.1.10
  [0c68f7d7] + GPUArrays v9.1.0
  [61eb1bfa] + GPUCompiler v0.25.0
  [63c18a36] + KernelAbstractions v0.9.12
  [929cbde3] + LLVM v6.4.0
  [21216c6a] + Preferences v1.4.1
  [276daf66] + SpecialFunctions v2.3.1
  [d80eeb9a] + UnsafeAtomicsLLVM v0.1.3
**⌅ [700fe977] + NEO_jll v23.17.26241+3**
  [85f0d8ed] + SPIRV_LLVM_Translator_unified_jll v0.3.0+0
  [6ac6d60f] + SPIRV_Tools_jll v2023.2.0+0
  [f4bc562b] + oneAPI_Level_Zero_Headers_jll v1.7.0+0
  [13eca655] + oneAPI_Level_Zero_Loader_jll v1.13.1+0
  [b049733a] + oneAPI_Support_jll v0.2.2+0
    Updating `~/Kali/JULIA/anl_support/oneAPI.jl/Manifest.toml`
  [79e6a3ab] + Adapt v3.7.1
  [a9b6321e] + Atomix v0.1.0
⌅ [fa961155] + CEnum v0.4.2
  [ffbed154] + DocStringExtensions v0.9.3
  [e2ba6199] + ExprTools v0.1.10
  [0c68f7d7] + GPUArrays v9.1.0
  [46192b85] + GPUArraysCore v0.1.5
  [61eb1bfa] + GPUCompiler v0.25.0
  [92d709cd] + IrrationalConstants v0.2.2
  [692b3bcd] + JLLWrappers v1.5.0
  [63c18a36] + KernelAbstractions v0.9.12
  [929cbde3] + LLVM v6.4.0
  [2ab3a3ac] + LogExpFunctions v0.3.26
  [1914dd2f] + MacroTools v0.5.11
  [aea7be01] + PrecompileTools v1.2.0
  [21216c6a] + Preferences v1.4.1
  [189a3867] + Reexport v1.2.2
  [ae029012] + Requires v1.3.0
  [6c6a2e73] + Scratch v1.2.1
  [276daf66] + SpecialFunctions v2.3.1
  [90137ffa] + StaticArrays v1.6.5
  [1e83bf80] + StaticArraysCore v1.4.2
  [a759f4b9] + TimerOutputs v0.5.23
  [013be700] + UnsafeAtomics v0.2.1
  [d80eeb9a] + UnsafeAtomicsLLVM v0.1.3
  [dad2f222] + LLVMExtra_jll v0.0.27+0
⌅ [700fe977] + NEO_jll v23.17.26241+3
  [efe28fd5] + OpenSpecFun_jll v0.5.5+0
  [85f0d8ed] + SPIRV_LLVM_Translator_unified_jll v0.3.0+0
  [6ac6d60f] + SPIRV_Tools_jll v2023.2.0+0
  [09858cae] + gmmlib_jll v22.3.0+0
⌅ [94295238] + libigc_jll v1.0.13822+0
  [f4bc562b] + oneAPI_Level_Zero_Headers_jll v1.7.0+0
  [13eca655] + oneAPI_Level_Zero_Loader_jll v1.13.1+0
  [b049733a] + oneAPI_Support_jll v0.2.2+0
  [0dad84c5] + ArgTools v1.1.1
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching
  [b77e0a4c] + InteractiveUtils
  [4af54fe1] + LazyArtifacts
  [b27032c2] + LibCURL v0.6.3
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [37e2e46d] + LinearAlgebra
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [ca575930] + NetworkOptions v1.2.0
  [44cfe95a] + Pkg v1.9.2
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization
  [6462fe0b] + Sockets
  [2f01184e] + SparseArrays
  [10745b16] + Statistics v1.9.0
  [fa267f1f] + TOML v1.0.3
  [a4e569a6] + Tar v1.10.0
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [e66e0078] + CompilerSupportLibraries_jll v1.0.5+0
  [deac9b47] + LibCURL_jll v7.84.0+0
  [29816b5a] + LibSSH2_jll v1.10.2+0
  [c8ffd9c3] + MbedTLS_jll v2.28.2+0
  [14a3606d] + MozillaCACerts_jll v2022.10.11
  [4536629a] + OpenBLAS_jll v0.3.21+4
  [05823500] + OpenLibm_jll v0.8.1+0
  [bea87d4a] + SuiteSparse_jll v5.10.1+6
  [83775a58] + Zlib_jll v1.2.13+0
  [8e850b90] + libblastrampoline_jll v5.8.0+0
  [8e850ede] + nghttp2_jll v1.48.0+0
  [3f19e933] + p7zip_jll v17.4.0+0
        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
  39 dependencies successfully precompiled in 33 seconds. 6 already precompiled.
maleadt commented 8 months ago

Superseded by https://github.com/JuliaGPU/oneAPI.jl/pull/388