浅谈AI硬件

SAST weekly是由电子工程系学生科协推出的科技系列推送,内容涵盖信息领域技术科普、研究前沿热点介绍、科技新闻跟进探索等多个方面,帮助同学们增长姿势,开拓眼界,每周更新,欢迎关注,欢迎愿意分享知识的同学投稿eesast@mail.tsinghua.edu.cn

 

伴随着AI的热潮,AI硬件也备受关注

你是否对深鉴的FPGA和谷歌的TPU充满好奇?

就随我了解一下AI硬件吧!

AI硬件大体上可以按照下面的4个象限进行分类

4596a5b78fab561d5ee0455ec2369452538.jpg

从功能上看,可以分成Training和Inference;而从应用场景则可以分成“ Cloud / Data Center”和“Edge / Embedded”两大类,其中在Edge端做training目前还不是很明确的需求。

e422cea0343576b647d94fdd023914ad3cd.jpg

从GPU这样的通用设计,到FPGA这样的可编程器件,到专用的特定领域芯片ASIC(Application Specific Integrated Circuit,如TPU),速度越来越快,但可扩展性越来越低。

接下来将从这几个方面进行描述

485c8d1047c6ad8275d51b87252aab9bc83.jpg

接下来将从这几个方面进行描述

7a60131db810e5ce2ce9bddc0d9b8634517.jpg

cb028871fdfef1eb52228f9ac1667ffe0c9.jpg

高效推理的硬件实现

芯片上优化的目标,一个是性能,一个是能效。优化能耗,即优化能耗,主要减少对DRAM和buffer的访存次数。优化性能,即优化计算单元在整体工作过程中的利用率,让PE(Processing Element)时刻保持忙碌。

1.减少访存次数,最常用的办法就是进行数据复用。数据复用分为输入复用(input Reuse),输出复用(Output Reuse),权重复用(Weight Reuse)等。

以输入复用为例,指读入N个小map,在运算单元(矩阵乘)内部做充分的计算,将这一层对应的M个map输出都遍历一遍,完成所有的计算。这一层input buffer只要访问一次,但是weight buffer和output buffer却要进行频繁的交互。

此外,还可以设计数据传输网络,优化dataflow,通过PE之间共享输入数据,减少访存次数。

e19708546c48adc0446c7d6eed23fc2ee25.jpg

注:MAC(multiply-and-accumulate)

2.提高PE的利用率,可以优化卷积映射的方法,output map任务与PE阵列对应。比如PE阵列的大小是8*8,输出feature map的尺寸和PE的尺寸不一样,这样就导致有较多的计算资源没有用上。

2921caf661976e931f4796783ee03f6193e.jpg

这个时候可以采用并行卷积映射办法,通过并行地计算更多的输出图来获得更高的PE利用率

171e694b1fb13adb4c19149c5b9a6fc12ed.jpg

高效训练的算法实现

  1. 并行化:模型的并行化可以将其分成不同的部分进行训练:卷积层可以不同的区域之间并行,全连接层的并行可以不同的输出activation之间并联;数据的并行化可以不同的训练样本之间并行,不过权重要同步更新;超参数的并行可以同时尝试不同可选的网络。

  2. 混合精度计算

5da4f63bd23f9fac69362003bc4c638e690.jpg

乘法的时候采用float16,减少运算;加法的时候采用float32,保证精度。

3.此外,还有对训练做量化;通过模型蒸馏将老师模型获得的知识迁移到学生模型上去;对模型剪枝训练,再重新增加树枝等方法。

feb4905f5539a98d8d7a9761d3b302907d4.jpg

高效训练的硬件实现

针对神经网络需要研制专用的指令集以提高性能,比如NVIDIA的Volta架构就采用了新型指令集,增加了Tensor Cores,执行混合精度浮点加法乘法,从而相比于之前的架构有着更高的吞吐率。类似的,TPU的指令集是一个十分专用的指令集,CISC类型,主要是针对推理的访存和运算指令。

参考资料:

[1]Han, Song, Huizi Mao, and William J. Dally. "Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding." arXiv preprint arXiv:1510.00149 (2015).

[2]Yin, Shouyi, et al. "A high energy efficient reconfigurable hybrid neural network processor for deep learning applications." IEEE Journal of Solid-State Circuits 53.4 (2018): 968-982.

 

大家如果想对这方面有更多了解的话,可以参考 "Efficient processing of deep neural networks: A tutorial and survey." 以及关注StarryHeavensAbove公众号~

 

 

 

转载于:https://my.oschina.net/shannanzi/blog/2223455

### 人工智能的当前发展状况 目前,人工智能AI)行业发展迅速,在多个领域取得了显著进展。然而,这一进程伴随着一系列挑战和机遇。一方面,隐私保护、伦理道德问题、劳动力市场的变化以及算法偏见等问题亟待解决;另一方面,技术创新的应用场景日益广泛,为行业带来了新的增长点[^2]。 ### 发展现状的具体表现 在实际应用中,AI已经渗透到各个行业中,包括但不限于医疗健康、金融服务、智能制造等领域。特别是在智能城市建设方面,通过集成物联网(IoT)设备收集的数据,利用机器学习模型实现更高效的资源管理和公共服务优化成为可能。此外,通用人工智能(AGI)的研究也在稳步推进,旨在开发能够执行多种复杂任务的人工智能系统[^1]。 ### 面临的主要任务与挑战 #### 技术层面 - **数据安全与隐私保护**:随着大数据时代的到来,如何确保个人敏感信息安全成为了首要考虑因素之一。 - **提升计算效率**:为了支持更大规模神经网络训练需求,需进一步提高硬件性能并降低能耗成本。 #### 社会经济影响 - **调整就业结构**:自动化程度加深可能导致某些岗位消失或转型,因此有必要加强再教育体系构建以帮助劳动者适应新环境。 - **消除歧视现象**:防止因历史遗留原因造成的不公平对待,比如性别差异、种族区别等因素不应被反映于决策过程中。 #### 政策法规建设 - **完善法律法规框架**:针对新兴技术特性制定相应规则指南,保障公众利益不受侵害的同时鼓励创新发展。 - **促进国际合作交流**:鉴于全球化背景下跨国界合作的重要性愈发凸显,应积极寻求共同标准建立跨地区协调机制。 ```python # Python代码示例展示了一个简单的线性回归预测模型 import numpy as np from sklearn.linear_model import LinearRegression X = [[0, 1], [5, 1], [15, 2], [25, 5], [35, 11], [45, 15], [55, 34], [60, 35]] y = [4, 5, 20, 14, 32, 22, 38, 43] model = LinearRegression().fit(X, y) print(f'系数: {model.coef_}') print(f'截距: {model.intercept_}') new_data = [[70, 40]] # 新输入数据 predicted_value = model.predict(new_data) print(f'对于{new_data}的预测值为:{predicted_value}') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值