Skip to content
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

Error starting Julia due to old OpenBLAS library #34097

Closed
GlenHertz opened this issue Dec 13, 2019 · 4 comments
Closed

Error starting Julia due to old OpenBLAS library #34097

GlenHertz opened this issue Dec 13, 2019 · 4 comments
Labels
external dependencies Involves LLVM, OpenBLAS, or other linked libraries

Comments

@GlenHertz
Copy link
Contributor

Issue #29652 was closed due to the issue being with upstream OpenBLAS library here. That issue has been fixed in OpenBLAS 0.3.6 but Julia would need to apply the patch or update the OpenBLAS library. Please update to the latest OpenBLAS if possible to resolve this issue.

@ararslan ararslan added the external dependencies Involves LLVM, OpenBLAS, or other linked libraries label Dec 14, 2019
@GregPlowman
Copy link
Contributor

I'm wondering if issue #33188 is related?

Julia v1.2.0 (and v1.3.0) doesn't start, but exits without error message.
Replacing libopenblas64_.dll with the dll from Julia v1.1.1 appears to fix the problem and allows Julia to start.

The architecture of the problematic server is reported as Skylake, and some AVX512 cpu features are reported as available and some are not (see below).

Could this OpenBLAS issue be the same problem here?
Is there anything I can do to further diagnose?

Running this code produced the following output:

using CpuId
cpuinfo()

avx512keys = (key for key in keys(CpuId.CpuFeatureDescription) if occursin("AVX512", string(key)))
for key in avx512keys
    println(key, " => ", cpufeature(key))
end
Cpu Property       Value
–––––––––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Brand              Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
Vendor             :Intel
Architecture       :Skylake
Model              Family: 0x06, Model: 0x55, Stepping: 0x04, Type: 0x00
Cores              16 physical cores, 32 logical cores (on executing CPU)
                   Hyperthreading detected
Clock Frequencies  2100 / 3700 MHz (base/max), 100 MHz bus
Data Cache         Level 1:3 : (32, 1024, 22528) kbytes
                   64 byte cache line size
Address Size       48 bits virtual, 46 bits physical
SIMD               512 bit = 64 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via `rdtsc`
                   TSC runs at constant rate (invariant from clock frequency)
Perf. Monitoring   Performance Monitoring Counters (PMC) revision 4
                   Available hardware counters per logical core:
                   3 fixed-function counters of 48 bit width
                   4 general-purpose counters of 48 bit width
Hypervisor         No

AVX512FMAPS => false
AVX512VL => true
AVX512IFMA => false
AVX512CD => true
AVX512PF => false
AVX512ER => false
AVX512VBMI => false
AVX512F => true
AVX512VNNIW => false
AVX512BW => true
AVX512DQ => true

@GlenHertz
Copy link
Contributor Author

I tried to use openblas from v1.1.1 and earlier but it didn't work. I could get Julia to start by deleting libopenblas*. I ran @GregPlowman's script and got the output:

  Cpu Property       Value                                                  
  –––––––––––––––––– –––––––––––––––––––––––––––––––––––––––––––––––––––––––
  Brand              Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz               
  Vendor             :Intel                                                 
  Architecture       :Skylake                                               
  Model              Family: 0x06, Model: 0x55, Stepping: 0x04, Type: 0x00  
  Cores              1 physical cores, 64 logical cores (on executing CPU)  
                     Hyperthreading detected                                
  Clock Frequencies  Not supported by CPU                                   
  Data Cache         Level 1:3 : (32, 1024, 28160) kbytes                   
                     64 byte cache line size                                
  Address Size       48 bits virtual, 46 bits physical                      
  SIMD               256 bit = 32 byte max. SIMD vector size                
  Time Stamp Counter TSC is accessible via `rdtsc`                          
                     TSC increased at every clock cycle (non-invariant TSC) 
  Perf. Monitoring   Performance Monitoring Counters (PMC) are not supported
  Hypervisor         Yes, Xen                                               

AVX512FMAPS => false
AVX512VL => false
AVX512IFMA => false
AVX512CD => false
AVX512PF => false
AVX512ER => false
AVX512VBMI => false
AVX512F => false
AVX512VNNIW => false
AVX512BW => false
AVX512DQ => false

If someone can let me know how to compile Julia with openblas v0.3.7 then I could give that a try.

@GlenHertz
Copy link
Contributor Author

I was able to get things to work on Julia 1.3.0 by doing ]add OpenBAS_jll and then copying over the OpenBLAS libraries into the julia-1.3/lib/julia folder (cp ~/.julia/artifacts/95ada7f4942849227ce548f451c49c177fc7c860/lib/libopenblas64_.* lib/julia).

@DilumAluthge
Copy link
Member

Julia master/Julia nightly now uses a more recent version of OpenBLAS that fixes this bug, meaning that this will be fixed in Julia 1.5 and later.

Can this issue be closed? @ararslan @fredrikekre

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external dependencies Involves LLVM, OpenBLAS, or other linked libraries
Projects
None yet
Development

No branches or pull requests

5 participants