AGI时代存内计算芯片的语音识别之旅 —— 知存科技开发板体验与感悟

目录

一、简介

二、活动内容

2.1 多模态时代,存内计算框架的应用与发展

1、多模态时代计算需求

2、存内计算技术

3、知存科技存内产品

2.2 分布式环境下深度学习任务的高效可靠执行研究

基于强化学习的流水线分布式训练调度方案(PG-MPSS)—— 系统框架

2.3 IGZO在后道单片三维集成中的机遇与挑战

1、IGZO的背景

2、IGZO的优势

3、IGZO器件的“三座大山”

2.4 神经网络推理框架与实践

1、实验介绍

2、实验环境准备

3、模型训练

4、知存 onnx 格式模型转芯片 mapper 格式

三、总结与分享

总结

分享---天才博士招募计划

一、简介

在今年的 CSDN 程序员节庆典中,我有幸参与了知存科技精心策划的 AI 工作坊——“探索存内计算芯片开发板在语音识别中的应用”。作为众多成功完成挑战的参与者之一,我感到无比兴奋。随着AI时代的到来,作为AI入门的新手有着好学之心,在此次活动参与中,我回顾了大学的嵌入式课程,又结合了实际的硬件操作,实验搭建完成之后的满满成就感,感觉大学老师没白教!接下来带大家领略一下这个技术之旅以及实际的搭建过程:

随着数据驱动的人工智能技术在各个领域的广泛应用,高能效的存内计算(In-Memory Computing, IMC)作为解决传统冯·诺依曼架构瓶颈的有效途径,正逐渐成为计算架构领域的研究热点。存内计算的核心思想是将计算任务直接在存储器内部完成,从而减少数据在处理器和存储器之间频繁传输所带来的能耗和时间延迟。

存内计算技术通过在存储单元内部集成计算功能,使得数据在被读取的同时即刻完成计算,极大地提高了计算效率并降低了能耗。这种计算方式特别适合于处理大规模并行计算任务,如深度学习算法中的矩阵运算,能够显著提升智能算法的能效。

在实际应用中,存内计算技术可以广泛应用于自动驾驶、医疗诊断、智能家居等多个领域,通过融合图像、语音、传感器等多种数据源,实现更智能的决策和控制。

存内计算技术的发展不仅为解决传统计算架构的瓶颈提供了新的思路,也为智能计算的发展注入了新的活力,预示着计算技术的深刻变革。

二、活动内容

此次活动主要分为几个部分:

  • 多模态时代,存内计算框架的应用与发展
  • 分布式环境下深度学习任务的高效可靠执行研究
  • IGZO在后道单片三维集成中的机遇与挑战
  • 存内实训
  • AGI 开源圆桌分享

2.1 多模态时代,存内计算框架的应用与发展

知存科技是全球领先的存内计算芯片企业,全球率先 量产商用、KK级 量产出货,2024年首颗存内计算 视觉AI芯片 WTM-8系列即将量产,感兴趣的可以关注期待一下。

1、多模态时代计算需求

云端侧大模型应领域:主要在移动终端、智能助手、具身智能、自动驾驶等。

超大模型参数:数字信号处理、人脸识别、人脸识别、端侧大模型、云端大模型。

端侧LLM Decoding需求:语音多模态 输入输出、信息总结能力、逻辑推理能力、通用具身智能

近存计算技术:基于2.5D的混合工艺集成,将不同的die集成在硅基基座上 混合集成逻辑芯片、模拟芯片、内存芯片 基于UCIE协议,可多芯片高速互联,接口带宽达1Kbit 集成成本高,但芯片设计成本低。

存内计算-相比CPU/GPU,更高计算并行度。更高能效:

2、存内计算技术

数字存算/模拟存算对比:

模拟存内计算- 浮栅:

3、知存科技存内产品

2.2 分布式环境下深度学习任务的高效可靠执行研究

基于强化学习的流水线分布式训练调度方案(PG-MPSS)—— 系统框架

模型划分方案:

  • ① 提取模型特征--层的操作类型、输入数据大小、输出数据大小、计算量
  • ② 将每层的特征编码依次输入到分组网络
  • ③ 分组网络输出得到本层与下一层合并的规则。若输出0,则将本层与下一层合并;若输出1,则把前面标记都是0的层加上本层作为一个阶段
  • ④ 在层间流水线并行的基础上加入层内数据并行

