【0630开发者活动】机器学习算法在存内计算芯片WTM2101上的部署

news2024/9/20 0:50:31

 前言

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:
    1. apt update
    2. apt install docker.io
  • Docker服务并设置自动启动:
    1. systemctl start docker
    2. systemctl enable docker

2)下载和部署Docker镜像

  • 拉取Mapper软件的Docker镜像:
    1. pull witin/toolchain:v001.000.024
  • WSL中使用Docker,确保WSL版本和Docker Desktop协同工作。

3)管理Docker镜像和容器

  • 加载镜像文件(如果有)并检查镜像列表:
    1. load -i 镜像文件.tar
    2. images
  • 启动和连接到Docker容器:
    1. start [容器名]
    2. attach [容器名]

4)文件传输

  • 从本地到容器:
  1. cp [本地文件路径] [容器ID]:[容器内路径]
  • 从容器到本地:
  1. 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等系列开发板,知存科技公司建设了一系列生态环境,下面将逐一为大家介绍。

  1. Witmem Github :WITMEM · GitHub

在GitHub上探索Witmem的广阔天地,这里汇聚了一群充满激情的开发者和思想领袖,他们共同致力于创造前沿的技术解决方案。Witmem项目不仅注重代码的质量和创新,更强调社区的协作精神和开源文化的培育。无论是寻求最新技术趋势、参与激动人心的项目,还是渴望与全球开发者交流思想,Witmem GitHub都是你理想的起点。加入我们,一起构建未来,见证开源力量的无限可能。

  1. 开发文档

图4.2 知存科技公司官网

知存科技公司官网(开发者社区_知存科技 | 国际领先的存内计算芯片企业)提供给了用户专门学习开发板的平台,其旨在持续分享和更新针对存内计算芯片的软件、编译工具链、算法资源、开发教程,为工程师、研究人员和技术爱好者提供工具和灵感,如图4.2所示。

通过该平台,用户可以轻松获取到针对知存科技存内计算芯片的最新软件版本、编译工具链的详细指南,以及一系列实用的算法示例和案例研究。这些资源不仅能够帮助用户快速上手,还能在项目开发过程中提供有效的技术支持和解决方案。此外,平台还设有开发教程专区,涵盖从基础知识到高级应用的各个方面,帮助用户系统地学习存内计算技术的相关概念和操作方法。

此外,本次机器学习算法在存内计算芯片WTM2101上的部署,是由CSDN的存内计算开发者社区发起的线下训练营活动。 在现场,感受存内计算硬件以及大模型的GLM-4开发的魅力,领略大模型时代下的软硬件实现加速。

社区聚焦于存内计算这一前沿技术领域,吸引了大量对存内计算技术感兴趣的开发者加入。社区中不仅有知存科技的专家团队提供技术支持,还有众多行业内的技术大咖分享经验,确保了社区内容的专业性和权威性。此外,社区提供了丰富的技术文档、开发工具、示例代码等资源,帮助开发者快速掌握存内计算技术。同时,社区还定期举办线上线下的技术交流活动,如研讨会、直播分享等,为开发者提供与同行交流的机会。

不仅如此,社区坚持开放共享的原则,鼓励开发者分享自己的知识和经验。无论是新手还是专业人士,都可以在社区中找到适合自己的学习资源,并与其他开发者共同探讨技术问题。通过社区的努力,存内计算技术得到了更广泛的推广和应用。越来越多的开发者开始关注并学习存内计算技术,将其应用到实际项目中,推动了技术的创新与发展。

五、总结

WTM2101开发板以其高度的可扩展性和灵活性,在项目开发中展现出重要价值。它能够适应从小规模测试到大规模部署的多种需求,为项目提供稳定可靠的硬件支持。此外,开发板还支持根据用户的具体需求进行定制,包括硬件配置和软件开发,确保最终产品符合市场要求。这种严谨而灵活的设计,使得开发板成为多种应用场景下的理想选择。

从本文的介绍中,WTM2101芯片在机器学习算法领域的成功应用,无疑是对存内计算技术巨大潜力的又一次有力证明。知存科技公司不仅在算力上实现了显著提升,更是在功耗控制和成本优化方面取得了突破性进展,为众多应用领域顺利实现了AI功能的实际部署。展望未来,知存科技将持续强化其技术实力,在算力、功耗、成本等多个维度上追求更高成就,进一步推动存内计算技术的普及与应用,开启AI技术发展的新篇章。

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

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

相关文章

【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)

2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024) 2024 3rd International Conference on Informatics,Networking and Computing (ICINC 2024) 2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)将于2024年10月25-27日于中国郑州召…

Django任务管理:项目定时执行及简单管理界面

1、用django-admin命令创建一个Django项目 django-admin startproject task_manager 2、进入到项目下用命令创建一个应用 cd task_manager python manage.py startapp tasks 3、进入models.py定义数学模型 第2步得到的只是应用的必要空文件,要开始增加各文件实际…

PostgreSQL的学习心得和知识总结(一百四十八)|查看 PostgreSQL 17 中的新内置排序规则提供程序

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…

MongoDB Atlas Vector Search再度荣获最受欢迎的向量数据库称号

最新发布的《2024 年 Retool AI 现状报告》显示,MongoDB Atlas Vector Search 再次荣获最受欢迎的向量数据库称号,这已是它连续第二年获此殊荣。 Atlas Vector Search 在净推荐值 (NPS)方面斩获最高分,这一指标精准反映…

【python】pandas报错:UnicodeDecodeError详细分析,解决方案以及如何避免

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

