使用苹果M1芯片的朋友们看过来。你们的电脑可以自己下载NumPy源代码然后编译安装,可以获得更好的性能。
苹果在自家系统中提供了Accelerate框架,用以加速各种计算。自己编译NumPy链接到苹果的Accelerate框架可以有更好的运行速度。NumPy1.21版本可以基于苹果硬件和系统进行编译,性能上有很好的提升。
安装步骤
下载NumPy源代码并基于M1芯片加速器编安装过程如下:
1、下载numpy源代码:
https://github.com/numpy/numpy
2、在源代码文件夹中创建site.cfg文件,增加如下内容:
[accelerate]
libraries = Accelerate, vecLib
3、使用?NPY_LAPACK_ORDER=accelerate python3 setup.py build编译
4、使用 pip3 install 安装
性能对比
一些性能对比结果如下:
上图中系列一、二、三含义分别是三个版本的NumPy:
单线程OpenBlas | 多线程OpenBlas | 苹果Accelerate |
在三个编译版本和五种计算中,基于苹果Accelerate编译的运行在M1上的NumPy速度都是最快的。优势非常明显。
对比项目 | 单线程OpenBlas | 多线程OpenBlas | 苹果Accelerate |
两个4096*4096矩阵相乘(秒) | 2.9 | 0.56 | 0.28 |
两个524288向量相乘(毫秒) | 0.25 | 0.26 | 0.11 |
2048*1024大小矩阵svd(秒) | 0.81 | 3.15 | 0.47 |
2048*2048矩阵Cholesky分解(秒) | 0.11 | 0.08 | 0.06 |
2048*2048矩阵特征分解(秒) | 5.36 | 10.17 | 4.98 |
本文暂时没有评论,来添加一个吧(●'◡'●)