在带有 m1 芯片的 Mac 上导入 jax 失败

dcx*_*xst 8 python python-3.8 jax apple-m1

对于 python 3.8.8 并在 jupyter 笔记本和 python 终端中使用新的 mac air(带有 m1 芯片),import jax会引发此错误

Python 3.8.8 (default, Apr 13 2021, 12:59:45)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import jax
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/steve/Documents/code/jax/jax/__init__.py", line 37, in <module>
    from . import config as _config_module
  File "/Users/steve/Documents/code/jax/jax/config.py", line 18, in <module>
    from jax._src.config import config
  File "/Users/steve/Documents/code/jax/jax/_src/config.py", line 26, in <module>
    from jax import lib
  File "/Users/steve/Documents/code/jax/jax/lib/__init__.py", line 63, in <module>
    cpu_feature_guard.check_cpu_features()
RuntimeError: This version of jaxlib was built using AVX instructions, which your CPU and/or operating system do not support. You may be able work around this issue by building jaxlib from source.
Run Code Online (Sandbox Code Playgroud)

我怀疑这是因为 m1 芯片而发生的。

我尝试使用 jax pip install jax,然后按照评论的建议,通过克隆其存储库并按照此处给出的说明从源代码构建它,但显示了相同的错误消息。

Nic*_*ich 6

我有类似的问题。由于我已经安装了 Anaconda,并且不想用 Anaconda + miniconda + homebrew 版本的 python 和包管理等来弄乱我的空间,所以我四处寻找一个简单的解决方案。最终对我有用的是首先卸载jaxjaxlib然后直接通过 conda-forgejax安装:jaxlib

pip uninstall jax jaxlib
conda install -c conda-forge jaxlib
conda install -c conda-forge jax
Run Code Online (Sandbox Code Playgroud)


dcx*_*xst 5

谢谢@jakevdp,我查看了您链接的问题并找到了解决方法:

感谢Noah在问题 #5501中提到,为了我的目的,您可以使用以前版本的 jax 和 jaxlib,jaxlib==0.1.60并且jax==0.2.10工作得很好!

  • `jax` 现在可用于 M1 mac;对我来说运行良好 (2认同)

jak*_*vdp 2

JAX 尚未提供与 M1 芯片兼容的预构建 jaxlib 轮。我所知道的关于在 M1 上构建 jaxlib 的最佳信息来源可能是这个 github 问题: https: //github.com/google/jax/issues/5501,它也跟踪改进这种支持。

希望 M1 支持在不久的将来得到改善,但堆栈上下的科学计算基础设施需要一段时间才能跟上新芯片的要求。