一文带你看懂SAP-HANA的基本架构与原理

注:本篇主要对SAP HANA做了总结与论述,如有错误欢迎读者提出并补充 创作不易,希望大家一键三连支持!!!♥♥♥ 创作不易,希望大家一键三连支持!!!♥♥♥ 创作不易,希望大家一键三连支持!!!♥♥♥ 目录 一. 背景引入1.1 硬件与数据库系统1.2 行业现状 …

MongoDB自学笔记(一)

一、MongoDB简介 MongoDB是一款基于C开发的文档型数据库。与传统的关系型数据库有所不同,MongoDB面向的是文档,所谓的文档是一种名为BSON (Binary JSON:二进制JSON格式)是非关系数据库当中功能最丰富,最像…

萝卜快跑爆火的背后,美格智能如何助力无人车商业化?

近期,“订单量超过600万单”等夺人眼球的信息,让无人驾驶出租车“萝卜快跑”从江城武汉爆火出圈,在2024年的炎炎夏日为这座大火炉再添了一把火。热度背后,不少地方主管部门,近期也纷纷针对无人驾驶出租车、无人驾驶运输…

【C++】多态-最全解析(多态是什么?如何使用多态?多态的底层原理是什么?)

目录 一、前言 二、多态是什么? 三、多态的定义及实现 🔥 多态的构成条件🔥 🔥 虚函数的重写🔥 🔥虚函数重写的两个例外 🔥 🍍 协变返回类型 🥝 析构函数的重写…

OpenMesh入门,安装,运行示例Hello World

安装 环境 win10&#xff0c;qt5 源码下载编译 进入OpenMesh官网OpenMesh官网 https://www.graphics.rwth-aachen.de/software/openmesh/download/ 使用cmake gui 注意&#xff1a;先安装qt5 使用 CMake-Gui 构建 vs 2019 项目 注意 where is the source code 是<project…

Zotero推荐插件

绝大多数插件下载网址&#xff1a;Zotero 插件商店 适配&#xff1a;Zotero6 1. Zotero-style&#xff1a;标签分栏与阅读进度可视化 右键任意一个列的名字&#xff0c;会弹出一个右键菜单&#xff0c;可以勾选/取消勾选一个列&#xff0c;并且在最后有两个操作按钮是【列设置…

html5——CSS背景属性设置

目录 背景颜色 background-color 背景图像 背景定位 背景样式简写 背景尺寸 ​编辑渐变属性 背景颜色 background-color 背景图像 background-image background-image:url(图片路径); 背景重复方式&#xff1a; background-repeat 属性&#xff1a; repeat&#…

Spring Web MVC入门(2)(请求2)

目录 1.传递JSON数据 传递JSON对象 2.获取URL中的参数PathVariable 3.上传文件RequestPart 4.获取Cookie/Session (1)获取Cookie 简洁获取Cookie (2)获取Session Sesson读取 简洁获取Session(1) 简洁获取Session(2) 5.获取Header 简洁获取Header 1.传递JSON数据 J…

详解MySQL中的递归查询

MySQL中的递归查询主要通过WITH RECURSIVE语句来实现&#xff0c;这在处理具有层级关系或树形结构的数据时非常有用。下面将通过一个具体的例子来详细解释如何在MySQL中使用递归查询。 示例场景 假设我们有一个部门表&#xff08;departments&#xff09;&#xff0c;其中包含…

【docker 部署springboot项目】

一、docker安装 1.检查Linux内核版本高于3.10才可安装 uname -r 2. 卸载旧版本 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 3. 使用docker仓库进行安装 安装所需的软…

C1W3.Assignment: Hello Vectors

理论课&#xff1a;C1W3.Vector Space Models 文章目录 Importing the data生成word_embeddings_subset&#xff08;optional&#xff09;Predict relationships among wordsCosine SimilarityEuclidean distance Finding the country of each capitalModel AccuracyPlotting …

性能测试学习-woniusales

1、性能测试分类&#xff1a;服务器&#xff0c;客户端 服务器端&#xff1a; 代码级多线程协议级多线程 客户端&#xff1a;JavaScript, Android ,PC客户端 性能测试容易出现瓶颈的点&#xff1a;带宽&#xff0c;代码优化&#xff08;例&#xff0c;等差&#xff0c;等比…

hbase命令行操作

1.进入命令行 hbase shell 2.基础命令 查看帮助信息help --查看版本信息--version --查看hbase集群状态--status --查看当前用户--whoami 3.命名空间命令 -查看所有命名空间--list_namespace --查询指定命名空间的表 --list_namespace_tables 命名空间名 --创建命名空间 --cre…

字节抖音电商 后端开发岗位 一面

笔者整理答案&#xff0c;以供参考 自我介绍 项目&#xff08;20分钟&#xff09; RocketMQ延时消息的底层实现 回答&#xff1a; 延时消息的实现主要依赖于RocketMQ中的定时任务机制。消息被发送到Broker时&#xff0c;会先存储在一个特定的延时消息队列中。Broker会定时扫…

怎么选流量套餐最划算呢,这篇文章建议收藏!

据小编了解&#xff0c;现在大多数用户手上都不止一张SIM卡&#xff0c;大部分都是双卡&#xff0c;甚至三卡了&#xff0c;那么&#xff0c;这些卡槽你真的利用对了吗&#xff1f; 这篇文章就告诉大家&#xff0c;如何更好的利用这两个卡槽&#xff0c;让你即省钱&#xff0c…