Apple M1 原生编译 pytorch 和 opencv- Python
資深大佬 : frinstioAKL 8
最近入手新 macbook air m1 后甚是满意,逐渐将一些开发工作转移到该机器上,在 python 上,我看 numpy 等都已经原生支持了,但是经常使用的 pytorch 和 opencv-python 却没有预编译好的原生版,用 rosetta 转译来得毕竟没有原始爽,就尝试自己编译了下,发现比较顺利。
python 的环境是用 conda-forge 安装的 python3.9, 然后装上了原生的 numpy
1. pytorch
从 github 提交记录来看,其实一个月前有开发者就修复了 m1 上编译报错的问题( https://github.com/pytorch/pytorch/pull/48275), 于是就自己尝试编译了一下。
git clone pytorch 的代码,把 CMakeLists.txt 中的 MKL 和 openmp 关闭就启动编译,一次成功。
安装完按照 https://github.com/pytorch/pytorch/issues/48145#issuecomment-730297957 的评论做了个简单矩阵加法的 benchmark (可能并不合适), 得到的速度是 44~45 it/s, 手上 mac mini i5 2018 late 的速度是 20~21 it/s, 而 github 评论里面 nvidia 3090 的速度是 670 it/s, 3900x cpu 速度是 21 it/s,所以整体上还是比较满意的。
2. opencv-python
按照 https://github.com/skvark/opencv-python 简单走一遍编译就完事了,我把 opencv-contrib 也一并打包进去了。
方便有需要的朋友直接拿来使用,我把我编译好的 wheel 文件放在我 github 了,可以自行下载 pip 安装。
地址: https://github.com/wizyoung/AppleSiliconSelfBuilds
深度体验几天下来,感觉 m1 的开发工具链支持速度还是满快的,比预期要快,明年 m2 可期。
大佬有話說 (0)