m-j-w / CpuId.jl

Ask the CPU for cache sizes, SIMD feature support, a running hypervisor, and more.
Other
54 stars 10 forks source link

Errors on 32-Bit #62

Open halentin opened 1 month ago

halentin commented 1 month ago

while adding 32-Bit Support to our CI, i ran into this error, which i get in both CpuId@0.3.2 and CpuId@0.3.1

julia> versioninfo()
Julia Version 1.10.4
Commit 48d4fd4843 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Windows (i686-w64-mingw32)
  CPU: 16 × 13th Gen Intel(R) Core(TM) i7-1360P
  WORD_SIZE: 32
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, goldmont)
Threads: 1 default, 0 interactive, 1 GC (on 16 virtual cores)
Environment:
  JULIA_EDITOR = code
  JULIA_NUM_THREADS = 1

julia> cpubrand()
ERROR: This CPU does not provide information on cpuid leaf 0x80000004.
Stacktrace:
 [1] error(s::String)
   @ Base .\error.jl:35
 [2] _throw_unsupported_leaf(leaf::UInt32)
   @ CpuId C:\Users\hoepfnva\.julia\packages\CpuId\n7zKC\src\CpuId.jl:38
 [3] cpubrand()
   @ CpuId C:\Users\hoepfnva\.julia\packages\CpuId\n7zKC\src\CpuId.jl:337
 [4] top-level scope
   @ REPL[12]:1

On 64-Bit, it works just fine:

julia> versioninfo()
Julia Version 1.10.4
Commit 48d4fd4843 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 16 × 13th Gen Intel(R) Core(TM) i7-1360P
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, goldmont)
Threads: 1 default, 0 interactive, 1 GC (on 16 virtual cores)
Environment:
  JULIA_EDITOR = code
  JULIA_NUM_THREADS = 1

julia> cpubrand()
"13th Gen Intel(R) Core(TM) i7-1360P"

The same behaviour can be reproduced on another machine running 32-Bit Julia:

julia> versioninfo()
Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (i686-linux-gnu)
  CPU: 2 × AMD EPYC 7763 64-Core Processor
  WORD_SIZE: 32
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
Threads: 1 default, 0 interactive, 1 GC (on 2 virtual cores)
Environment:
  JULIA_EDITOR = code
  JULIA_NUM_THREADS = 

julia> cpubrand()
ERROR: This CPU does not provide information on cpuid leaf 0x80000004.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] _throw_unsupported_leaf(leaf::UInt32)
   @ CpuId ~/.julia/packages/CpuId/n7zKC/src/CpuId.jl:38
 [3] cpubrand()
   @ CpuId ~/.julia/packages/CpuId/n7zKC/src/CpuId.jl:337
 [4] top-level scope
   @ REPL[4]:1

On CpuId@0.3.0 both 64- and 32-Bit do work. Maybe this is related to #55?