阶段映射方案:

  • ① 提取阶段的特征,通过对属于阶段的所有层特征进行逻辑或操作得到的
  • ② 将每阶段的特征编码依次输入到映射网络
  • ③ 映射网络输出每阶段对应放置的计算节点编号
  • ④ 按照此模型划分和阶段映射结果做流水线并行训练

2.3 IGZO在后道单片三维集成中的机遇与挑战

1、IGZO的背景

芯片级的三维集成目前提高集成电路密度和性能的主要手段,能够快速满足芯片集成密度提高的需求,基于后道工艺的单片三维集成是未来芯片级三维集成的重要发展方向。基于后道工艺的单片三维集成需要一种兼容低温工艺的成熟半导体材料。

2、IGZO的优势

氧化物半导体的导电机制:氧化物半导体的迁移率与是否结晶无关,比其他非晶半导体具有更高的迁移率。

氧化物半导体的稳定性主要与Vo浓度、H含量、C杂质有关。

  • 氧化物半导体能够在非晶态时具有较高的电子迁移率
  • 氧化物半导体器件的阈值电压能够通过元素组分调节
  • 氧化物半导体兼容低温工艺且易于三维集成

3、IGZO器件的“三座大山”

 抗氢(H)性:IGZO中H可以作为浅能级施主杂质提供电子,导致IGZO器件的阈值电压减小。

热稳定性:后段的ILD、FG退火等工艺会使器件长时间处于400oC,导致薄膜性能退化 F处理能够增强IGZO中M-O的键结,提高薄膜的稳定性。

偏压温度不稳定性:对IGZO进行F plasma处理并优化HK,能够使PBTI可靠性达到十年。

2.4 神经网络推理框架与实践

1、实验介绍

这次实验主要是想通过用AISHELL-WakeUp-1 数据集为例,用不同网络结构展示模型训练及移植过程。AISHELL-WakeUp-1是一个包含中英文唤醒词的语音数据库,其中唤醒词为“你好,米雅”和“hi, mia”。该数据库收录了3936003条语音样本,总计1561.12小时的录音。共有254位发音人参与录制。录音工作在真实的家庭环境中进行,设置了7个录音位置。远距离录音使用了6个圆形的16路PDM麦克风阵列,采样率为16kHz,位深为16bit;近距离录音则使用了1个高保真麦克风,采样率为44.1kHz,位深同样为16bit。

本次实验用到的是witin_nn 框架,这个框架是基于 PyTorch 开发的,witin_nn 框架主要实现了适配知存科技芯 片的量化感知训练(QAT)和噪声感知训练(NAT)方法,目前支持 Linear、Conv2d、 ConvTranspose2d、GruCell 等算子。

通过在神经网络的正向传播链路上引入输 入、权重、偏置以及输出的噪声,干预神经网络的反向传播(参数更新),从而增强网 络的泛化能力。具体来说,witin_nn 模拟神经网络映射到知存科技存内芯片计算的过程, 支持输入和输出的 8bits~12bits 位宽量化以及权重的 8bits 量化,实现 QAT,并引入 模拟电路噪声,实现 NAT。

2、实验环境准备

实验环境准备:

硬件:x3 开发板、GPIO 为 16,17所用串口 、WTMDK2101-X3评估板。

WTMDK2101-X3评估板:WTMDK2101-X3 是针对 WTM2101 AI SOC 设计的评估板。

包含:

  • ()1) WTM2101 核心板,即我们的存算芯片。
  • ()2) 和 I/O 板:WTM2101 运行需要的电源、以及应用 I/O 接口等.

               核心板                                          WTMDK2101-X3 I/O 板

软件环境:其中的python环境需要安装3.11版本的。

安装步骤为:

第一步:安装Miniconda3Miniconda3-py311_24.7.1-0-Windows-x86_64.exe第二步:Miniconda下创建环境  :conda info -econda create -n py3.11_torch2.3.1 python=3.11conda activate py3.11_torch2.3.1第三步:安装onnx、matplotlib、opencv-python、tqdm模块 conda install onnx pip install matplotlib    -i https://pypi.tuna.tsinghua.edu.cn/simplepip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simplepip install -i https://mirrors.aliyun.com/pypi/simple/ -U numpypip install tqdmpip install einops第四步:安装torch模块和Torchvision模块,win环境下在tools目录中有提供对应文件Torch:torch-2.3.1+cpu-cp311-cp311-win_amd64.whlTorchvision:torchvision-0.18.1+cpu-cp311-cp311-win_amd64.whl运行如下命令进行安装: pip install /PATH/TO/torch-2.3.1+cpu-cp311-cp311-win_amd64.whlpip install  /PATH/TO/torchvision-0.18.1+cpu-cp311-cp311-win_amd64.whl

