前言
WTM2101芯片是由Witin知存科技开发的高性能存内计算芯片,专为加速AI计算设计,如图1.1所示。存内计算作为一种革命性技术,其主要优势在于将计算功能直接集成到存储器中,从而显著减少数据在芯片内部的传输距离,降低延迟,增强处理速度。这种架构使得WTM2101能够在保持超低功耗的同时,实现高达50Gops的运算能力,这一点在机器学习和深度学习应用中尤为关键。WTM2101的高性能和超低功耗这一优势极大提升了对机器学习模型的处理效率。例如,在执行深度神经网络时,存内计算允许WTM2101以更快的速度执行前向和反向传播,优化模型训练和推理过程。
图1.1 WTMDK2101-X3和WTMDK2101-ZT1等多种开发板
在硬件特性方面,WTM2101配备了专为高效AI计算设计的功能,包括动态电流范围从5uA至3mA的调整能力,以及最大指令数达到1.8M的强大处理能力。此外,芯片的物理尺寸仅为2.6mm x 3.2mm,非常适合在空间受限的移动设备和嵌入式系统中使用。
针对机器学习算法的支持,WTM2101通过其开发板如WTMDK2101-X3和WTMDK2101-ZT1提供了强大的平台。这些开发板具备高达896x1024的图像处理能力和8-bit视频处理能力,能够支持复杂的多媒体应用。开发板的设计不仅优化了WTM2101的运算和功耗表现,还提供了广泛的接口和模块支持,使开发者可以轻松地集成各种传感器和输入设备,进一步扩展机器学习项目的功能。此外,WTM2101支持的AI功能如语音识别和自动语音识别,以及关键字唤醒技术,都是基于其强大的存内计算能力。这些功能使得WTM2101能够在从边缘到云的各种计算环境中找到广泛应用,从而在智能设备和物联网设备中发挥关键作用。知存科技为WTM2101提供的丰富开发资源和演示示例,进一步降低了开发门槛,使开发者能够快速实现产品的创新和优化。
在本篇技术文章中,我们将探讨如何在存内计算芯片开发板上从环境搭建开始,部署并训练机器学习算法。通过详细介绍如何搭建实验环境,并介绍开发板的工具开发和生态环境支持,我们将提供一个全面的指南,帮助开发者有效利用此芯片进行高效的机器学习操作。
Tips:采购WTM2101开发板意向的 可以联系知存科技销售经理 微信:Bruce-729257697
二. 实验环境的搭建及机器学习算法的开发实践
可参考 GitHub - witmem/-WTM2101-: Algorithm Deployment Development Practice Based on the WTM2101 Platform.
1、实验环境的搭建
方法一:Linux环境下通过Docker部署Mapper软件环境
1)安装Docker
- 更新软件包列表并安装Docker:
-
- apt update
- apt install docker.io
- Docker服务并设置自动启动:
-
- systemctl start docker
- systemctl enable docker
2)下载和部署Docker镜像
- 拉取Mapper软件的Docker镜像:
-
- pull witin/toolchain:v001.000.024
- WSL中使用Docker,确保WSL版本和Docker Desktop协同工作。
3)管理Docker镜像和容器
- 加载镜像文件(如果有)并检查镜像列表:
-
- load -i 镜像文件.tar
- images
- 启动和连接到Docker容器:
-
- start [容器名]
- attach [容器名]
4)文件传输
- 从本地到容器:
- cp [本地文件路径] [容器ID]:[容器内路径]
- 从容器到本地:
- cp [容器ID]:[容器内文件路径] [本地目标路径]
方法二:Windows环境下通过Docker Desktop部署Mapper软件环境
1)安装Docker Desktop for Windows
-
- 从Docker官方网站下载适合Windows 10的版本并安装。
2)配置和使用Docker Desktop
-
- 启用WSL并安装Linux发行版。
- 通过软连接修改Docker安装路径。
- 搜索并获取witin_toolchain的特定版本(如034版本)。
2、机器学习算法的开发实践
1)模型训练和导出
-
- 训练模型并生成网络权重文件(bestModel.pth)。
- 转换模型格式到ONNX (bestModel.onnx).
2)模型转换至芯片格式
-
- 将ONNX文件导入至mapper工具链,并生成芯片格式文件。
3)烧写NPU权重
-
- 连接系统和设置跳线帽。
- 使用WitinProgramTool执行权重烧写命令。
4)板端工程验证及测试
-
- 使用Witmem Studio设置工程,编译并下载至硬件。
- 使用串口调试工具查看输出和准确率。
三、WTM2101的开发工具支持
为了帮助用户简便而迅速地在WTM2101开发板上部署机器学习算法,知存科技公司打造了一套完整的芯片开发工具和IDE环境。下面将为大家详细介绍针对存内计算芯片的软件、编译工具链等开发工具。
1.witin_mapper
图3.1 witin_mapper工具链软件架构图
如图3.1所示,witin_mapper是知存科技自研的一款用于神经网络映射的编译软件栈,其支持在多种操作系统上运行,包括Windows、Linux和OSX等。它是一种包括RiscV和MPU的完整解决方案,旨在将训练好的神经网络模型从常见的框架(如TensorFlow、PyTorch等)转换为适合在WTM2101 MPU加速器上运行的格式。在转换过程中,witin_mapper会进行算子和图级别的转换和优化,以确保模型在加速器上的高效执行。这些优化可能包括算子融合、内存访问优化、并行计算优化等。
同时,witin_mapper还能将预训练的模型权重编排到存算阵列中,并针对网络结构和算子给出存算优化方案,这是存内计算技术的核心优势之一。通过将数据存储和计算融合在同一芯片上,可以显著减少数据移动带来的开销,提高计算效率。此外,witin_mapper还能将不适合MPU运算的算子调度到CPU上运算,实现整网的调度。
通过使用witin_mapper,用户可以高效快捷的将训练好的算法部署到边缘设备、物联网设备和可穿戴设备等场景中,极大地缩短了模型移植的开发周期并提高了算法开发的效率。
2、Witmem Studio
Witmem Studio是由知存科技开发的一款全功能集成开发环境(IDE),包含客户识别的SDK推送功能,SDK包自动更新下载安装功能,内核自动识别语法高亮编辑器,面向不同功能的个性化工程创建功能,以及常规IDE所具有的项目工程管理,文件编辑、编译、调试等功能,如图3.2所示。其专为基于存内计算技术的AI芯片而设计,从而允许开发者直接利用该技术的优势,如高速数据处理、低延迟和低功耗等,来优化神经网络应用的性能。
图3.2 Witmem Studio的界面
Witmem Studio通过提供一站式开发体验,简化了神经网络应用的开发流程。从模型训练、量化到映射,再到最终的部署,开发者都可以在Witmem Studio中完成,无需在不同工具间频繁切换,大大节省了时间和精力。这种一体化的设计使得开发过程更加流畅,有助于提升开发效率。此外,Witmem Studio还注重用户体验,可能配备了直观的可视化编程界面和强大的调试与性能分析工具。这些工具不仅降低了开发门槛,使得非专业开发者也能轻松上手,还帮助开发者更好地理解和优化神经网络应用,确保应用能够充分发挥硬件性能优势。
3、WTM2系列芯片SDK
知存科技的WTM2101存算芯片软件开发工具套件(SDK)是一款功能全面、高效便捷的开发平台,专为加速WTM2101芯片的应用开发设计,如图3.3所示。该SDK整合了从基础驱动到高级应用解决方案的全方位资源,为开发者提供了强有力的支持。
图3.3 WTM2系列芯片SDK
该SDK中包含了NPU驱动库、LL及HAL外设驱动、DSP驱动等核心组件,确保了芯片各项功能的稳定运行。特别是轻量线程的实现,通过ucontext源码在用户态进行上下文切换,有效降低了任务切换的开销,为事件驱动的系统提供了高效的多任务管理能力。另外,SDK通过丰富的示例工程和详尽的使用手册以帮助开发者快速上手。这些示例工程覆盖了大部分常用外设和软件组件,通过参考手册并运行对应的工程,开发者可以迅速理解并应用SDK的各项功能。不仅如此,SDK还提供了一系列应用解决方案,如I2S全双工配置、双数字mic工程等常用工程代码,以及支持远程升级和快速启动的OTA和Fastloader工程。这些解决方案不仅提升了开发效率,还增强了产品的可维护性和用户体验。
除了以上提到的各个工具以外,知存科技为了进一步优化性能和进行问题诊断,SPI Monitor工具能够实时监控模型的训练和推理状态,提供详尽的性能指标和日志信息,具备关键的debug功能。此外,知存科技还推出了多种实用工具,如2302串口工具支持高效的设备间数据通讯,6FDSP音频处理工具专门为音频信号提供高级处理功能,而FDSP调试器则针对数字信号处理提供深入的调试支持。
此外,WTM2101在设计时已充分考虑与主流机器学习框架的兼容性,包括TensorFlow、Caffe、ONNX以及通过ONNX桥接的PyTorch。框架适配与优化通过知存科技的专门工具和库进行,确保模型在WTM2101上的高效性和低功耗,极大地提高了开发的灵活性和效率。通过这些深度整合的开发工具和框架支持,WTM2101不仅在硬件性能上表现卓越,其开发工具的全面性和应用广泛性也为机器学习和人工智能项目的实施提供了坚实的基础。无论是云计算、边缘设备还是移动设备,WTM2101都是执行复杂机器学习项目的理想选择。
四、社区与生态环境建设
为促进存内计算技术的普及与应用,帮助用户学习WTM2101等系列开发板,知存科技公司建设了一系列生态环境,下面将逐一为大家介绍。
- Witmem Github :WITMEM · GitHub
在GitHub上探索Witmem的广阔天地,这里汇聚了一群充满激情的开发者和思想领袖,他们共同致力于创造前沿的技术解决方案。Witmem项目不仅注重代码的质量和创新,更强调社区的协作精神和开源文化的培育。无论是寻求最新技术趋势、参与激动人心的项目,还是渴望与全球开发者交流思想,Witmem GitHub都是你理想的起点。加入我们,一起构建未来,见证开源力量的无限可能。
- 开发文档
图4.2 知存科技公司官网
知存科技公司官网(开发者社区_知存科技 | 国际领先的存内计算芯片企业)提供给了用户专门学习开发板的平台,其旨在持续分享和更新针对存内计算芯片的软件、编译工具链、算法资源、开发教程,为工程师、研究人员和技术爱好者提供工具和灵感,如图4.2所示。
通过该平台,用户可以轻松获取到针对知存科技存内计算芯片的最新软件版本、编译工具链的详细指南,以及一系列实用的算法示例和案例研究。这些资源不仅能够帮助用户快速上手,还能在项目开发过程中提供有效的技术支持和解决方案。此外,平台还设有开发教程专区,涵盖从基础知识到高级应用的各个方面,帮助用户系统地学习存内计算技术的相关概念和操作方法。
此外,本次机器学习算法在存内计算芯片WTM2101上的部署,是由CSDN的存内计算开发者社区发起的线下训练营活动。 在现场,感受存内计算硬件以及大模型的GLM-4开发的魅力,领略大模型时代下的软硬件实现加速。
社区聚焦于存内计算这一前沿技术领域,吸引了大量对存内计算技术感兴趣的开发者加入。社区中不仅有知存科技的专家团队提供技术支持,还有众多行业内的技术大咖分享经验,确保了社区内容的专业性和权威性。此外,社区提供了丰富的技术文档、开发工具、示例代码等资源,帮助开发者快速掌握存内计算技术。同时,社区还定期举办线上线下的技术交流活动,如研讨会、直播分享等,为开发者提供与同行交流的机会。
不仅如此,社区坚持开放共享的原则,鼓励开发者分享自己的知识和经验。无论是新手还是专业人士,都可以在社区中找到适合自己的学习资源,并与其他开发者共同探讨技术问题。通过社区的努力,存内计算技术得到了更广泛的推广和应用。越来越多的开发者开始关注并学习存内计算技术,将其应用到实际项目中,推动了技术的创新与发展。
五、总结
WTM2101开发板以其高度的可扩展性和灵活性,在项目开发中展现出重要价值。它能够适应从小规模测试到大规模部署的多种需求,为项目提供稳定可靠的硬件支持。此外,开发板还支持根据用户的具体需求进行定制,包括硬件配置和软件开发,确保最终产品符合市场要求。这种严谨而灵活的设计,使得开发板成为多种应用场景下的理想选择。
从本文的介绍中,WTM2101芯片在机器学习算法领域的成功应用,无疑是对存内计算技术巨大潜力的又一次有力证明。知存科技公司不仅在算力上实现了显著提升,更是在功耗控制和成本优化方面取得了突破性进展,为众多应用领域顺利实现了AI功能的实际部署。展望未来,知存科技将持续强化其技术实力,在算力、功耗、成本等多个维度上追求更高成就,进一步推动存内计算技术的普及与应用,开启AI技术发展的新篇章。