MIT News透露,传统基于人工设计的模型,预测代码在芯片上的运行速度,与实际运行速度之间的错误率高达50%。
就算是芯片供应商,比如英特尔预测代码在自己芯片上的运行速度,错误率也达到20%。而Ithemal,错误率仅为10%。
性能是传统方法的5倍,英特尔的2倍。
整个过程都是自动化的,不需要人为干预,就能够快速分析数十万或数百万个基本块。
并且通用,它可以快速学习代码在任何新的芯片架构的性能速度,无论是机器学习炼丹,还是加密技术上链、还是编译器优化等等,都能hold住。
研究人员分享了这样的一个使用场景:
如果你想在一个新的芯片架构上训练一个模型,比如谷歌的TPU,你只需要从这个架构中收集数据,经过分析器运行后,去训练Ithemal,你可以得到一个可以预测其性能的模型。”
对于充分发挥芯片性能,让代码运行更有效率,这是具有突破性意义的一项进展。
基于神经网络,避开“盲人摸象”
通常情况下,为了让代码能够在芯片上高效地运行,开发者会结合编译器设计一个性能模型,模拟代码在芯片架构上的运行情况。
开发者会根据这些信息进一步优化代码,进一步提高代码运行效率,突破芯片的性能瓶颈。
这种思路虽然没什么问题,麻烦出在如何设计性能模型上,传统的方法是一小部分专家来人工设计。
面对错综复杂的芯片架构,这多少有些“盲人摸象”的感觉,就英特尔一家,描述其芯片架构的文档, 多达3000页。
而且这些内容也不一定完整,考虑到商业竞争以及技术保密上的考虑,英特尔也会去刻意忽略一些内容,这无疑又加大了困难——盲人摸到的象,可能缺胳膊少腿。