其中第四步中的TO需要改写torch-2.3.1+cpu-cp311-cp311-win_amd64.whl和torch-2.3.1+cpu-cp311-cp311-win_amd64.whlf分别的文件路径。如下所示:

3、模型训练

本 demo 提供 CNN 网络结构为:

接下来我们就开始训练了。本次实验推荐在 windows 环境下进行运行。操作步骤为:

  • (1)python 环境安装配置完成。
  • (2)进入代码目录 cd python,执行后续代码,模型训练配置 config.py。
  • (3)运行 train.py,训练完毕后,模型权重为 models/net_type/bestModel.pth。
  • (4)运行 infer_and_generate_onnx.py,会将训练得到的 bestModel.pth 进行推理并 构建 onnx 模型,即 models/net_type/bestModel_quant.onnx,将 bestModel.onnx 复制 到 mapper/input 下。
  • (5)运行 create_quant_data.py,在 mapper/input 中生成 test_data_cnn_0_100.npy 和 mnist_data_cnn.h 文件,这俩文件是后面生成 map 和上板验证需要的输入文件。
4、知存 onnx 格式模型转芯片 mapper 格式

mapper 是知存工具链制定的一套工具,目的在于将模型转换至芯片所需格式。

4.1、连接 mapper 环境

(1)安装 Xshell/Xftp、或者mobaxterm软件,能连接服务器的也行。通过 Xshell 连接到 mapper 服务器 

  • 服务器 IP 地址: 101.126.129.212
  • 端口: 8090
  • 账号: guest
  • 密码: guest111

(2)输入命令:source ~/.bashrc

(3)在用户目录下新建一个文件夹,用于存放后续相关文件,如/home/guest/temp

4.2、准备 mapper 输入文件

进入 mapper 文件夹下, input 文件夹下即我们给 mapper 的输入。

其中:

bestModel_quant.onnx 为步骤 3.(4)生成的模型。

opt.protobuf 为模型优化策略配置文件,是可选项。

test_data_cnn_0_100.npy 为 python/create_quant_data.py 生成的数据, 用于模型精度校准。 gen_mapper.py 为转换脚本,其中网络输入形状、名称等,需与模型适配 (如所示)。

4.3、生成 map

(1)通过 Xftp 将 mapper/input 文件夹传输到

4.1.(3)建立的文件夹下,如 /home/guest/temp/input,执行 gen_mapper.py,转换输出在/home/guest/temp/output, 将 output 文件夹传输回本地。

(2)mapper 的生成产物示例位于 mapper/output

5、烧写 NPU 权重

我们使用 NPU 烧写板(NPU 烧录器)

(1)系统连接:进行模型烧录和开发时,我们需要将 JTAG,核心板,NPU 烧写 板连接好,并打开开关,如系统连接示意图所示。跳线连接参照图:

     

实物连接

(3)使用 project/ WitinProgramTool_WTM2101 下的 WitinProgramTool.exe 进行模型 权重烧写。

(4)烧写指令: .\WitinProgramTool.exe -m init .\WitinProgramTool.exe -m program -i XXXX\map.csv -k 2 其中 XXXX 为步骤 4.(3)中生成的 mapper/output/map

4、板端工程编译及测试

(1)安装知存 IDE Witmem Studio,安装包在 tools 下 WSSetup_1.5.7.exe。

(2)将步骤 4.(3)生成的 mapper/output/register.c 放在 project/Model 下,使用 Witmem Studio 打开工程 project/Project/SES-RISCV/Demo.wmproject。

(3)测试数据为 python/create_quant_data.py 生成的数据 mnist_data_cnn.h,应放在:

(4)Target->Download 下载工程:

(5)打开 tools 中的 amaoComV4.9.exe 串口工具,设置波特率 9600,查看准确率输 出。这些串口打印信息会在(4)download 工程完成后开始打印,如果没有看到完整的 打印信息,可以将板子重新下电上电后,先打开串口,再进行(4)download,不能通过开发板 reset 按键进行重启操作。

