# Julia 1.9 on Intel Sapphire Rapid CPU doesn't work

**URL:** <https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444>\
**Category:** Internals & Design\
**Tags:** bug, llvm\
**Created:** [August 21, 2024, 9:14am UTC](https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444 "2024-08-21T09:14:14Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![JohnnyChen94](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnnychen94/32/29979_2.png) [@JohnnyChen94](https://discourse.julialang.org/u/JohnnyChen94)\
**Post date:** [August 21, 2024, 9:14am UTC](https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444/1 "2024-08-21T09:14:14Z")

</div>

We recently bought a new server with the latest Intel CPU (Sapphire Rapids), yet we just realized that it doesn’t work for Julia 1.9.x versions. Here’s a brief report:

```julia
julia> versioninfo()
Julia Version 1.9.3
Commit bed2cd540a1 (2023-08-24 14:43 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 96 × Intel(R) Xeon(R) Gold 6442Y
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, sapphirerapids)
  Threads: 1 on 96 virtual cores

julia> -Float16(5.0)
Float16(0.0)

julia> Float16(Inf)
Float16(0.0)

```

Compiling CSV also crashes:

```julia
(@v1.9) pkg> st
Status `~/.julia/environments/v1.9/Project.toml`
  [336ed68f] CSV v0.10.14

julia> using CSV
[Info: Precompiling CSV [336ed68f-0bac-5ca0-87d4-7b16caf5d00b]

[715965] signal (11.1): Segmentation fault
in expression starting at /home/chenjiuning/.julia/packages/CSV/cwX2w/src/precompile.jl:3
_ZN4llvm19MachineRegisterInfo22addRegOperandToUseListEPNS_14MachineOperandE at /home/chenjiuning/packages/julias/julia-1.9/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm12MachineInstr10addOperandERNS_15MachineFunctionERKNS_14MachineOperandE at /home/chenjiuning/packages/julias/julia-1.9/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm7BuildMIERNS_17MachineBasicBlockERNS_12MachineInstrERKNS_8DebugLocERKNS_11MCInstrDescENS_8RegisterE at /home/chenjiuning/packages/julias/julia-1.9/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZNK4llvm17X86TargetLowering27EmitInstrWithCustomInserterERNS_12MachineInstrEPNS_17MachineBasicBlockE at /home/chenjiuning/packages/julias/julia-1.9/bin/../lib/julia/libLLVM-14jl.so (unknown line)

```

This is likely a LLVM 14 issue. It’s verified that Julia 1.6, 1.7, 1.8, 1.10, 1.11 all work for the above cases.

Suggestion? Stick to the latest Julia 🙂

* * *

It’s verified that if we create a virtual machine on this server with CPU virtualization, then we work around the issue. We’ve tested libvirt by changing `host-passthrough` to `host-model`:

```xml
  <cpu mode='custom' match='exact' check='partial'>
    <model fallback='allow'>Skylake-Server</model>
    <feature policy='disable' name='hle'/>
    <feature policy='disable' name='rtm'/>
    <feature policy='disable' name='mpx'/>
  </cpu>

```

then Julia 1.9.3 works normally inside the VM (linux or windows).

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [August 21, 2024, 10:26am UTC](https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444/2 "2024-08-21T10:26:57Z")

</div>

Yes, stick to latest 1.10, and soon 1.11 Julia. But it’s strange, I couldn’t confirm in 1.9.x versions either (while it should work on all platforms, it’s a bug that will not get fixed since 1.9 is no longer supported):

```julia
julia> -Float16(5.0)
Float16(-5.0)

julia> versioninfo()
Julia Version 1.9.3
Commit bed2cd540a1 (2023-08-24 14:43 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 16 × Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, broadwell)
  Threads: 1 on 16 virtual cores
Environment:
  JULIA_PKG_PRESERVE_TIERED_INSTALLED = true

```

Also worked in 1.9.3 for me:

```julia
julia> using CSV
 │ Package CSV not found, but a package named CSV is available from a registry. 
 │ Install package?
 │ (@v1.9) pkg> add CSV 
 └ (y/n/o) [y]: y
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
    Updating `~/.julia/environments/v1.9/Project.toml`
⌃ [336ed68f] + CSV v0.10.11
    Updating `~/.julia/environments/v1.9/Manifest.toml`
⌃ [336ed68f] + CSV v0.10.11
  [2dfb63ee] + PooledArrays v1.4.3
⌃ [91c51154] + SentinelArrays v1.4.3
  [ea10d353] + WeakRefStrings v1.4.2
  [76eceee3] + WorkerUtilities v1.6.1
  [b27032c2] ↓ LibCURL v0.6.4 ⇒ v0.6.3
  [deac9b47] ↓ LibCURL_jll v8.4.0+0 ⇒ v7.84.0+0
  [29816b5a] ↓ LibSSH2_jll v1.11.0+1 ⇒ v1.10.2+0
  [8e850ede] ↓ nghttp2_jll v1.52.0+1 ⇒ v1.48.0+0

```

I’m not a fan of getting those (avoidable) downgrades, and not latest version, but can also confirm worked for me when I ask explicitly for same version you got:

```julia
(@v1.9) pkg> add CSV@0.10.14

```

CSV has its own dependencies, and I’m not sure we have the same versions of those… i.e. latest, nor do I know an (easy) way to check (but would like to know of an easy way).

---

<div class="post-metadata">

**Author:** ![vchuravy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vchuravy/32/8_2.png) [@vchuravy](https://discourse.julialang.org/u/vchuravy)\
**Post date:** [August 21, 2024, 10:39am UTC](https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444/3 "2024-08-21T10:39:04Z")

</div>

You can also use `-C` to target a different microarchitecture or disable CPU features.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [August 21, 2024, 11:56am UTC](https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444/4 "2024-08-21T11:56:31Z")

</div>

> [@JohnnyChen94](#):
>
> ```julia
> julia> -Float16(5.0)
> Float16(0.0)
> 
> julia> Float16(Inf)
> Float16(0.0)
> 
> ```

> <https://github.com/JuliaLang/julia/issues/51686>
>
> Tracking down the cause of a segmentation fault on Sapphire Rapids #51482, I may… have found the root issue. Float16 is broken on this platform, possibly due to bad LLVM output.
> 
> The issue does not occur with Julia 1.8 (LLVM 13) or Julia 1.10-beta3 (LLVM 15).
> 
> \`\`\`
> \# Julia 1.9.3 on Sapphire Rapids:
> Julia Version 1.9.3
> Commit bed2cd540a1 (2023-08-24 14:43 UTC)
> Build Info:
> Official https://julialang.org/ release
> Platform Info:
> OS: Linux (x86\_64-linux-gnu)
> CPU: 8 × Intel(R) Xeon(R) Platinum 8488C
> WORD\_SIZE: 64
> LIBM: libopenlibm
> LLVM: libLLVM-14.0.6 (ORCJIT, sapphirerapids)
> Threads: 1 on 8 virtual cores
> Environment:
> JULIA\_PKG\_USE\_CLI\_GIT = true
> 
> julia\> Float16(BigInt(4))
> Float16(0.0)
> julia\> Float32(BigInt(4))
> 4.0f0
> julia\> Inf16
> Float16(0.0)
> julia\> @info Inf16 # or any Float16
> ERROR: BoundsError: attempt to access 23-element Vector{UInt8} at index \[24\]
> Stacktrace:
> \[1\] setindex!
> @ ./array.jl:969 \[inlined\]
> \[2\] writeshortest(buf::Vector{UInt8}, pos::Int64, x::Float16, plus::Bool, space::Bool, hash::Bool, precision::Int64, expchar::UInt8, padexp::Bool, decchar::UInt8, typed::Bool, compact::Bool)
> @ Base.Ryu ./ryu/shortest.jl:267
> \[3\] string(x::Float16)
> @ Base.Ryu ./ryu/Ryu.jl:123
> \[4\] handle\_message(logger::Logging.ConsoleLogger, level::Base.CoreLogging.LogLevel, message::Any, \_module::Any, group::Any, id::Any, filepath::Any, line::Any; kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T\<:Tuple{Vararg{Any, N}}})
> @ Logging ~/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/share/julia/stdlib/v1.9/Logging/src/ConsoleLogger.jl:119
> \[5\] handle\_message(logger::Logging.ConsoleLogger, level::Base.CoreLogging.LogLevel, message::Any, \_module::Any, group::Any, id::Any, filepath::Any, line::Any)
> @ Logging ~/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/share/julia/stdlib/v1.9/Logging/src/ConsoleLogger.jl:106
> \[6\] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
> @ Base ./essentials.jl:819
> \[7\] invokelatest(::Any, ::Any, ::Vararg{Any})
> @ Base ./essentials.jl:816
> \[8\] top-level scope
> @ logging.jl:353
> 
> \# Julia 1.9.3 on Raptor Lake:
> Julia Version 1.9.3
> Commit bed2cd540a (2023-08-24 14:43 UTC)
> Build Info:
> Official https://julialang.org/ release
> Platform Info:
> OS: Windows (x86\_64-w64-mingw32)
> CPU: 32 × 13th Gen Intel(R) Core(TM) i9-13900KF
> WORD\_SIZE: 64
> LIBM: libopenlibm
> LLVM: libLLVM-14.0.6 (ORCJIT, goldmont)
> Threads: 1 on 32 virtual cores
> 
> julia\> Float16(BigInt(4))
> Float16(4.0)
> julia\> Float32(BigInt(4))
> 4.0f0
> julia\> Inf16
> Inf16
> julia\> @info Inf16
> \[ Info: Inf
> \`\`\`

> [@JohnnyChen94](#):
>
> Compiling CSV also crashes:

> <https://github.com/JuliaLang/julia/issues/51482>
>
> I don't even know where to begin here. This is some deep magic.
> 
> All I did bef…ore this happened was migrating from Amazon Linux 2 to Amazon Linux 2023, and installed Julia 1.9.3 with Juliaup. Also a new Intel processor generation if that matters (Intel(R) Xeon(R) Platinum 8488C).
> 
> The only packages in the environment are Pluto v0.19.28 and CSV v0.10.11. Triggered when precompiling CSV.jl.
> 
> \`\`\`
> \[50019\] signal (11.1): Segmentation fault
> in expression starting at /home/ec2-user/.julia/packages/CSV/OnldF/src/precompile.jl:3
> \_ZN4llvm19MachineRegisterInfo22addRegOperandToUseListEPNS\_14MachineOperandE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm12MachineInstr10addOperandERNS\_15MachineFunctionERKNS\_14MachineOperandE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm7BuildMIERNS\_17MachineBasicBlockERNS\_12MachineInstrERKNS\_8DebugLocERKNS\_11MCInstrDescENS\_8RegisterE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZNK4llvm17X86TargetLowering27EmitInstrWithCustomInserterERNS\_12MachineInstrEPNS\_17MachineBasicBlockE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN12\_GLOBAL\_\_N\_112FinalizeISel20runOnMachineFunctionERN4llvm15MachineFunctionE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm19MachineFunctionPass13runOnFunctionERNS\_8FunctionE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm13FPPassManager13runOnFunctionERNS\_8FunctionE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm13FPPassManager11runOnModuleERNS\_6ModuleE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm6legacy15PassManagerImpl3runERNS\_6ModuleE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc14SimpleCompilerclERNS\_6ModuleE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> operator() at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jitlayers.cpp:1206
> \_ZN4llvm3orc14IRCompileLayer4emitESt10unique\_ptrINS0\_29MaterializationResponsibilityESt14default\_deleteIS3\_EENS0\_16ThreadSafeModuleE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16IRTransformLayer4emitESt10unique\_ptrINS0\_29MaterializationResponsibilityESt14default\_deleteIS3\_EENS0\_16ThreadSafeModuleE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> emit at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jitlayers.cpp:631
> \_ZN4llvm3orc31BasicIRLayerMaterializationUnit11materializeESt10unique\_ptrINS0\_29MaterializationResponsibilityESt14default\_deleteIS3\_EE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc19MaterializationTask3runEv at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm6detail18UniqueFunctionBaseIvJSt10unique\_ptrINS\_3orc4TaskESt14default\_deleteIS4\_EEEE8CallImplIPFvS7\_EEEvPvRS7\_ at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16ExecutionSession22dispatchOutstandingMUsEv at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16ExecutionSession17OL\_completeLookupESt10unique\_ptrINS0\_21InProgressLookupStateESt14default\_deleteIS3\_EESt10shared\_ptrINS0\_23AsynchronousSymbolQueryEESt8functionIFvRKNS\_8DenseMapIPNS0\_8JITDylibENS\_8DenseSetINS0\_15SymbolStringPtrENS\_12DenseMapInfoISF\_vEEEENSG\_ISD\_vEENS\_6detail12DenseMapPairISD\_SI\_EEEEEE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc25InProgressFullLookupState8completeESt10unique\_ptrINS0\_21InProgressLookupStateESt14default\_deleteIS3\_EE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16ExecutionSession19OL\_applyQueryPhase1ESt10unique\_ptrINS0\_21InProgressLookupStateESt14default\_deleteIS3\_EENS\_5ErrorE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16ExecutionSession6lookupENS0\_10LookupKindERKSt6vectorISt4pairIPNS0\_8JITDylibENS0\_19JITDylibLookupFlagsEESaIS8\_EENS0\_15SymbolLookupSetENS0\_11SymbolStateENS\_15unique\_functionIFvNS\_8ExpectedINS\_8DenseMapINS0\_15SymbolStringPtrENS\_18JITEvaluatedSymbolENS\_12DenseMapInfoISI\_vEENS\_6detail12DenseMapPairISI\_SJ\_EEEEEEEEESt8functionIFvRKNSH\_IS6\_NS\_8DenseSetISI\_SL\_EENSK\_IS6\_vEENSN\_IS6\_SV\_EEEEEE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0\_8JITDylibENS0\_19JITDylibLookupFlagsEESaIS7\_EERKNS0\_15SymbolLookupSetENS0\_10LookupKindENS0\_11SymbolStateESt8functionIFvRKNS\_8DenseMapIS5\_NS\_8DenseSetINS0\_15SymbolStringPtrENS\_12DenseMapInfoISK\_vEEEENSL\_IS5\_vEENS\_6detail12DenseMapPairIS5\_SN\_EEEEEE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0\_8JITDylibENS0\_19JITDylibLookupFlagsEESaIS7\_EENS0\_15SymbolStringPtrENS0\_11SymbolStateE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16ExecutionSession6lookupENS\_8ArrayRefIPNS0\_8JITDylibEEENS0\_15SymbolStringPtrENS0\_11SymbolStateE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> \_ZN4llvm3orc16ExecutionSession6lookupENS\_8ArrayRefIPNS0\_8JITDylibEEENS\_9StringRefENS0\_11SymbolStateE at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-14jl.so (unknown line)
> addModule at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jitlayers.cpp:1420
> jl\_add\_to\_ee at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jitlayers.cpp:1815
> jl\_add\_to\_ee at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jitlayers.cpp:1794
> \_jl\_compile\_codeinst at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jitlayers.cpp:241
> jl\_generate\_fptr\_impl at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jitlayers.cpp:460
> jl\_compile\_method\_internal at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2348 \[inlined\]
> jl\_compile\_method\_internal at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2237
> \_jl\_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2750 \[inlined\]
> ijl\_apply\_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
> File at /home/ec2-user/.julia/packages/CSV/OnldF/src/file.jl:290
> File at /home/ec2-user/.julia/packages/CSV/OnldF/src/file.jl:227 \[inlined\]
> \#File#32 at /home/ec2-user/.julia/packages/CSV/OnldF/src/file.jl:223 \[inlined\]
> File at /home/ec2-user/.julia/packages/CSV/OnldF/src/file.jl:162
> unknown function (ip: 0x7fc09eb508b8)
> \_jl\_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 \[inlined\]
> ijl\_apply\_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
> macro expansion at /home/ec2-user/.julia/packages/CSV/OnldF/src/precompile.jl:10 \[inlined\]
> macro expansion at /home/ec2-user/.julia/packages/PrecompileTools/kmH5L/src/workloads.jl:78 \[inlined\]
> macro expansion at /home/ec2-user/.julia/packages/CSV/OnldF/src/precompile.jl:7 \[inlined\]
> top-level scope at /home/ec2-user/.julia/packages/PrecompileTools/kmH5L/src/workloads.jl:140
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:903
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:856
> ijl\_toplevel\_eval\_in at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:971
> eval at ./boot.jl:370 \[inlined\]
> include\_string at ./loading.jl:1903
> \_jl\_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 \[inlined\]
> ijl\_apply\_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
> \_include at ./loading.jl:1963
> include at ./Base.jl:457
> jfptr\_include\_35036.clone\_1 at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/lib/julia/sys.so (unknown line)\_jl\_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 \[inlined\]
> ijl\_apply\_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
> jl\_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1880 \[inlined\]
> jl\_f\_\_call\_latest at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/builtins.c:774
> include at /home/ec2-user/.julia/packages/CSV/OnldF/src/CSV.jl:24
> unknown function (ip: 0x7fc09eafd482)
> \_jl\_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 \[inlined\]
> ijl\_apply\_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
> jl\_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1880 \[inlined\]
> do\_call at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:126
> eval\_value at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:226
> eval\_stmt\_value at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:177 \[inlined\]
> eval\_body at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:624
> jl\_interpret\_toplevel\_thunk at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:762
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:912
> jl\_eval\_module\_expr at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:203 \[inlined\]
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:715
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:856
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:856
> ijl\_toplevel\_eval\_in at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:971
> eval at ./boot.jl:370 \[inlined\]
> include\_string at ./loading.jl:1903
> \_jl\_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 \[inlined\]
> ijl\_apply\_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
> \_include at ./loading.jl:1963
> include at ./Base.jl:457 \[inlined\]
> include\_package\_for\_output at ./loading.jl:2049
> jfptr\_include\_package\_for\_output\_38844.clone\_1 at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
> \_jl\_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 \[inlined\]
> ijl\_apply\_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
> jl\_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1880 \[inlined\]
> do\_call at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:126
> eval\_value at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:226
> eval\_stmt\_value at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:177 \[inlined\]
> eval\_body at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:624
> jl\_interpret\_toplevel\_thunk at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:762
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:912
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:856
> ijl\_toplevel\_eval\_in at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:971
> eval at ./boot.jl:370 \[inlined\]
> include\_string at ./loading.jl:1903
> include\_string at ./loading.jl:1913 \[inlined\]
> exec\_options at ./client.jl:305
> \_start at ./client.jl:522
> jfptr\_\_start\_40034.clone\_1 at /home/ec2-user/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
> \_jl\_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 \[inlined\]
> ijl\_apply\_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
> jl\_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1880 \[inlined\]
> true\_main at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jlapi.c:573
> jl\_repl\_entrypoint at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jlapi.c:717
> main at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/cli/loader\_exe.c:59
> \_\_libc\_start\_call\_main at /lib64/libc.so.6 (unknown line)
> \_\_libc\_start\_main at /lib64/libc.so.6 (unknown line)
> unknown function (ip: 0x4010b8)
> Allocations: 14670069 (Pool: 14651321; Big: 18748); GC: 21
> \`\`\`

> [@vchuravy](#):
>
> You can also use `-C` to target a different microarchitecture or disable CPU features.

To elaborate: [Segmentation fault in LLVM frames on Julia 1.9.3 when precompiling CSV.jl on Intel Sapphire Rapids CPU · Issue #51482 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/issues/51482#issuecomment-1832558460)

---

<div class="post-metadata">

**Author:** ![JohnnyChen94](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnnychen94/32/29979_2.png) [@JohnnyChen94](https://discourse.julialang.org/u/JohnnyChen94)\
**Post date:** [August 21, 2024, 1:48pm UTC](https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444/5 "2024-08-21T13:48:08Z")

</div>

Followed the comment on [Segmentation fault in LLVM frames on Julia 1.9.3 when precompiling CSV.jl on Intel Sapphire Rapids CPU · Issue #51482 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/issues/51482#issuecomment-1832558460)

`julia -C sapphirerapids,-avx512fp16` also works around the issue.

---

<div class="post-metadata">

**Author:** ![JohnnyChen94](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnnychen94/32/29979_2.png) [@JohnnyChen94](https://discourse.julialang.org/u/JohnnyChen94)\
**Post date:** [August 21, 2024, 1:54pm UTC](https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444/6 "2024-08-21T13:54:18Z")

</div>

Hi @Palli, the issue I reported is closely related to specific CPU architecture. Thus, you’d only reproduce it on Intel’s Xeon server CPU with the code name Sapphire Rapids, which was released in 2023 Q1.

For familiar CPU arches, Julia 1.9 is good.

---

<div class="post-metadata">

**Author:** ![nhz2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nhz2/32/44428_2.png) [@nhz2](https://discourse.julialang.org/u/nhz2)\
**Post date:** [July 25, 2026, 4:13pm UTC](https://discourse.julialang.org/t/julia-1-9-on-intel-sapphire-rapid-cpu-doesnt-work/118444/7 "2026-07-25T16:13:52Z")

</div>

GitHub Actions are now sometimes using Intel Sapphire Rapid CPUs and it looks like they are broken again for Julia 1.12. Julia 1.13.0-rc1 seems to be working.

Ref: [GitHub - nhz2/testing-f16-on-github-ci · GitHub](https://github.com/nhz2/testing-f16-on-github-ci) [Float16 math is broken for graniterapids and sapphirerapids in Julia 1.12 · Issue #62507 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/issues/62507)
