【问题标题】:importing jax fails on mac with m1 chip在带有 m1 芯片的 mac 上导入 jax 失败
【发布时间】:2021-07-10 12:50:17
【问题描述】:

对于 python 3.8.8 和使用新的 mac air(带有 m1 芯片),在 jupyter 笔记本和 python 终端中,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.

我怀疑是因为 m1 芯片造成的。

我尝试将 jax 与 pip install jax 一起使用,然后按照评论的建议从源代码构建它,方法是克隆他们的存储库并按照 here 给出的说明进行操作,但显示相同的错误消息。

【问题讨论】:

    标签: python python-3.8 apple-m1 jax


    【解决方案1】:

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

    感谢Noahissue #5501 中提到您可以使用以前版本的jax 和jaxlib,就我的目的而言,jaxlib==0.1.60jax==0.2.10 工作得很好!

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      截至目前(2022 年 1 月),jax 可用于 M1 Mac。确保卸载 jaxjaxlib 然后通过 pip 安装新包:

      pip install --upgrade jax jaxlib

      之后,您可以毫无问题地使用 jax。

      --编辑-- 我在具有以下规格的机器上运行:

      ProductName:    macOS
      ProductVersion: 12.1
      BuildVersion:   21C52
      

      conda 环境中使用Python 3.9.6

      【讨论】:

      • 你使用的是什么 MacOS 和 python 版本?
      • @Blade,为了清楚起见,我已经更新了答案。
      • 达到某一点。卸载jaxjaxlib 后,我仍然收到此错误,使用pip install --upgrade jax jaxlib 安装,然后尝试将其用作Trax 的一部分: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. 相同的操作系统版本和构建,python 3.9.7 在 conda 环境中。
      • @arturomp 查看我刚刚发布的答案。我通过直接从 conda-forge 安装在我的机器上修复了这个问题。
      • 谢谢!我想我做了类似的事情:stackoverflow.com/a/70815865
      【解决方案4】:

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

      pip uninstall jax jaxlib
      conda install -c conda-forge jaxlib
      conda install -c conda-forge jax
      

      【讨论】:

      • 不是问题的重点,但您可以使用trax 还是只想使用jax
      • 我只是在看jax。没看过trax
      猜你喜欢
      • 2022-11-11
      • 2022-11-29
      • 2022-06-14
      • 2022-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      相关资源
      最近更新 更多