iPhone 5纯硬件评测:给你想要的一切
  • 上方文Q
  • 2012年10月25日 16:53
  • 0

【Swift:定制代码解读定制核心】

为了深刻理解Swift,Anand Shimpi同学决定自己写代码(他爹是计算机科学教授),并求助于北卡罗来纳州大学的天才移动开发者Nirdhar Khazanie,将其C语言代码转换成了一个iPhone应用,还得到了一个可以设定指令和数据集大小的框架,一切就简单了。

为了验证Swift是否有第三个整数ALU单元,首先设置一个独立的整数加法循环,所有变量均彼此无关,可以最大程度地并行化,然后在iPhone 4S/5上算它几百万次。

iPhone 5纯硬件评测:给你想要的一切

结果同频下Swift只快了不到10%,平均延迟也只缩短了两个时钟周期,这就可以排除第三个整数ALU单元的存在了。

结合苹果自己的文档可以进一步证实,Swift只有两个整数ALU单元,每时钟周期可以执行三个操作,暗示解码器也是3宽度的,但不清楚性能提升是否与此有关。

再看浮点方面,将之前的代码改成单精度和双精度浮点加法就行了。

iPhone 5纯硬件评测:给你想要的一切

单精度的反而有所倒退,证明从800MHz到1.3GHz不可能完美线性提升,而在双精度下,Cortex-A9变慢了,Swift却加快了1.2倍,自然差距极大。这说明,苹果极有可能增加了第二个浮点单元,来改进FMA或者双精度浮点性能,也可能是所用代码可以利用218-bit NEON。

自己写的代码毕竟不可能完全靠谱,所以还得看看标准测试工具的。首先是大名鼎鼎Linpack的iOS移植版,对比性能和问题大小(problem size):

iPhone 5纯硬件评测:给你想要的一切

虽然曲线不是特别平滑,但很明显,Swift的浮点性能优势非常大,即便是问题大小很小的时候,这证实了有关第二个浮点发射端口的猜测。

再对比800MHz原始频率的iPhone 4S:

iPhone 5纯硬件评测:给你想要的一切

A6在问题大小变大的时候性能损失显然更小,证明Swift可以更好地对付内存延迟,并发浮点和内存操作都很棒。

最后是iOS下另一个常用的基准测试Passmark:

iPhone 5纯硬件评测:给你想要的一切

五个项目都有了大幅度的提升,其中整数47%、浮点118%、质数109%、qsort字符串22.8%、加密51%、压缩17.9%。


文章纠错

  • 好文点赞
  • 水文反对

此文章为快科技原创文章,快科技网站保留文章图片及文字内容版权,如需转载此文章请注明出处:快科技

观点发布 网站评论、账号管理说明
热门评论
查看全部评论
相关报道

最热文章排行查看排行详情

邮件订阅

评论0 | 点赞0| 分享0 | 收藏0