正确输出见下图:

如果界面出现这些数据,那么恭喜你, 完成了基于存内计算X3开发板的语音识别从训练到部署全流程。

三、总结与分享

总结

对于AI大模型时代的到来,我们通常接触的AI体验主要集中在软件层面,如智能手机助手、在线客服机器人等。而这次我有幸参与了一个线下的体验活动,它让我亲身体验到了AI与硬件结合的魅力。在这次活动中,我主要体验了嵌入式AI的应用,这不仅仅是一个简单的软件操作,而是需要我亲自动手,将AI技术应用到实体硬件上。

在老师的指导下,我完成了基于内存计算X3开发板的语言识别系统,从数据的收集、模型的训练到最终的部署,整个过程让我深刻体会到了AI技术的复杂性和实用性。这个过程中,我遇到了很多挑战,比如数据预处理的难题、模型调优的困惑,但同时也体验到了解决问题后的快感和满足。

每当我成功地完成一个步骤,那种收获感和成就感就会油然而生。从项目的启动到最终的完成,我不仅学到了宝贵的知识,还锻炼了我的实践能力。这次体验让我对AI技术有了更深入的理解,也让我对未来的AI应用充满了期待。这真的是一次非常宝贵和难忘的体验!

分享---天才博士招募计划

此次线下的导师团队,是由知存科技的算法开发专家团队领衔,包括工具链、AI算法开发和存算架构设计等领域的领军人物,具备丰富的实战经验。如果有这个行业的或者感兴趣的可以加入他们。

分享一下他们团队的一个天才博主招募计划,如果你觉得你觉得你能行你就来!有着广阔的舞台等着你!具体招募要求如下:

  • 面向具有创新精神、良好的解决问题能力、善于和乐于学习、有很强的自我驱动能力和延迟满足感 年薪总包:业界最顶级
  • 人才培养:除年薪外百万元预算用于海外交流、顶级行业科学家辅导、充分自由度的研发项目、独自带队机会。

感兴趣的也可以扫码了解更多信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1550488.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

前端工程规范-4:Git提交前代码规范检查(Husky + Lint-staged)

Git提交前代码规范检查 在前端项目开发中,规范git提交信息,也是经常使用的手段,如何确保团队成员都遵循ESint规则,且不会将不符合规范的代码推送到Git仓库? 答案是:使用带有git hooks功能的husky。git hoo…

【LLM大模型】Ollama 运行 GGUF 模型

Ollama 默认直接支持很多模型,只需要简单的使用 ollama run命令,示例如下: ollama run gemma:2b就可安装、启动、使用对应模型。 通过这样方式直接支持的模型我们可以通过https://ollama.com/library 找到。 在https://huggingface.co/mod…

大端、小端区分与判断

大小端的判断是根据系统如何存储二进制数据来判断的 大端顾名思义,以数据的高位做开端的操作系统、小端也是以数据的低位做开端的操作系统 用最简单的例子: 对于数据0x01来说,高位为0低位为1,转十进制: 0x01 0 * 1…

RK3588主板PCB设计学习(五)

DDR中的一组信号线如何进行走线: 高亮这一组的焊盘,按照DDR4的走线要求,TOP层贴元器件的话从最下面的层开始走线: 先行CPU这一端把线拉出来,怎么顺怎么拉:如果在第六层拉不出来的话,在表层进行…

STM32DMA学习日记

STM32 DMA学习日记 写于2024/9/28晚 文章目录 STM32 DMA学习日记1. DMA简介2. I/O方式2.1 程序查询方式2.2 程序中断方式2.3 DMA方式 3.DMA框图4. 相关寄存器4.1 DMA中断状态寄存器(DMA_ISR)4.2 DMA中断标志清除寄存器(DMA_IFCR)…

[CSP-J 2022] 解密

题目来源:洛谷题库 [CSP-J 2022] 解密 题目描述 给定一个正整数 k k k,有 k k k 次询问,每次给定三个正整数 n i , e i , d i n_i, e_i, d_i ni​,ei​,di​,求两个正整数 p i , q i p_i, q_i pi​,qi​,使 n …

verilog实现FIR滤波系数生成(阶数,FIR滤波器类型及窗函数可调)

在以往采用 FPGA 实现的 FIR 滤波功能,滤波器系数是通过 matlab 计算生成,然后作为固定参数导入到 verilog 程序中,这尽管简单,但灵活性不足。在某些需求下(例如捕获任意给定台站信号)需要随时修改滤波器的…

