最近入手新 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 可期。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/736925
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.