电力建设工程最好的网站,广州海珠区房价2023年最新房价,关于高校网站建设论文的总结,设计在线中国本篇文章重点讲述存内计算相关工具链#xff0c;我们将从工具链定义出发#xff0c;依次讲述工具链研究背景及现有工具链、存内计算相关工具链发展现状、存内计算工具链未来展望等内容。
一.工具链研究背景及现有工具链
工具链#xff0c;英文名称toolchain#xff0c;通…本篇文章重点讲述存内计算相关工具链我们将从工具链定义出发依次讲述工具链研究背景及现有工具链、存内计算相关工具链发展现状、存内计算工具链未来展望等内容。
一.工具链研究背景及现有工具链
工具链英文名称toolchain通常是指在软件开发或硬件设计中使用的一系列工具和软件用于完成特定任务或流程。这些工具一般接连地使用从而完成一个个任务这也是“工具链”名称的由来。一般工具链的研发大致与通用应用程序生命周期一致分为五个阶段如下图1所示图中包括每个阶段对应的工具等[1]。 图 1 工具链研发模型 [1]
1EDA工具链[2]
EDA 是 Electronic Design Automation 的简称即电子设计自动化是指利用计算机辅助设计软件完成超大规模集成电路芯片的功能设计、综合、验证、物理设计等流程的设计方式。在集成电路应用的早期阶段集成电路集成度较低设计、布线等工作由设计人员手工完成。1970 年代中期开始随芯片集成度的提高设计人员开始尝试将整个设计工程自动化。
1980 年发表的论文《超大规模集成电路系统导论》提出通过编程语言来进行芯片设计是电子设计自动化发展的重要标志EDA 工具也在这个时期开始走向商业化。21 世纪以来EDA 工具快速发展并已贯穿集成电路设计、制造、封测的全部环节从而加速集成电路产业的技术革新。
EDA行业市场集成度较高如下图2所示全球 EDA 行业主要由楷登电子、新思科技和西门子EDA 垄断上述三家公司属于具有显著领先优势的第一梯队。国内起步较晚虽然发展迅速但最高只能做到第二梯队有很大发展空间。 图 2 全球EDA行业简要格局[2]
2人工智能编译工具链[3]
由于人工智能算法的不断突破其模型尺寸和算力需求飞速增长从而导致算法与芯片之间存在巨大的算力“鸿沟”。首先每个模型的算力利用率低甚至小于10%其次算子库没有统一的标准每个芯片的制作流程中都要耗费巨大的人力物力来维护庞大算子库。而人工智能编译器是发挥硬件算力的保障可以解决以上问题如下图3为人工智能编译器常用设计架构概述。 图 3 深度学习编译器常用设计架构概述[4]
人工智能编译器在早期只是一个从计算图数据流图到算子库的映射器。许多深度学习编程框架TensorFlow和PyTorch等将模型表示成计算图而计算图的执行通过调用第三方算子库完成。编译器将计算图映射到算子库是人工智能框架和算子库中间的桥梁。此后为了优化模型性能各框架都引入了计算图编译器进行计算图级优化。然而人工智能编译器的研究是我们的短板例如谷歌的XLA编译器可以将性能最高提升十倍以上而国产人工智能芯片的峰值算力高但实际代码的利用率低因此研究人工智能芯片的配套软件工具链刻不容缓。
人工智能编译工具链和存内计算芯片联系密切在存内计算芯片从设计到生产的全流程中工具链的设计是非常重要的环节其能够将深度学习框架中的不同模型作为输入根据硬件设计产生高效的输出代码实现深度学习模型到硬件设备的部署。然而当前神经网络模型在存内计算芯片上可移植性低部署成本高大大阻碍了存内计算技术在深度学习领域的大规模应用。因此面向存内计算芯片的人工智能编译工具链也是亟待研发的。
综上所述当前芯片设计、人工智能等工具链发展较为成熟但存内计算相关工具链还有很大的发展空间。目前存内计算相关工具链还存在着缺乏成熟的标准单元库与快速组装工具、缺乏成熟的功能与性能仿真验证工具、缺乏建模和误差评估工具等问题都等待着从业人员去攻克解决。 二.存内计算相关工具链发展现状
存内计算工具链可以认为是辅助开发人员将软件设计部署到存内计算硬件上的工具。存内计算从原理上对神经网络中常见的乘累加运算具有良好的支持使得存内计算在人工智能领域具有巨大潜力。因此存内计算工具链可以在狭义上认为是将神经网络部署到存内计算芯片中使其在片上运行的工具。
为了更方便地使用神经网络模型许多通用神经网络框架已经被提出如TensorFlow、PyTorch、Caffe、MXNet、CNTK等它们提供了一系列打包好的网络层等工具方便用户编写自己的神经网络模型。神经网络模型在硬件上的运行依赖于神经网络编译工具链如TVM、MLIR、nGraph、XLA等。[5]然而存内计算作为一种新型计算范式将存储单元和计算单元融合其存储和计算特性不同于传统硬件使得现有神经网络工具链并不适用于存内计算。[6]
学术研究中由于研究的重点往往是存内计算硬件设计并且工具链需要对软件算法模型、编译工具、电路等多个相关的特定领域知识有着深入理解受限于高校的科研资源该部分的研究往往作为存内计算硬件研究的附属工作实际使用中神经网络的部署工作大多由研究者手动完成。同时当前国内神经网络工具链存在峰值算力高但是实际代码利用率低的问题。[7]
部分科研人员针对存内计算编译器相关问题开展研究并已经取得了一定的研究成果。例如PUMA是一种基于忆阻器的机器学习推理加速器它支持ISA指令集并且具有转换将高级语言为ISA代码的编译器编译器对计算图进行分区并优化指令调度和寄存器分配以便为在数千个空间内核上运行的大型复杂工作负载生成代码。[8]但是该编译器采用的启发式权重复制和核心映射方法heuristic weight replicating and core mapping method难以保证高性能此外PUMA的层间流水线是以推理为粒度的即不同层处理不同的推理数据这种处理方式在低延迟场景下对性能同样产生较大影响。[6]
然而工具链是连接开发者与硬件的桥梁是吸引开发者丰富硬件平台算法环境的重要一环是企业节省开发成本的重要手段。因此在商业领域中工具链的作用不容忽视如国内存内计算企业知存科技和后摩智能已经提出了适配自身硬件的工具链。
根据后摩智能官网信息后摩大道™软件平台是服务后摩鸿途™H30芯片硬件的自研软件开发平台主要由模型开发SDK、算子开发SDK、系统及中间件等组件构成可以兼容不同硬件平台的底层异构计算框架易于跨平台迁移自带预编译参考模型方便用户直接使用使用适配存算一体架构的并行数据开发语言同时支持C/C编程推理引擎支持自动融合流水、自动内存分配等编译优化技术。[9] 图 4 后摩智能存算一体开发平台介绍[9]
根据知存科技官网信息WITIN_MAPPER是知存科技自研的用于神经网络映射的编译软件栈可以将量化后的神经网络模型映射到WTM2101 MPU加速器上是一种包括RISC-V和MPU的完整解决方案可以完成算子和图级别的转换和优化将预训练权重编排到存算阵列中极大地缩短模型移植的开发周期并提高算法开发的效率[10]。工具链配备五种可选的优化策略参数放大、权重复制、高比特稀疏、多点卷积优化、正负PN优化实际应用中用户可根据权重大小、输入数据类型、精度要求、速度要求等多方面自行选择一般来讲权重复制正负PN优化多点卷积优化就可以满足大部分要求。[11] 图 5 WTM2101软件栈-witin_mapper[10]
同时知存科技提供WITMEM STUDIO集成开发环境、SPI Moniter工具、开发板等开发工具。其中集成开发环境包含客户识别的SDK推送功能SDK包自动更新下载安装功能内核自动识别语法高亮编辑器面向不同功能的个性化工程创建功能以及常规IDE所具有的项目工程管理文件编辑、编译、调试等功能。[10] 图 6 WTMDK2101-ZT1开发板[10]
以上知存科技相关资料来自于知存科技打造的“存内计算芯片开发者中心”开发者社区 知存科技 全球领先的存内计算芯片企业http://www.witintech.com/其中有知存科技打造的一套完整的芯片开发工具和IDE环境在此中心中知存科技将持续分享和更新针对存内计算芯片的软件、编译工具链、算法资源、开发教程等等为工程师、研究人员和技术爱好者提供工具和灵感。
三.存内计算工具链未来展望
在上文中我们介绍了当前存内计算工具链遇到的困难、存内计算工具链发展现状等等对于未来存内计算工具链的发展我们有如下几点展望。
由于存内计算芯片的设计与常规芯片有较大差异我们需要适配于存内计算芯片设计的相关EDA软件他们需要包含以下必需工具
1.标准单元库与快速组装工具。由于存内计算芯片设计的单元结构不唯一采用不同存储介质的存内芯片核设计起来缺少标准单元库且较大的存算阵列也缺少快速组装工具目前这两点往往是靠设计者手动绘制完成效率较低。
2.功能验证与仿真验证工具。当前EDA软件没有面向存内计算场景进行优化的功能仿真验证工具仿真时大规模的存算阵列会增加仿真难度与时间。
3.建模与误差评估工具。当前软件缺少面向存内计算芯片的电路噪声建模与误差评估工具这些可以帮助开发者在设计阶段对方案进行评估并及时调整。[12]
此外由于存内计算在人工智能、深度学习层面运用广泛设计面向存算一体芯片的深度学习编译工具链也是未来存内计算工具链发展的重要一环针对人工智能与深度学习我们希望工具链能达成
1由于深度学习算法与存算一体电路间可移植性低部署成本高我们需要设计一套工具链实现前端网络模型转换及优化的策略、后端硬件映射及优化的方法从而构建一套高性能的存算一体软硬件结合系统。 图 7 神经网络模型部署至WTM2101的一套编译工具链[13]
2由于存内计算芯片中有众多存算核未来若要在存内计算芯片上部署大模型那么多核之间的资源调度便十分重要权重在核中怎么存、计算资源如何调度、多核之间如何协同等等问题都需要我们设计出一套工具链来解决。
总而言之为推动存内计算规模应用相关EDA软件、配套的开发环境、编译平台的建立将成为存内计算芯片设计中的必然诉求它们需要业界共同发力共同搭建面向存内计算的编程框架健全仿真和编译工具完善算法设计与开发生态。相信在不久的将来存内计算芯片相关工具链将迎来井喷式发展让我们一同分享、一同创造一起见证存内计算芯片的生态繁荣时代。 参考资料
[1]持续交付工具前景 ·詹姆斯·鲍曼 (jamesbowman.me).
[2]北京华大九天科技股份有限公司招股说明书.
[3]第二十届全国容错计算学术会议-过敏意-面向人工智能芯片的编译新技术.
[4] Li M, Liu Y, Liu X, et al. The deep learning compiler: A comprehensive survey[J]. IEEE Transactions on Parallel and Distributed Systems, 2020, 32(3): 708-727.
[5] Li M, Liu Y, Liu X, et al. The deep learning compiler: A comprehensive survey[J]. IEEE Transactions on Parallel and Distributed Systems, 2020, 32(3): 708-727.
[6] Sun X, Wang X, Li W, et al. PIMCOMP: A Universal Compilation Framework for Crossbar-based PIM DNN Accelerators[C]//2023 60th ACM/IEEE Design Automation Conference (DAC). IEEE, 2023: 1-6.
[7] 第二十届全国容错计算学术会议-过敏意教授报告-面向人工智能芯片的编译新技术
[8] Ankit A, Hajj I E, Chalamalasetti S R, et al. PUMA: A programmable ultra-efficient memristor-based accelerator for machine learning inference[C]//Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. 2019: 715-731.
[9] 后摩智能官网houmoai.com
[10] 知存科技开发文档开发者社区 知存科技 全球领先的存内计算芯片企业http://www.witintech.com/
[11] Bai T, Mao W, Wang G, et al. An End-to-End In Memory Computing System Based On A 40nm eFlash-Based IMC SoC: Circuits, Toolchains, and Systems Co-Design Framework[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2024.
[12] 详细解读存算一体技术路线 - 电子发烧友elecfans.com
[13] 存内计算芯片开发者中心 - 开发者社区 知存科技 全球领先的存内计算芯片企业http://www.witintech.com/