5

对于 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.

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

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

4

4 回答 4

4

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

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

于 2021-07-12T10:18:18.780 回答
2

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

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

于 2021-07-10T14:50:48.650 回答
0

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

pip install --upgrade jax jaxlib

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

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

ProductName:    macOS
ProductVersion: 12.1
BuildVersion:   21C52

Python 3.9.6在一个conda环境中。

于 2022-01-12T08:07:50.107 回答
0

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

pip uninstall jax jaxlib
conda install -c conda-forge jaxlib
conda install -c conda-forge jax
于 2022-02-08T17:50:03.293 回答