近期有很多人报告在 Apple M1 芯片上使用 PyTorch 和 mps 时出现内存泄漏的情况。根据这个问题的解决方案,可以通过将 PyTorch 降级到 1.7.1 或更低版本,使用 OpenBLAS 代替 Accelerate Framework,以及关闭 mps 来解决这个问题。以下是示例代码,用于降级 PyTorch 和使用 OpenBLAS:
pip uninstall torch
export NO_CUDA=1
pip install torch==1.7.1+cpu torchvision==0.8.2+cpu -f https://download.pytorch.org/whl/torch_stable.html
pip install cython
pip uninstall numpy
pip install numpy==1.19.3
接下来,需要安装 OpenBLAS,可以使用 Homebrew 命令来安装:
brew install openblas
最后,可以通过设置环境变量关闭 mps:
export TORCH_CUDA_IPC_DISABLE=1
这样,在 Apple M1 上使用 PyTorch 和 mps 时就不会出现内存泄漏问题了。