当前位置:首页 > 家装 > 装修设计 > 文章正文

中科院团队推出开源神经形态芯片「文曲星」(附源代码)

编辑:[db:作者] 时间:2024-08-25 03:37:24

几十年来,旨在模拟大脑行为的神经形态打算已得到广泛发展。
人工神经网络(ANN)是人工智能(AI)中一个主要的观点,在识别和分类任务上取得了出色的性能。

中科院团队推出开源神经形态芯片「文曲星」(附源代码)

为了在硬件上更好地仿照大脑的行为,研究职员开拓了一种既快速又节能的新方法——神经形态打算。

在神经形态打算中,脉冲神经网络(Spiking Neural Network,SNN) 是硬件实现的最佳选择。
因此,比来一些研究把事情重点放在了加速 SNN 打算上。
然而,大多数加速器办理方案都基于 CPU 加速器架构,这种构造由于繁芜的掌握流程而能源效率低下。

来自中科院打算所、北京邮电大学、上海科技大学和中国科学院大学的六位同学和一位西席组成的研究团队在arXiv上提出了一种功耗极低的神经形态处理器「文曲星 22A」,结合了通用 CPU 和 SNN 打算的功能,并通过 RISC-V SNN 扩展指令集完成了高效打算。
文曲星 22A 通过自定义 RISC-V SNN 指令集 1.0(RV-SNN 1.0)将 SNN 打算单元集成到通用 CPU 的 pipeline 中,实现了低功耗打算。

论文链接:http://arxiv.org/abs/2210.00562GitHub: https://github.com/openmantianxing/Wenquxing22AGitee: https://gitee.com/openmantianxing/wenquxing22a

研究者利用中国科学院大学 OSCPU 团队设计的 9 级顺序 RISC-V 处理器 Nutshell 作为基准,并将其实行单元扩展为该研究自行设计的 RISC-V SNN 扩展指令集。
NutShell 本身具有 RV64IMACSU 指令集,可以运行 Linux 等当代操作系统,也是一种高性能的 RISC-V 开源处理器。

研究团队基于 RISC-V 自定义的 SNN 指令集具有高打算粒度,可防止 pipeline 因实行一条指令而永劫光结束。
该研究利用带泄露整合发放模型(LIF)和基于顺序的二进制随机 STDP 来实行基于事宜的 SNN 打算。
神经元和突触模型均对硬件友好且节能。

总的来说,该研究对实现低功耗 SNN 打算的贡献包括:

基于 RISC-V ISA 设计了高打算粒度的自定义 SNN 扩展指令集 RV-SNN 1.0;精简了标准 LIF 模型,以降落在处理器中计算和集成神经元模型的难度;修正了二进制随机 STDP,以适应突触权重的单周期更新;研究团队开源了文曲星 22A 的源代码,以助力未来的芯片研究。

为了评估文曲星 22A 的性能,该研究将其用于 MNIST 数据集的识别任务,并和其他 SNN 系统进行了比较。
实验结果表明,与加速器办理方案 ODIN 比较,在分类准确率相称的情形下,文曲星 22A 的功耗仅为 ODIN 的 1/5。

源代码描述

文曲星 22A 干系文件如下图所示:

SNN 单元

文曲星 22A 改编自 Nutshell(果壳)处理器,但是两者的不同点在于文曲星 22A 有一个 SNN 单元,可用于脉冲(spike)处理、神经更新和突触(synaptic)打算。
而这些不同点又是文曲星 22A 的核心代码部分,存在于函数单元的 (fu) 目录下。

SNN 单元包含 4 个部分,分别是脉冲处理单元、LTD(Long-Term Depression )单元、神经元单元和 STDP( Long-Term Potential)单元。

脉冲处理单元:这个单元掌握实行着输入脉冲和突触之间的 AND 操作,有效脉冲的数量被打算出来,并将其提交给下一个组件;神经元单元:神经元单元根据来自脉冲处理单元的有效脉冲数量、先前状态和神经元的 leakage 电压来更新神经元确当前状态;LTP 和 LTD 单元:神经元更新后,来自神经元的脉冲旗子暗记将被发送到 LTP 单元。
该旗子暗记决定突触权重是否为 1(on)。
之后 LTD 单元开始根据 LTD 概率降落突触权重。
一个 16 位的 LFSR 将天生一个随机的 10 位数字 x,以与 LTD 概率进行比较。
如果 x ≤ LTD 概率,则突触权重将设置为 0。

文曲星 22A 整体架构

该研究采取基准 NutShell 处理器来支持 SNN 的打算。
下图 2 显示了文曲星 22A 的微架构。
SNN 单元(显示为 SNNU)被添加到 pipeline 中,为实行阶段。
SNN 事情流程中的三个阶段由 SPU(Spiking Process Unit)、NU(Neuron Unit)和 SU(Synapse Unit)处理组成。
所有这些组件都集成到 SNNU 中。
SNN 分外寄存器堆与通用寄存器堆一起被定义,ISU(Issue Unit)掌握指令发布,避免数据冒险。

实验结果

MNIST 数据集有 70000 个从 0 到 9 的手写数字样本,个中 60000 个用于演习,10000 个用于测试。
每个数字样本是一个 2828 灰度图像,最大值为 255。
该研究利用文曲星 22A,并利用二元随机 STDP 学习规则对该数据集进行分类。

网络架构

该研究将每个神经元的突触数设置为 2828,以匹配图像格式。
为了将这些样本供应给文曲星 22A 的 SNN,该研究利用泊松编码器(Poisson encoder)天生基于速率的泊疏松布脉冲来引发输入层。
该编码器将输入数据转换为具有相同形状的脉冲数据。
为了天生脉冲,该研究设置了一个韶光周期发射概率:p=x,个中 x 须要归一化到[0,1]。
所有这些预处理步骤都在文曲星 22A 中实行。

比较结果

表 1 为文曲星 22A 与其他基于 STDP 的 SNN 系统的 MNIST 识别比较结果。
由实验结果可得,在利用的低于 8 位 STDP 的系统中,文曲星 22A 与其他分类准确率相差不大,乃至更好。

为了比较功耗,该研究将文曲星 22A 和 ODIN 都综合到同一个 FPGA 平台上,以比拟这两款芯片的功耗。
结果如图 4 所示。
从图 4 可以看出,总功耗从 25.949 W(ODIN)降落到 5.055 W(文曲星 22A),详细硬件资源利用率如表 2 所示,比 ODIN 处理器低约 5 倍。

下表 2 为文曲星 22A 与 ODIN 的硬件利用比较:结果表明,文曲星 22A 花费的硬件资源更少。

文曲星 22A 性能

该研究用不同数量的神经元演习 SNN,在二进制随机 STDP 中为 (10,20,40) 个神经元。
图 5 展示了在 10000 个 MNIST 测试样本的分类准确率 (CA),结果显示在文曲星 22A 上 10、20 和 40 个神经元的二进制权重 SNN 的最大准确率分别为 80.94%、86.91% 和 91.91%。
CA 的增加表明难以用少量的神经元对一些相似度高的数字进行分类。
虽然输出层中的神经元数量随着 w_exp 的增加而增加,但配置更多的神经元可以产生更高的识别准确率。

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/lz/zxsj/102835.html

XML地图 | 自定链接

Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码

声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com