diff --git a/Project.toml b/Project.toml index d3f514fa..20bf5ddc 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "oneAPI" uuid = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" authors = ["Tim Besard ", "Alexis Montoison", "Michel Schanen "] -version = "2.7.2" +version = "2.7.3" [deps] AbstractFFTs = "621f4979-c628-5d54-868e-fcf4e3e8185c" diff --git a/src/compiler/compilation.jl b/src/compiler/compilation.jl index 5a398a65..928c1de9 100644 --- a/src/compiler/compilation.jl +++ b/src/compiler/compilation.jl @@ -328,7 +328,14 @@ end # advertise the extension). We lower bfloat→i16 in finish_ir! when needed. supports_bfloat16 = _device_supports_bfloat16(dev) - extensions = String[] + # SPIR-V extensions the LLVM back-end may emit. Declaring them permits the + # corresponding instructions during translation: without + # SPV_EXT_shader_atomic_float_add, floating-point atomic operations fail to + # translate ("The atomic float instruction requires ... SPV_EXT_shader_atomic_float_add"). + extensions = String[ + "SPV_EXT_relaxed_printf_string_address_space", + "SPV_EXT_shader_atomic_float_add", + ] # Only add the SPIR-V extension if the runtime actually supports it if _driver_supports_bfloat16_spirv(dev) push!(extensions, "SPV_KHR_bfloat16")