上一篇文章对比了M1芯片和英特尔传统的六核处理器在matlab上编译速度的差距。两者速度相当。有兴趣的朋友可以看一下~苹果M1芯片,MATLAB(2022a)性能测试
之所以选择i7-10750H作为参照对象,原因在于它是牙膏厂最为经典的笔记本端6核心12线程的处理器,和M1芯片属于同一时期。此外,i7-8750h,i7-9750H与其具有相同的核心和线程数,性能大差不差,大家应该非常熟悉,也是使用人群最广的。
这次分析一下M系列芯片用python的numpy包计算的速度。
一、概要
对于机器学习或者深度学习的从业人员来说,python的numpy包都是必不可少的。那么apple silicon目前对numpy的支持如何呢?,相较于传统的游戏本6核处理器,其性能是否占优?
二、实验设备及代码准备
2.1 实验代码
本节使用的代码是《深度学习进阶:自然语言处理》第八章中的一个例程。这是一本好书,写的较为浅显易懂,推荐NLP新手朋友们阅读!
![](https://i-blog.csdnimg.cn/blog_migrate/6b5280ba60b9209ee4c7945cb219411f.png)
采用的是书中第八章中的例程,即采用注意力机制的seq2seq模型,有一定的计算量。整个模型完全基于numpy来编写,并未使用任何深度学习框架。
2.2 实验设备
搭载i7-10750H的windows游戏本和M1 Macbook Air
三、实验结果
3.1 M1的表现
第一次实验171秒完成。
![](https://i-blog.csdnimg.cn/blog_migrate/26d0a1537a147fc211dc849467415254.png)
第二次和第三次分别为176秒和168秒
平均时长为172秒
用EUL看一下CPU的占用。cpu已经吃满了,说明numpy在M1上是没有兼容性问题的。
![](https://i-blog.csdnimg.cn/blog_migrate/5e64b4cd0169cbe0463b3d67182091ca.png)
使用sudo powermetrics命令查看cpu的功耗情况。
![](https://i-blog.csdnimg.cn/blog_migrate/3efb1c040c488f8d614cab3084ec2575.png)
这时候CPU的功耗已经达到了9.26W,如果再加上屏幕的功耗,那么整机的功耗肯定已经超过了10W,Macbook Air M1的电池容量为49.9瓦时,如果按照这个功耗水平,可以在高负载下坚持4-5小时,非常强。不过应该没人会拿笔记本跑一下午的科学计算吧QWQ。
3.2 i7-10750H的表现
注意这里是插电使用的,处理器的频率跑在4.27GHZ。
![](https://i-blog.csdnimg.cn/blog_migrate/ab858d28f4b955c0391a60d3109f186f.png)
cpu的占用已经满了
接下来开始训练
![](https://i-blog.csdnimg.cn/blog_migrate/4e2c438184f9692d10236ba2de413e21.png)
第一次实验132秒完成,第二次和第三次均为138秒。平均时长136秒。intel的优势还是较为明显的,黑归黑,但intel的芯片至少在机器学习方面是绝对不弱的。再插一句,intel在sklearn里是可以调用加速库的。
但缺点也是非常明显的,用hwinfo看一下功耗,发现cpu已经来到了57W,这是M1的5-6倍。
![](https://i-blog.csdnimg.cn/blog_migrate/e534ae52688889ca95c61966615aa54e.png)
四、总结
总体来讲,本文的测试仍不是非常严谨,大家多多见谅,但可以作为参考。M1的优势是其夸张的能效比和优秀的离电性能,并且对于numpy的兼容性已经非常不错了,而传统的intel 6核处理器也很优秀,在运行速度上占据上风,但高功耗是其缺点。