AI芯片:清华天机芯片内部结构分析(TianJic)

最近,清华七年磨一剑,放出一大招,文章直接登上NATURE的封面。
《Towards artificial general intelligence with hybrid Tianjic chip architecture》。
文章介绍了整个TianJic的结构及具体应用。
本文延续以往一贯的风格,仅仅研究文章中公开的内部计算架构。

一、整体思路

人工智能通常有两个主要方向:
(1)一种是面向计算科学的方向
(2)一种是面向神经科学的方向
如下图所示。
在这里插入图片描述

1.面向计算科学方向

这个方向,整体思路是用大量精确计算来实现人工智能。比如ANN,具体会引入CNN,LSTM等计算。

2.面向神经科学方向

这个方向,整体思路是模仿人类大脑的工作原理,实现人工智能。比如SNN。

3.小结

这两个方向,可以看作原理不同的两类实现方式。之前的研究都是各自分离的。清华天机首次尝试将两种计算方式融合到一个芯片架构中,相辅相成,建立新的人工智能系统。
想必这也是为啥能登上Nature封面的一个重大原因吧。

二、计算核心结构

2.1 ANN与SNN

因为ANN与SNN的计算流程如下,存在一定程度的相似,可以共用部分运算逻辑。
比如,ANN中的CNN,主要做的是乘累加;
SNN,会用到加法。
具体,如下图所示。

在这里插入图片描述

2.2 融合ANN与SNN

二者可以共用加法逻辑。
清华用一个MUX去选择,当是SNN时,就跳过乘法逻辑,直接进入加法逻辑。
如下图所示。
在这里插入图片描述

2.3 TianJic FCore

上方的基础单元结构确定后,然后多个这样的逻辑组合起来,形成了TianJic的整体架构,成为FCore。
如下图所示。
在这里插入图片描述
可以看出,左侧的Axon,输入的是activition,右侧的Synapse mem,输入的是权重,经过中间的Dendrite的乘加逻辑后,将计算中间结果传递给下方的Soma,根据是SNN或者ANN,选择对应的计算路径,分别处理。

2.4 FCore Array

单个FCore可以通过配置,成为执行SNN或ANN的逻辑功能。
多个FCore,通过配置成SNN或ANN,再组合在一起,可以灵活配置组合形成不同拓扑结构。有点FPGA的可重构思想在里面。
比如某个SNN的FCore的输出可以作为另外一个ANN的FCore的输入。
如下图所示。
在这里插入图片描述

三、核心计算架构 FCore

3.1 FCore

FCore的整体结构可以从文章后面的补充附图略窥一二。
如下图所示。

在这里插入图片描述
从上图中可知,整个FCore由多个模块组合而成。
Axon模块,主要提供输入的图像数据(activision);
Synapse模块,主要提供权重参数;
Dendrite模块,执行乘法和加法计算;
Soma模块,执行后续的激活/pooling等功能。
Router模块,调配数据的传递,类似一个DMA结构,或者,实现可重构配置的功能。

这么一看,其实清华TianJic的架构,也很常见。
乍一看,比较像谷歌的TPU。但是,再看,又更像寒武纪的DianNao。
仔细一看,就是这二者的结合。
整体来说,架构的安排更加类似DianNao。
因为FCore的16个MAC并没有串联在一起形成阵列,而是单独的存在,非常类似寒武纪的DianNao架构。但是呢,又不是完全学的寒武纪的DianNao,大概就是,融合了PuDianNao与TPU的设计思路。

FCore怎么计算呢?
举个例子,计算某个卷积时,假设该卷积是3X3的,那么,就是9个乘法结果的累加。
由于FCore的每个MAC并没有串联一起,反而类似单独并行的存在,所以,估计是一个MAC,单独完成某个卷积需要的9次乘法,将每次的乘法结果传递给下面的加法,然后,等下一次的乘法结果到了就继续累加,一直等到9个乘法结果都累加在一起了,然后将计算结果传递给Soma模块的Potential Memory。
这么一看,FCore的计算方法,反而与寒武纪的PuDianNao比较像。

当然,我也只是单纯凭借文章中的文字及图片做的猜测,或许会有不准确的地方,所以只是写出来给大家当作娱乐一下,不要当真,我也不负责的,解释归清华啊。

四、TianJic 优缺点分析

从上面的分析中,简单认识了一下FCore的计算方式。
那么就顺势来看看TianJic的优点及缺点。

4.1 优点

这个就很明显了,最大的优点是融合了ANN与SNN两种不同类型的计算于一体。
单个的FCore,通过复用存储逻辑、计算逻辑,达到同一块芯片通过灵活配置可计算SNN和ANN。(感觉清华系的芯片,总是有一种可重构的思路在里面)
多个的FCore,通过配置成可执行ANN或SNN,然后再串联组合,形成功能多变的系统。多个FCore组成阵列,配置成不同的功能,就能够适应不同的需求。
整体来说,比较灵活。

4.2 缺点

清华毕竟是我考不上的学校,里面的人那自然是很厉害了,设计的芯片想必是没有缺点全是优点的。
不过,我就吹毛求疵吧,提一下吧。

最大的感受是:算力不够!

从截图看,一个Dendrite模块,才16个MAC,这个算力就很小了。
对比一下:
DianNao 单核有16X16=256个乘法器, 16个加法器
TPU1 单核有256X256=64K个MAC(乘加单元,等同包含一个乘法器,一个加法器)
TianJic 的整个chip 有156个FCore(核),单个FCore 有 16个MAC

这么一对比,就发现,TianJic的单核运算单元太少了,别说与多年前的TPU1比了,就是DianNao都能秒杀FCore。FCore表现出来就是算力不够。如果是在DianNao那个年代,还行,但是现在都是9102年了,这点算力根本不够的。
估计,这也是为啥TianJic会有156核组成阵列的原因了。
不过,就算能够用多个FCore组合成算力更强大的阵列,但是感觉还不如增大单个FCore的计算资源。
多个FCore组合在一起,多核之间数据的传输延迟,功耗,都远远大于单个FCore内部的传输消耗,两者消耗的功耗与延迟根本不在一个数量级。
所以,我单纯觉得算力太弱,如果组成足够算力的阵列,功耗又真的不小,看着就像一个FPGA,可重构。但是实际应用时,算力与功耗无法平衡,感觉挺鸡肋的。

别打我,不说了~~~

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识点解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“橙点同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值