「算法」AI芯片和传统芯片到底有何区别?

「算法」AI芯片和传统芯片到底有何区别?
文章图片

文章图片

(本文来源:知乎上整理收集 , 版权归原作者所有)
前几天成立仅两年国内专做人工智能FPGA加速算法的初创公司深鉴科技被国际巨头赛灵思收购了 , 在业界引起不小的震动 。目前国内做AI芯片的公司可谓不少了 , AI芯片已然成为了当下芯片行业最热领域 。但是大部分人对AI芯片的架构应该都不是太了解 。
那么AI 芯片和传统芯片有何区别?AI芯片的架构到底是怎么样的?带着这个疑问小编搜集到了来自知乎上的一些业内行家的观点 , 现在整理转发给大家 。先回答问题:
性能与传统芯片 , 比如CPU、GPU有很大的区别 。在执行AI算法时 , 更快、更节能 。
工艺没有区别 , 大家都一样 。至少目前来看 , 都一样 。
所谓的AI芯片 , 一般是指针对AI算法的ASIC(专用芯片) 。传统的CPU、GPU都可以拿来执行AI算法 , 但是速度慢 , 性能低 , 无法实际商用 。
比如 , 自动驾驶需要识别道路行人红绿灯等状况 , 但是如果是当前的CPU去算 , 那么估计车翻到河里了还没发现前方是河 , 这是速度慢 , 时间就是生命 。如果用GPU , 的确速度要快得多 , 但是 , 功耗大 , 汽车的电池估计无法长时间支撑正常使用 , 而且 , 老黄家的GPU巨贵 , 经常单块上万 , 普通消费者也用不起 , 还经常缺货 。另外 , GPU因为不是专门针对AI算法开发的ASIC , 所以 , 说到底 , 速度还没到极限 , 还有提升空间 。而类似智能驾驶这样的领域 , 必须快!在手机终端 , 可以自行人脸识别、语音识别等AI应用 , 这个必须功耗低 , 所以GPU OUT!开发ASIC就成了必然 。
说说 , 为什么需要AI芯片 。AI算法 , 在图像识别等领域 , 常用的是CNN卷积网络 , 语音识别、自然语言处理等领域 , 主要是RNN , 这是两类有区别的算法 。但是 , 他们本质上 , 都是矩阵或vector的乘法、加法 , 然后配合一些除法、指数等算法 。
一个成熟的AI算法 , 比如YOLO-V3 , 就是大量的卷积、残差网络、全连接等类型的计算 , 本质是乘法和加法 。对于YOLO-V3来说 , 如果确定了具体的输入图形尺寸 , 那么总的乘法加法计算次数是确定的 。比如一万亿次 。(真实的情况比这个大得多的多)
那么要快速执行一次YOLO-V3 , 就必须执行完一万亿次的加法乘法次数 。
这个时候就来看了 , 比如IBM的POWER8 , 最先进的服务器用超标量CPU之一 , 4GHz , SIMD , 128bit , 假设是处理16bit的数据 , 那就是8个数 , 那么一个周期 , 最多执行8个乘加计算 。一次最多执行16个操作 。这还是理论上 , 其实是不大可能的 。
那么CPU一秒钟的巅峰计算次数=16* 4Gops =64Gops 。这样 , 可以算算CPU计算一次的时间了 。同样的 , 换成GPU算算 , 也能知道执行时间 。因为对GPU内部结构不熟 , 所以不做具体分析 。
再来说说AI芯片 。比如大名鼎鼎的谷歌的TPU1 。TPU1 , 大约700M Hz , 有256X256尺寸的脉动阵列 , 如下图所示 。一共256X256=64K个乘加单元 , 每个单元一次可执行一个乘法和一个加法 。那就是128K个操作 。(乘法算一个 , 加法再算一个) 。
「算法」AI芯片和传统芯片到底有何区别?
文章图片

文章图片

另外 , 除了脉动阵列 , 还有其他模块 , 比如激活等 , 这些里面也有乘法、加法等 。
所以 , 看看TPU1一秒钟的巅峰计算次数至少是=128K X 700MHz=89600Gops=大约90Tops 。
对比一下CPU与TPU1 , 会发现计算能力有几个数量级的差距 , 这就是为啥说CPU慢 。
当然 , 以上的数据都是完全最理想的理论值 , 实际情况 , 能够达到5%吧 。因为 , 芯片上的存储不够大 , 所以数据会存储在DRAM中 , 从DRAM取数据很慢的 , 所以 , 乘法逻辑往往要等待 。另外 , AI算法有许多层网络组成 , 必须一层一层的算 , 所以 , 在切换层的时候 , 乘法逻辑又是休息的 , 所以 , 诸多因素造成了实际的芯片并不能达到利润的计算峰值 , 而且差距还极大 。


推荐阅读