JuliaPy / PyCall.jl

Package to call Python functions from the Julia language
MIT License
1.46k stars 187 forks source link

`LinearAlgebra.BLAS.vendor()` has been deprecated #956

Open samuela opened 2 years ago

samuela commented 2 years ago

It looks like the vendor() function is deprecated in the following line of code:

https://github.com/JuliaPy/PyCall.jl/blob/9a084eb47c7176242893dd18a1782a1114cef02c/src/numpy.jl#L67

julia> import PyCall; PyCall.pyimport("jax").numpy.array([1.0])
┌ Warning: `vendor()` is deprecated, use `BLAS.get_config()` and inspect the output instead
│   caller = npyinitialize() at numpy.jl:67
└ @ PyCall ~/.julia/dev/PyCall/src/numpy.jl:67
...

I'm on python 3.9.9, numpy 1.21.4, Julia 1.7.1, and [438e738f] PyCall v1.93.0. This is running on NixOS 21.11.

julia> versioninfo()
Julia Version 1.7.1
Commit ac5cc99908 (2021-12-22 19:35 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Here's my shell.nix to reproduce the whole thing:

let
  # Last updated: 1/10/22. From status.nixos.org.
  pkgs = import (fetchTarball ("https://github.com/NixOS/nixpkgs/archive/8928525bd8b8cdc1235a92a89b72cbbe5bd8a00d.tar.gz")) { };
in
pkgs.mkShell {
  buildInputs = with pkgs; [
    # See https://github.com/NixOS/nixpkgs/issues/66716. Necessary for julia to
    # be able to download packages.
    cacert

    julia_17-bin

    python3
    python3Packages.jax
    python3Packages.jaxlib
  ];

  # See https://github.com/JuliaPy/PyCall.jl/issues/952#issuecomment-1005694327
  PYTHON = "${pkgs.python3}/bin/python";
}
samuela commented 2 years ago

The comment here suggests that vendor() has been removed since multiple vendors can be loaded simultaneously. Furthermore the vendor() function only ever returns :openblas or :openblas64, so I think the whole if block here https://github.com/JuliaPy/PyCall.jl/blob/9a084eb47c7176242893dd18a1782a1114cef02c/src/numpy.jl#L67-L76 can be removed.

lawless-m commented 2 years ago

Same issue for me

julia> versioninfo()
Julia Version 1.7.0
Commit 3bf9d17731 (2021-11-30 12:12 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i5-10400T CPU @ 2.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake)
338rajesh commented 2 years ago
Warning: `vendor()` is deprecated, use `BLAS.get_config()` and inspect the output instead
│   caller = npyinitialize() at numpy.jl:67
└ @ PyCall C:\Users\admin\.julia\packages\PyCall\L0fLP\src\numpy.jl:67

I am getting a similar warning message while using PyCall v1.93.0 on Julia 1.7.

Despite of this warning, I am able to get the job done without any trouble.

bicycle1885 commented 2 years ago

PR is here: #950.