设计应用

基于算法稀疏性的卷积神经网络加速方法研究

作者:方洁虹1,2,朱昊宇1,2,肖宛昂1,2
发布日期:2026-08-11
来源:电子技术应用

引言

近年来,CNN在人工智能领域取得了巨大的成功,在图像识别[1]、语音识别[2]以及自然语言处理[3]等任务中均表现出优异的性能。然而,CNN强大的表征能力源于其巨大的参数量,这导致了极高的计算复杂度和内存占用,使得模型的推理过程十分耗时。因此,如何在保持模型精度的前提下提高CNN的运行速度,已成为当前学术界和工业界的研究热点。在CNN的运算过程中,卷积操作通常占据了总执行时间的绝大部分,以VGG、ResNet和YOLO等经典网络为例,卷积运算的占比甚至超过70%[4]。由于卷积过程包含大量的乘累加运算,减少这些运算量是加速CNN最直接有效的途径。研究表明,CNN模型存在显著的冗余性,通过剪枝技术去除不重要的权重,可以在不影响准确率的前提下大幅降低计算需求[5]。此外,经过ReLU等激活函数处理后,特征图中会产生大量的零值。随着网络层数的加深,特征图的稀疏度不断变化,最终零值比例往往超过80%[6]。如果能够充分利用这种算法固有的稀疏性,跳过零值参与的卷积运算,将极大地提升CNN的推理速度。

为了利用这一特性,通常需要设计专门的稀疏存储格式来压缩数据[7],并将卷积运算转化为SpMV[8]。然而,在以寒武纪MLU[9]为代表的众核并行计算平台上,现有的SpMV算法往往难以获得理想的加速效果,主要面临以下挑战:首先,稀疏数据在内存中的分布具有不规则性,导致了非连续的内存访问模式,难以利用硬件的合并访存机制;其次,稀疏矩阵各行的非零元素个数差异较大,在单指令多数据架构上执行时容易引发严重的负载不均衡,导致部分计算通道处于闲置状态,造成资源浪费;第三,寻找适应底层硬件架构的分组策略与计算内核交互机制并非易事,需要综合考虑稀疏矩阵的形状特征与硬件流水特性。

除了计算层面的挑战,访存开销也是制约CNN性能的关键瓶颈。在传统的CNN实现中,卷积层与池化(Pooling)层通常被设计为独立串行执行的模块。这意味着卷积的中间结果需要先被写回全局内存,再由池化层读取,这不仅增加了片上与片下的数据传输流量,也加剧了“存储墙问题”。尽管部分现有工作[10]尝试将不同网络层集成以减少通信,但这些工作大多未考虑卷积操作的稀疏性,难以在稀疏计算场景下复用。

针对上述挑战,本文提出了一种面向寒武纪MLU平台的稀疏CNN加速方法,主要贡献如下:(1)针对寒武纪MLU平台设计了一种适配硬件架构特征的自适应SpMV优化算法AdaSpConv,解决了稀疏计算中的负载不均衡问题;(2)提出了一种支持算子融合的新型稀疏存储格式CSR-CP,实现了卷积与池化操作的融合处理,有效降低了访存开销与通信延迟。


本文详细内容请下载:

https://www.chinaaet.com/resource/share/2000007203


作者信息:

方洁虹1,2,朱昊宇1,2,肖宛昂1,2

(1.中国科学院大学 集成电路学院,北京 100049;

2.中国科学院半导体研究所 人工智能与高速电路实验室,北京 100083)

此内容为AET网站原创,未经授权禁止转载。
寒武纪MLU 稀疏矩阵向量乘法 AdaSpConv CSR-CP