大家好啊,我是董董灿。
做 AI 算法调优一些年了,这些年中接触了不少模型,也在不少 ASIC 芯片进行过模型的性能优化。
在接触的模型中,有一些模型有着非常奇怪的分支结构,有些有着非常奇怪的shape,有的有着奇怪的自定义算法。
但在优化时,为了将一个 AI 模型性能调到最优,真的是无所不用其极,能用到的办法几乎都会尝试一遍。
但是,有方法并不代表有效。
很多时候,在某一AI 平台上有效的优化方法,换到另一个平台就失效了。
就好像我们可以在 Intel CPU 上使用 avx2 指令集做优化,但是换到 GPU 上肯定不行,因为它不支持这个指令集。
其实现在,整个 AI 模型的开发和优化,越来越往软硬件协调方向发展。
什么意思呢?
大概就是,在设计硬件架构和芯片指令集时,就需要软件和算法人员参与进来,而不是硬件人员埋头设计。
软硬件人员一起来设计,这就要求硬件人员懂算法和软件,软件人员懂硬件结构。
这样设计出来的芯片,在使用其进行算法开发时,才能发挥出最大的硬件潜能,才能榨干芯片的每一处性能。
这也是为什么很多大厂,比如特斯拉都在自研芯片的原因。
一方面是为了摆脱对芯片厂家的依赖。
另一方面,则是可以依照自家独特的模型和算法,自定义设计出更适用于自家业务的芯片结构,这样做出来的产品性能才好。
国内外很多公司已经在往软硬协同方向发展了,这个思路我认为是对的,但是很多时候,这条路还真不好走。
前段时间&#