【教程】57帧! Mac电脑流畅运行黑神话悟空

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 1、先安装CrossOver。网上有许多和谐版,可自行搜索。(pd虚拟机里运行黑神话估计够呛的) 2、运行CrossOver&#xf…

12、echarts 没有显示折线图

一、问题描述 echarts 没有显示折线图,但是,有数据显示: 看图表展示,y轴数据全部没有显示,直接可以判定是数据结构出问题了。 检查 series.data[] 数据结构: dataList [{"dateStr":"202…

鸿蒙开发(NEXT/API 12)【硬件(传感器开发3)】传感器服务

场景介绍 当设备需要获取传感器数据时,可以使用sensor模块,例如:通过订阅方向传感器数据感知用户设备当前的朝向,通过订阅计步传感器数据统计用户的步数等。 函数说明 名称描述OH_Sensor_GetInfos(Sensor_Info **infos, uint32…

GAMES101(作业8)

作业8 题目: 模拟绳子动画,包括基于物理的,和非物理的,应该修改的函数是:rope.cpp 中的void Rope::simulateEuler(... Rope::rope(...),,void Rope::simulateVerlet(...) 代码框架: main:负…

调试分析:[跳数度量]更改为[距离度量]后的 routing_bellmanford 算法

回顾复习2023年8月的《★修改Exata6.2源码:〔修改Bellmanford最短路径路由的衡量标准从【路由跳数】改为【“路由器节点间的物理距离”】,并动画演示〕》,VS2015调试Exata,跟踪调试修改后的[ routing_bellmanford.cpp ]源码&#…

Redis-常见数据类型(修改ing)

1. 预备知识 redis按照键值对的方式存储数据 1.1 基本全局命令 KEYS 返回所有满⾜样式(pattern)的key,⽀持如下统配样式: h?llo 匹配hello,hallo,hxlloh*llo 匹配hllo,heeeelloh[ae]llo 只匹配hallo helloh[^e]llo 匹配除hello,heee..llo以外的h[a…

Java-数据结构-Map和Set-(二)-哈希表 |ू・ω・` )

文本目录: ❄️一、哈希表: ☑ 1、概念: ☑ 2、冲突-概念: ☑ 3、冲突-避免: ☞ 1)、避免冲突-哈希函数的设计: ☞ 2)、避免冲突-负载因子调节(重点): ☑ 4、冲突-解决&…

宠物空气净化器该怎么选?希喂、美的、有哈这三款有推荐的吗?

终于要到国庆了,这可是打工人除春节外最长的假期!在外上班后,回家的次数越来越少了,这次国庆肯定要回去陪陪父母。这票是真难买啊,候补了我一个多星期才买到。本来以为最困难的问题已经解决了,又想到我家猫…

有通话质量更好的蓝牙耳机推荐吗?高品质的平价开放式耳机推荐

个人认为开放式耳机在通话方面还是表现不错的,主要有以下几个原因: 首先,在麦克风设计与配置方面: 拥有高品质麦克风硬件。优质的开放式耳机往往会配备高性能的麦克风,这些麦克风灵敏度较高,能够精准地捕捉…

情感短视频素材下载推荐

在制作热门的情感短视频时,优质的素材是不可或缺的。作为一名资深视频剪辑师,今天我将为你推荐几个可以下载高清无水印情感视频素材的网站,助你轻松找到创作灵感。 蛙学网 蛙学网是国内领先的视频素材平台,专注于情感和治愈类视频…

TypeScript是基于LLM上层研发的受益者

TypeScript优在哪里 TypeScript是一种由微软开发的开源编程语言,它是JavaScript的一个超集,添加了类型系统和一些其他特性。TypeScript的优势在于: 静态类型检查:TypeScript的最大卖点是它的静态类型系统。这允许开发者在编写代码…

11.C++程序中的常用函数

我们将程序中反复执行的代码封装到一个代码块中,这个代码块就被称为函数,它类似于数学中的函数,在C程序中,有许多由编译器定义好的函数,供大家使用。下面就简单说一下,C中常用的函数。 1.sizeof sizeof函…

AI预测福彩3D采取888=3策略+和值012路或胆码测试9月28日新模型预测第101弹

经过100多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,100多期一共只错了12次,这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xf…