本站最新域名:m.ikbook8.com
老域名即将停用!
宽被吃光了。计算单元大部分时间都在空转,等待数据从内存搬运过来。
“这感觉就像你开着一辆法拉利,却被堵在了晚高峰的肯尼迪高速上,只能怠速烧油。”
林允宁脱下沾着冷气的羽绒服,挂在椅背上。
他拉过一把椅子,坐在赵晓峰旁边,眼神扫过屏幕上那些密密麻麻的时序图。
“别想着怎么把数据从内存里搬来搬去,晓峰。那是无用功。
“冯?诺依曼架构的局限性,没办法单凭算法越过去的。”
林允宁从卫衣口袋里掏出那张在机场候机时随手画的草图,抚平了上面的褶皱,推到赵晓峰面前。
图上没有复杂的电路逻辑,只有一堆排列整齐的方块,中间用单向箭头串联起来,形成了一个紧密的矩阵。
“这是什么?”
赵晓峰推了推鼻梁上厚重的眼镜,凑近看了看,“二维网格?每个节点只有局部连接......这拓扑结构看着眼熟。h.t.kung的脉动阵列?”
“识货。”
林允宁满意地点了点头。
赵晓峰作为清华姚班出身的硬核极客,不仅基础扎实,也称得上是博闻强记。
“可是那是70年代的老古董了,”
赵晓峰眉头拧成了疙瘩,“那是为了做专用矩阵乘法设计的,灵活性太差,编程难度极高。
“现在谁还用这个?大家都转投gpu了,cud才是未来。”
“gpu的设计初衷是图形渲染,它的缓存机制是为了纹理映射,不是为了深度学习里的张量计算。”
林允宁拿起一支笔,在草图的方块上点了点。
“既然我们要做i专用芯片,为什么要追求通用性?
“我要的就是极致的矩阵乘法效率,哪怕它连个如果是都算不了。”
他随手在白板上写下一行算式:
c[i][j]+[i][k]b[k][j]
“在传统的架构里,每算一次乘加运算,你就要去内存里读一次,读一次b,再写回一次c。这种频繁的读写就是你在高速公路上遇到的红绿灯。”
林允宁的手指顺着草图上的箭头滑动。
“但在脉动阵列里,数据不是‘存取”的,而是‘流动''的。
“左边的计算单元接收数据,完成一次乘法,加上局部结果,然后直接传给右边的邻居。
“上边的传给下边。数据在芯片内部流动一次,就被榨干了所有的计算价值,最后才写回内存。”
赵晓峰盯着那张图,狠狠吞了口口水。
他的手指在桌面上飞快地敲击,似乎在脑海里重新构建电路的时序。
“没有全局总线......全是局部互连...………如果这样的话,”
他喃喃自语,“我可以省掉至少40的片上缓存控制逻辑,把省下来的硅片面积全部塞满乘法器。如果不考虑分支预测和乱序执行这些乱七八糟的东西……………”
“对,就是这个思路。”
林允宁拍了拍他的肩膀,“这个作业交给你了。不用设计完整的tpu,先用verilog给我写一个16x16的脉动阵列原型。这对你来说并不难,一个月就能搞定吧。”
“两周。”
赵晓峰接受了挑战,顿时来了精神。
他把那袋奇多扔进垃圾桶,转过身面对屏幕。
手指悬在键盘上方停顿了一秒
\/阅|读|模|式|内|容|加|载|不|完|整|,退出可阅读完整内容|点|击|屏|幕|中|间可|退|出|阅-读|模|式|.
『加入书签,方便阅读』
-->> 本章未完,点击下一页继续阅读(第2页/共5页)