欢迎光临散文网 会员登陆 & 注册

【转】 IC设计中的PPA考量(新手向)(一)

2023-09-05 20:20 作者:ACFUN-AK  | 我要投稿

 IC设计中的PPA考量(新手向)(一)


aiiiiii


北京大学/ai芯片/健康电子

作为研一新生,也是IC设计的入门者,我发现我其实一直关注架构方面与前端的代码设计,但对于中后端的认知比较空白。比如说现在AI硬件加速的核心是减少访存次数,但我连一次关于乘加(MAC)与存储的后端方面的能耗时间面积都没有体验过,因此现在科研可以说是完全的空中楼阁。我认为对每一个工科生来说,无论是学术界还是工业界,具体的参数都是技术的肥料,紧密关乎着我们的创新与实践部分。

最近我在探索一款针对AI硬件的仿真器,叫timeloop【1】,里面绑定了一些先进的工艺库,可以直接通过设置结构的参数得到对应的PPA。因此可以利用这个工具给我们新手补充底层的计算,存储,通信模块很多粗糙的知识(对形成一些初步的认知很有帮助),以及发现一些有趣的结论。遂将其总结,分享给大家。(不过我对仿真器的摸索以及IC设计方面都不太熟悉,文中可能会有错误,欢迎大家指出━(*`∀´*)ノ亻!

以下是基于某40nm工艺库

  • 乘加单元:8位的乘加单元与16位的乘加单元:面积那块就是一个8位或者16位的乘加器的大小

一次计算的能量与占用面积,16位都是8位的4倍,常规操作。

  • 属于regfile的Buffer(离计算单元最近的存储单元)与属于SRAM的MainMemory(regfile的上一级存储单元,一般比他大一点)(以下应该均为同步双端口SRAM)

首先,厘清一下概念上的问题,Register file和很多的registers不是同一个概念。我们在IC设计里谈到register时,常常是指D触发器,而Register file是一种memory。【2】

那什么时候用到基于D触发器的register呢?一般的register会比SRAM用晶体管多一些,功耗多一些,不过时序也快一些,读写也方便一些。具体可以查阅【3】

因此下面的regfile也是用SRAM实现的。

以下是128*8大小与64*8大小的SRAM矩阵:

由上可知一个16位的乘加器的大小在128*8大小与64*8大小的面积之间。SRAM矩阵与访存能耗随着尺寸增加而增加也是正常的规律了。这个时候注意,从64*8的SRAM矩阵中读取一次的能耗已经快接近一次8位乘加的能耗了。

当我把SRAM大小切换为64*16时(word bits仍然为8),可以通过将cluster的数目改变为2来减少面积与能耗。(在仿真器中,cluster的数目主要与设置的word bits与width的比值有关)。相关情况可以看【4】

后面介绍一些loop tiling的知识和仿真~

【1】GitHub - NVlabs/timeloop: Timeloop performs modeling, mapping and code-generation for Tensor Algebra workloads running on Explicitly-Decoupled Data Orchestration (EDDO) architectures.

【2】科普Register file和SRAM

【3】寄存器和寄存器堆的实现到底有什么区别?

【4】https://www.quora.com/What-is-the-difference-between-block-size-and-cluster-size-on-a-disk



编辑于 2023-05-05 13:51


【转】 IC设计中的PPA考量(新手向)(一)的评论 (共 条)

分享到微博请遵守国家法律