PyCall.jl icon indicating copy to clipboard operation
PyCall.jl copied to clipboard

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

Open samuela opened this issue 3 years ago • 4 comments

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 avatar Jan 11 '22 02:01 samuela

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.

samuela avatar Jan 11 '22 02:01 samuela

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)

lawless-m avatar Jan 13 '22 16:01 lawless-m

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.

338rajesh avatar Jan 18 '22 06:01 338rajesh

PR is here: #950.

bicycle1885 avatar Jan 24 '22 04:01 bicycle1885