寒武纪端云一体人工智能开发平台整体架构吴建明wujianming

寒武纪端云一体人工智能开发平台整体架构

1.引言

当前人工智能(ArtificialIntelligence)技术发展迅猛,在机器视觉、语音识别以及自然语言处理等多个技术领域取得了卓越的进展,带来了更高的精确度和泛化能力,因此越来越广泛地应用于众多行业领域,形成了智慧制造、智慧金融、智慧交通、智慧教育和智慧零售等诸多“人工智能+”的行业应用。可以预见,随着人工智能理论和技术的日益成熟,将为越来越多的行业带来更加广泛的应用和更深远的变革。

然而,随着深度学习算法模型的规模越来越大、种类越来越多,人工智能技术的应用也面临一些问题。首先是深度学习的算法模型对算力的需求猛增,从2012年的AlexNet到2017年的AlphaGoZero,对算力需求的增长超过30万倍,其对计算资源的大规模需求导致计算硬件的购买和运行成本不断攀升,在一定程度上制约了人工智能的应用落地。另一方面,深度学习中没有一劳永逸的算法模型,往往要根据实际应用场景和数据定制开发,因此需要选取适用性广并且运行性能高的开发平台。

寒武纪作为全球人工智能芯片领域的先行者,自2016年至今,陆续推出了1A、1H8/1H16、1M等人工智能IP产品,以及面向云端深度学习计算任务的智能处理卡思元100(MLU100)和思元270(MLU270)。为了方便开发者在寒武纪硬件平台上开发和部署,寒武纪推出了端云一体人工智能开发平台(CambriconNeuware),能够满足云端和终端的深度学习应用场景针对软件开发平台和高性能计算硬件的需求。同时,CambriconNeuware针对深度学习应用的开发和部署提供了一套完善而高效的软件栈工具,集成了多种开源的深度学习编程框架,并且提供了基于高性能编程库和编程语言等高效灵活的开发模式,以及一系列调试和调优工具。基于寒武纪智能处理器打造的终端处理器IP产品和云端智能处理卡产品,相比传统芯片可达数量级的性能领先、成本缩减和功耗降低,并且基于CambriconNeuware率先提出“端云一体”的智能处理思路,使其终端和云端产品可共享同样的软件开发接口和完备生态。

更多产品信息请参见寒武纪官网www.cambricon.com和寒武纪开发者论坛forum.cambricon.com。

2.人工智能的关键技术

在人工智能技术的发展中,机器学习是其中至关重要的途径,而近几年得以快速发展的深度学习是机器学习的一个子集,也是推动人工智能爆发的核心因素。而深度神经网络作为深度学习的算法模型,已经在许多应用领域中获得了远远超过传统机器学习方法的精度,并且随着计算硬件算力的不断提升以及大数据的加持,针对深度神经网络的训练和推理任务获得了更高的精度和效率。

2.1深度学习中的训练和推理

深度学习的训练(Training)是指针对现有数据进行学习训练,将数据输入深度神经网络模型中运算,并且通过多次迭代运算不断调整和优化网络模型参数的过程。训练过程的特点是需要的训练数据量大且运算过程复杂,导致运算耗时长,并且模型优劣和训练数据的规模直接影响到后续推理结果的准确性。因此一个复杂模型的训练任务对计算硬件的算力需求非常大。

推理(Inference)是指将新的待处理数据输入训练好的,即完成模型参数优化和调整的深度神经网络模型中,通过该模型计算并输出结果,从而获得深度学习针对未知数据进行自主推断的结果。推理在实际的应用和部署过程中需要计算硬件做到高性能、高精度、低延迟和低功耗。

2.2深度学习应用的开发

针对深度学习应用的开发,大体可以分为三类方法:

方法一是不借助任何深度学习编程库,直接使用编程语言进行开发并在CPU上运行。其优势是编程灵活,能够实现任意结构的神经网络模型。缺点是编程繁琐低效,实际运行过程中由于没有计算硬件加速导致运行效率低。

方法二是利用深度学习算法加速的各类计算硬件所配套的专用SDK(SoftwareDevelopmentKit)进行开发,优势是算法模型的执行能够得到高于CPU性能的计算硬件的加速,缺点是开发出的深度学习应用通用性差,仅能运行于某一种计算硬件之上,并且其运算效率依赖于该计算硬件的算力。

方法三是利用开源的深度学习编程框架进行开发,例如Caffe、TensorFlow、MXNet、PyTorch等。优势是为开发者提供了更加简单且通用的编程方法,同时也可利用各类计算硬件对算法模型进行加速。缺点是不同的计算硬件对编程框架支持的完善度和性能有较大差别,并且执行效率同样依赖于该计算硬件的算力。

2.3寒武纪端云一体人工智能开发平台

寒武纪研发的端云一体人工智能开发平台CambriconNeuwareTM能够很好地处理上述深度学习的推理以及应用开发过程中所面临的关键问题,未来还将支持训练任务。

Neuware支持全系列寒武纪智能处理器产品,基于Neuware开发出的应用可完美运行于寒武纪云端智能处理卡思元100(MLU100)和思元270(MLU270)之上,以及搭载了寒武纪智能处理器IP的终端设备之上,可充分利用其深度学习加速功能提升深度神经网络模型的推理性能,未来还将支持训练任务。同时,寒武纪智能处理器相比传统芯片可达数量级的性能领先、成本缩减和功耗降低,并且率先提出“端云一体”的智能处理思路,使其终端和云端产品可共享同样的软件开发接口和完备生态。

针对深度学习应用开发过程中所面临的关键问题,Neuware不仅支持多种主流的深度学习编程框架,使得应用的开发更加简洁且通用,还提供了高性能编程库,带来更高的程序执行效率。同时,Neuware提供了专门针对寒武纪智能处理器应用开发的编程语言--Bang语言,开发者能够使用Bang语言进行灵活高效的应用开发,充分利用寒武纪智能处理器产品上的计算和存储资源,在编程灵活的同时确保了推理的高性能。

Neuware适用于图像和视频处理、语音识别和机器翻译等人工智能算法领域,目前已协同各类寒武纪智能处理器产品应用于智能终端、智慧交通、智能教育、智能制造等场景。

3.关于CambriconNeuware

寒武纪端云一体人工智能开发平台CambriconNeuware是寒武纪专门针对其云端和终端的智能处理器产品打造的软件开发平台,其中包括了多种深度学习/机器学习编程库,以及编程语言、编译器、程序调试/调优工具、驱动工具和视频编解码工具等,形成了完善的软件栈,为人工智能应用特别是深度学习推理应用的开发和部署提供了便利。在云端,开发者可以简单高效地实现深度学习乃至机器学习应用的开发和调试;在终端,可以借助云端丰富的硬件资源和强大的功能进行开发和调试,仅在部署阶段将开发完成的离线文件部署到终端上,解决了终端上开发调试困难的问题。同时,由于同是基于Cambricon指令集,因此云端和终端的应用程序可以做到无缝的相互切换。

3.1Neuware的软件栈架构

Neuware集成了多种编程库和工具,其软件架构如下图所示:

图3.1Neuware的软件栈架构

Neuware软件架构从上往下分别为深度学习应用、主流的深度学习框架、寒武纪机器学习编程库CNML(CambriconNeuwareMachineLearningLibrary)、寒武纪Bang编程语言、寒武纪运行时库CNRT(CambriconNeuwareRuntimeLibrary)、系统工具层以及驱动层。此外还包括针对多媒体智能处理的SDK。

·Neuware集成的开源深度学习编程框架包括TensorFlow、Caffe、MXNet、PyTorch、AndroidNN,其中AndroidNN仅支持寒武纪处理器IP核。这些框架的API与官方开源框架一致,内部实现则加入了针对寒武纪智能处理器产品的定制。

·寒武纪机器学习编程库CNML提供了机器学习,主要是深度学习应用的开发所需基础算子,开发者可以便捷地调用这些算子灵活地构造各类深度神经网络模型以及其他机器学习领域的算法,而无须关心寒武纪智能处理器产品的内部硬件资源如何调度。

·寒武纪运行时库CNRT提供了一套针对寒武纪智能处理器产品的上层编程接口,用于与寒武纪智能处理器产品的硬件之间进行交互和调度硬件资源。用户既可以调用CNRT协同CNML一起开发深度学习应用,也可以直接基于CNRT来高效地运行Neuware构建的神经网络离线模型。

·Neuware的编译器部分包括了面向寒武纪产品的Bang语言和汇编语言编译,针对寒武纪产品设计的高级汇编语言做了多种优化,输出能够运行于寒武纪各类硬件产品上的可执行二进制文件。

·Neuware软件栈中的调试工具CNGDB是Linux系统上调试Bang语言的工具,它是基于GNU的调试器GDB开发的。使用CNGDB可以在真实的硬件上同时调试寒武纪处理器产品的设备侧和主机侧的代码。

·Neuware软件栈中的性能优化工具CNPerf(CambriconNeuwarePerformance)可针对寒武纪智能处理器产品进行性能剖析。

·Neuware软件栈中的系统工具CNMon(CambriconNeuwareMonitor)能够采集寒武纪智能处理器产品的底层硬件信息,并实时获取上层软件对硬件资源调度状态等。

·Neuware软件栈中还提供了丰富的多媒体开发套件,包括CNStream、Gstreamer等视频智能处理的SDK和CNCodec图片、视频的编解码SDK。

3.2Neuware的主要特性

Neuware除了提供上述各项功能以外,还包括以下的主要特性:

·提供了灵活便捷且高效的编程方法,包括开源深度学习编程框架、高性能编程库CNML和CNRT、Bang语言,以及多媒体智能开发套件。

·开发出的应用程序可同时运行于寒武纪云端和终端的智能处理器产品中,并解决了终端产品上不便于开发、调试和调优的问题

·支持多种低精度量化方法和离线模型的转换,可以在提升运行效率的同时降低端到端的时延。

·提供了混合精度的数据类型支持:思元100(MLU100)系列智能处理卡和1H系列处理器IP支持INT8和FP16数据类型;思元270(MLU270)系列智能处理卡和1M系列处理器IP支持FP32、FP16、INT16、INT8、INT4的数据类型。

4.使用CambriconNeuware开发高效的深度学习推理应用

在开发深度学习推理应用的过程中,Neuware提供了三类开发手段,分别满足开发者对开发效率(Productivity)、运行性能(Performance)和编程灵活性(Programmability)的偏好需求,并且这三种开发方法可通过多种性能优化策略提高推理性能。此外Neuware还提供了程序调试、性能调优等工具。

4.1Productivity:基于深度学习框架开发

对于基于主流的开源深度学习编程框架开发的开发者来说,在迁移到Neuware上继续开发时,最便捷高效的方法是使用Neuware支持的同样的框架进行开发和部署。Neuware支持的框架包括Caffe、TensorFlow、MXNet、PyTorch、AndroidNN。

Neuware支持的上述框架,其API与官方开源框架一致,并且扩展了对寒武纪智能处理器产品的支持,包括对产品硬件资源调度、新增算子以及优化机制的支持。同时还支持原生深度学习框架的Python和C/C++编程接以及原络模型文件。

4.2Performance:基于高性能编程库开发

对于希望进一步提升深度学习应用的推理性能的开发者来说,可以使用Neuware提供的CNML和CNRT高性能编程库进行开发。

CNML是针对机器学习与深度学习的编程库,充分结合了寒武纪智能处理器产品的硬件特性,提供更高效、通用、灵活的编程接口用以加速人工智能算法,开发者可通过CNML提供的算子构造自定义的网络算子。CNML包含了如正反卷积、池化、全连接等常用的卷积神经网络算子和LSTM、GRU等循环神经网络算子,以及矩阵、向量、标量运算等算子。此外,CNML还支持算子的拼接和增减。目前CNML已提供上百种基本算子及其组合算子,并在持续增加。此外,CNML还具备以下关键特性:

§支持对训练好的模型进行离线优化,生成离线模型。

§支持云端编译,模拟终端运行环境,两端指令一致,做到端云一体。

CNRT提供了一套直接面向寒武纪智能处理器产品的硬件设备接口,提供运行时系统存储、任务和设备管理。CNRT具备以下关键特性:

§支持寒武纪智能处理器产品的硬件设备及多卡管理。

§提供设备内存管理接口。

§支持任务队列和同步机制。

§支持加载离线模型。

§支持寒武纪编译器CNCC(CambriconNeuwareC/C++Compiler)和寒武纪汇编器CNAS(CambriconNeuwareAssembler)生成的二进制文件的执行。

4.3Programmability:基于Bang语言开发

§提供统一高效的编程接口,充分发挥寒武纪产品的硬件特性。

§提供异构编程模型,方便用户扩展自己的应用程序。

§提供多核并行编程模型。

§能够以插件(Plugin)的形式与CNML进行交互,实现多种开发手段混合编程。

4.4多种性能优化策略提升推理性能

为了提升模型在寒武纪智能处理器产品上运行时的推理性能,Neuware提供了多种性能优化策略。

策略一是在线融合模式。用户直接调用CNML或者通过深度学习框架调用CNML构建网络后进行编译,再调用CNRT运行,该运行方式称为在线模式。而在线融合模式是基于在线运行模式下的算子(即网络层)优化策略,可将多个算的指令融合,减少模型推理过程中智能处理器的内存访问次数,减少智能处理器内核启动次数,从而降低启动开销。在融合模式中,被融合的多个算子作为整体的运算在智能处理器上运行,从而在降低时延的同时减少了对I/O带宽的占用。

策略二是离线模型模式。开发者所构建的神经网络模型在通过Neuware完成编译后可保存为离线件,即寒武纪离线模型。而后在寒武纪智能处理器产品上运行该模型时即可直接调用CNRT加载对应的离线件进行部署,该方式称为离线运行模式。离线模式包括在线编译和离线执两个阶段:在线编译是成与模型结构对应的寒武纪指令,对模型权值进行精度转换以及数据布局(DataLayout)优化,将指令和权值保存到文件;离线执行是加载在线编译成的件,实现模型推理,因此离线执模式可以避免编译和权值转换开销。

策略三是低精度量化方法。在低精度量化方法中,例如INT8定点量化FP16或FP32的数据,将浮点数量化成INT8后,神经网络的精度变化在可接受的误差范围之内,但是这些数据所占用的存储空间却可以大大降低,进而带宽占用也随之显著减少,从而能够加快神经网络的推理速度。寒武纪INT8神经网络模型以有符号8位整型数据保存,模型提供INT8定点数的指数和缩放因,并且可以提供适用于各种模型的多种量化模式。Neuware支持的开源深度学习框架已经为VGG、ResNet、GoogLeNet等常见神经网络模型提供量化或重训练完成的8位定点数络模型。同时,Neuware提供了把原生框架下的浮点模型转换为INT8模型的工具,如果INT8量化后产生的精度偏差,Neuware提供了进行重训练的工具。此外,INT8量化方法确保了INT8量化后的模型适合在内存和带宽资源较差的寒武纪终端产品上运行。

4.5使用程序调试和性能调优工具

Neuware还为深度学习应用程序的调试和性能调优提供了相应的软件工具。其中,CNGDB(CambriconNeuwareGDB)是Linux系统上调试Bang语言程序的工具,它是基于GNU的调试器GDB开发的。使用CNGDB可以在真实的硬件上同时调试寒武纪硬件产品的设备侧和主机侧的代码。CNGDB面向Bang语言开发者提供控制程序执行、访问变量等多种操作,解决了开发者难以调试的问题。

CNGDB的主要特性如下:

§支持GNUGDB在CPU上原有的全部操作。

§支持硬件设备上GDB的大部分操作,包括断点、单步、访问修改变量等。

§支持灵活的多核调试模式。

§支持思元270(MLU270)及以上硬件的调试。

§CPU/Device的调试切换过程对用户透明,对用户来说其过程类似CPU函数调用。

§支持生成CNML内核的错误信息。

Neuware中的性能调优工具CNPerf(CambriconNeuwarePerformance)是一款针对寒武纪智能处理卡的性能剖析工具。CNPerf通过跟踪程序执行流程,获取硬件性能计数器,可用于程序性能瓶颈查找和热点函数定位。CNPerf内部函数主要是基于CNPAPI(CambriconNeuwareProfilingAPI)实现,其提供了性能剖析所必备的软件接口,用户可精确观察到寒武纪智能处理卡内部的CPU以及智能处理器的行为。

CNPerf具备如下关键特性:

§获得函数调用栈信息。

§获取CNML库中部分OpForward系列函数的计算效率以及DDR访存带宽。

§除命令行外,还提供了用户友好的图形化分析界面。

4.6使用系统工具实时查看推理平台的硬件状态

§测试流程测试方法操作简单,自动化程度高,实用性较强。

§可以通过配置文件选择测试卡以及测试项。

§测试信息可同时支持终端显示和文件保存。

§丰富的测试项有助于定位板卡在当前系统中的硬件性能瓶颈。

CNMon(CambriconNeuwareMonitor)是一款能够实时采集寒武纪智能处理卡的硬件信息并且实时获取上层软件对硬件资源调度状态等的一款工具。CNMon通过CNDev(CambriconNeuwareDeviceInterface)获取底层硬件信息,为开发者实时显示当前底层硬件的详细信息和状态。同时,开发者还可以通过CNDev实现定制化的需求,例如云服务平台或自动化测试平台的设备管理。

CNMon的主要特性如下:

§查看寒武纪智能处理卡的设备工作状态,如健康状态、处理器核利用率、智能处理卡上DDR内存的占用等信息。

§查看设备的拓扑逻辑关系和CPU亲和性等信息。

§设置设备工作模式如主频、带宽、TDP(ThermalDesignPower)上限等。

§在虚拟化环境下提供额外的虚拟机信息查看功能。

5.基于寒武纪人工智能处理器的计算架构

在使用寒武纪人工智能处理器产品部署深度学习推理应用的过程中,CambriconNeuwareTM主要功能是加载训练好的神经网络模型和权值参数并将其解析生成包含了寒武纪指令集和模型参数的寒武纪模型数据,将其传输至寒武纪智能处理器产品的DRAM(DynamicRandomAccessMemory)存储中,然后继续通过Neuware输入待处理的应用数据并读取运算结果数据。

5.1推理计算流程

CambriconNeuwareTM在深度学习推理应用中的开发和部署流程如下图所示:

图5.1使用Neuware进行推理的应用开发和部署流程

在基于深度学习编程框架进行开发的过程中,开发者可利用Neuware支持的框架所提供的编程接口加载训练好的神经网络模型文件,包括神经网络和权值参数文件。同时还能直接使用该框架创建神经网络结构或修改已加载的神经网络。随后编程框架会调用CNML库,将加载的模型文件解析并生成寒武纪指令文件以及转换后的权值参数文件,即寒武纪模型数据。在解析模型的过程中,用户可以使用融合模式以提升后续的模型运行效率,也可以使用Bang语言编写网络算子并通过Plugin(插件)方式将其整合到CNML的操作数(Operator)中,并生成整合后的寒武纪指令文件。

在应用部署的过程中,上述CNML生成的寒武纪模型数据文件通过CNRT库经驱动程序传输至寒武纪智能处理器产品上的DRAM中。该过程称为在线部署,即每次部署寒武纪模型前均需要经过CNML解析和编译并生成模型数据文件。而在离线部署的情况下,开发者可调用CNML接口直接将上述寒武纪模型数据文件保存为离线模型文件,随后在每次部署时仅需调用该离线文件即可,省去了编译和解析过程。该离线部署方式同时也是使用寒武纪终端产品部署深度学习应用的主要方法,即在终端产品上加载生成好的离线模型即可。

5.2利用多核和多卡进行并行的推理计算

为有效提升深度学习应用的运行效率,寒武纪智能处理器产品在部署深度学习应用时使用多核并行计算和多通道DRAM访存模式,同时在云端部署中还可以支持多机(多台服务器)、多卡运行,即同时使用多块寒武纪智能处理卡协同完成深度学习推理任务。下图以寒武纪MLU100智能处理器架构为例介绍芯片上的推理计算流程:

图5.2MLU100智能处理器架构

Neuware生成的寒武纪模型数据和待处理的应用输入数据都加载到智能处理卡的DRAM中以后,启动卡上的智能处理器,其内部的众多处理器核就能够并行执行该神经网络模型。以MLU100智能处理器为例,其内部共有32个处理器核,相互之间通过片上网络(NoC,NetworkonChip)模块互连,这32个处理器核能够访问相同的数据在DRAM上的地址范围,协同工作进行神经网络的推理计算。

寒武纪智能处理器产品除了多核并行计算的功能之外,其云端智能处理卡还支持多机多卡运行。即多个服务器上的多块寒武纪智能处理卡可协同完成并行推理计算的任务。Neuware会根据开发者指定的硬件资源,利用其中的CNCL(CambriconNeuwareCommunicationLibrary)库将深度学习应用中的待处理数据分布在多块卡上的处理器上并行处理。其中,CNCL是面向寒武纪智能处理卡设计的高性能通信库,帮助开发者优化了基于智能处理卡进行多机多卡的集合通信操作。CNCL支持多种针对寒武纪智能芯片的互联技术,包括PCIe、Serdes、InfinibandVerbs以及IPsockets。同时,CNCL能够根据芯片的互联拓扑关系,自动的选择最优的通信算法和数据传输路径,从而最小化使用系统和硬件资源、最大化利用传输带宽完成不同的通信操作。

5.3寒武纪人工智能处理器架构的主要特性

除上述功能外,寒武纪智能处理器架构还拥有以下主要特性:

·通用性好。支持各类深度学习技术,支持多模态智能处理(视觉、语音和自然语言处理)。

·高能效。相比GPU处理器,采用了针对深度学习和人工智能应用特点定制的指令集和处理器架构,具有更优的能效比。

·可以以极小的芯片面积,提供高性能低功耗的深度学习解决方案。

·针对DRAM访存数据,增加了数据压缩/解压功能,大幅节省内存容量和访存带宽

·包含多级缓存和共享存储结构,可充分利用处理器内部存储进行性能优化

·MLU270处理器和1M处理器IP均支持混合精度的数据类型,包括FP32、FP16、INT16、INT8、INT4。

6.丰富的多媒体开发套件

人工智能技术在计算机视觉(ComputerVision)的应用中,除了基本的智能处理以外,往往需要对多媒体数据流进行预处理和后处理,比如针对智能摄像头采集的视频或图片数据流进行编解码,而这些编解码功能对实时性和吞吐率的需求是非常高的,尤其是当人工智能计算硬件在同时处理多路高清视频流时,其编解码所需的硬件算力往往会制约计算硬件整体的性能,从而导致计算硬件所能处理的高清视频路数较低或实时性能差等情况。针对这个问题,寒武纪在思元100和思元270系列智能处理卡中增加了视频和图片编解码的硬件模块,不再需要服务器CPU参与编解码运算。该硬件模块可以和智能处理卡上搭载的寒武纪智能处理器芯片协同工作,确保编解码过程不会阻塞智能处理器的推理过程,从而进一步提升了智能处理卡的整体性能,确保了多媒体数据流智能处理的实时性和吞吐率。

Neuware针对寒武纪智能处理卡上的编解码硬件模块提供了一套视频和图片的编解码SDK,便于开发者在应用中调用接口以开发适合自己产品应用场景的功能。同时,针对计算机视觉领域应用中常用到的视频和图片的结构化智能分析,Neuware也提供了一套SDK,提供了主流的智能处理方法并针对寒武纪智能处理卡进行了性能优化。

6.1视频和图片编解码SDK

CNCodec是基于寒武纪智能处理卡开发的一套视频和图片编解码SDK,封装了视频和JPEG图片的编解码接口,在兼顾灵活性的同时,可以充分发挥硬件编解码性能。CNCodec提供了一套C语言的API,支持多路并发的视频和图片的解码、编码以及缩放等常见后处理。

其主要特性如下:

·解码输出像素格式持:YUV420SP-NV21、BGR24、RGB24、YUV422。

·编码输像素格式持:YUV420SP-NV21、BGR24、RGB24、YUV422。

·支持多路并发编解码通道。其中,思元270最高可支持64路编解码通道;思元100最高可支持32路编解码通道。

·最高支持4096*2160输入分辨率。

·解码数据格式支持:MPEG4、H.264、H.265、JPEG、VP8。

·编码数据格式支持:H.264、H.265、JPEG。

6.2视频和图片智能分析SDK

针对视频和图片智能分析,Neuware提供了两套SDK:CNStream和开源多媒体编程框架Gstreamer。其中,CNStream是针对寒武纪智能处理卡上快速部署和二次开发SDK,借助思元系列板卡的硬件特性,CNStream可以帮助开发人员快速构建高效、高性能、多场景的可扩展的AI应用程序。CNStream基于模块化和流水线的思想,提供了一套基于C++语言的API,适用于视频结构化、姿态检测、图像分割等常见应用领域。适用于图像视频处理的多个应用领域,能帮助客户快速部署和落地应用需求。

针对视频分析领域,CNStream提供了3个通用功能模块:视频解码模块、神经网络推理模块和颜色域转换模块。其中,视频解码模块可以对多种格式的视频压缩格式进行解码;神经网络推理模块可以使用多种神经网络离线模型对解码得到的图像数据进行神经网络推理。CNStream的插件式设计,给用户提供了视频流解码和推理之后对数据进一步加工处理的办法。

·支持高并发的多级流水线。

·支持异构并发神经网络推理。

·灵活可变的插件机制。

·极低的二次开发成本和部署成本。

·内置大量可以直接使用的硬解码,前处理,后处理,显示,OSD等插件。

·支持EdgetoCloud。

·支持运行时在线模型转离线模型。

此外,Neuware还支持开源的多媒体编程框架Gstreamer,提供了和原始框架一样的API,并通过寒武纪智能处理卡加速其内部的运算过程,它和CNStream一样可以帮助开发人员快速构建高效、高性能、多场景的可扩展的人工智能应用程序。和CNStream相比,Gstreamer可以使用大量已经开源的插件,适合已经在Gstreamer框架基础上进行业务开发的客户以极低的成本快速迁移到寒武纪推理平台。

此外,Neuware还提供了对OpenCV和FFmpeg的部分编程接口支持并利用寒武纪智能处理卡加速其内部运算过程,其编程接口的适配正在不断完善中。

7.在云端和终端部署深度学习推理应用

7.1云端部署

Neuware为客户在云端部署深度学习推理应用提供了便捷而高效的虚拟化技术和软件环境。

Kubernetes

Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源系统,支持横向缩放、自我修复、存储编排、服务发现和负载均衡等功能。DevicePlugins是Kubernetes提供的一种机制,用于第三方设备厂商通过插件化的方式将设备资源对接到Kubernetes,为容器提供额外计算资源。

Neuware遵循KubernetesDevicePlugin规范和机制实现,用于发现、上报、分配和监控寒武纪智能处理卡资源,实现寒武纪智能处理卡和Kubernetes对接,实现寒武纪智能处理卡容器虚拟化功能。

SR-IOV

为了进一步提高寒武纪智能处理卡在云端服务器上的利用率,降低用户成本,思元270及以上产品支持SR-IOV硬件虚拟化技术,SR-IOV技术允许在多个虚拟机之间高效共享PCIe设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的I/O性能。NeuwareSR-IOV主要特性如下:

·可获得近似原生的性能,

·可扩展性好,可配置支持1/2/4VFs

·支持热升级

·支持热迁移

·不同虚拟机之间可实现安全隔离性

7.2端云一体部署

寒武纪智能处理器终端产品和云端产品共享同样的软件接口和完备生态,可以方便地进行人工智能应用的开发、迁移和调优。Neuware软件栈的底层驱动,同时支持SoC和PCIe两种环境,其运行模式脱离了上层深度学习框架,跨越终端与云端的设备障碍,是端云一体开发和部署的基础。开发者可以借助云端丰富的计算资源进行算法模型的解析与调试,利用Neuware生成离线模型,并能够在任意搭载寒武纪智能终端IP的设备运行,解决了终端调试手段受硬件资源限制的问题。同时,由于该离线模式无编译过程,摆脱了对CNML与框架层的依赖,是终端部署的最佳选择。端云一体业务部署流程如下图所示:

图7.1端云一体开发和部署流程

8.CambriconNeuware总结

得益于近年来深度学习技术的迅速发展,人工智能技术如今已广泛应用于越来越多的行业领域,但随着深度学习算法模型规模和种类的迅速增长,其推理过程在实际的应用和部署过程中需要计算硬件做到高性能、高精度、低延迟和低功耗,同时深度学习应用开发对灵活性和硬件算力的需求也制约了其应用落地。

寒武纪端云一体人工智能开发平台CambriconNeuware能够很好地处理上述问题,Neuware支持全系列寒武纪智能处理器产品,包括智能处理卡和智能处理器IP产品,用户可充分利用其深度学习加速功能提升深度神经网络模型的推理性能。Neuware集成了多种主流的深度学习编程框架,使得应用的开发更加简洁且通用,减少客户迁移开发环境的成本;还提供了高性能编程库CNML和CNRT,进一步提升编程的可扩展性和推理程序的运行性能;此外还提供了Bang语言用于客户开发自定义或特殊的算法模型。

为了进一步提升该模型在寒武纪智能处理器产品上运行时的推理性能,Neuware提供了多种性能优化策略,包括在线融合模式、离线模型模式以及低精度量化方法。在提升运行效率的同时降低了推理的端到端时延和对I/O带宽的占用。

此外,Neuware针对寒武纪智能处理卡上的编解码硬件模块提供了一套视频和图片的编解码SDK,便于开发者在应用中调用接口以开发适合自己产品应用场景的功能。同时针对视频和图片的智能分析,Neuware提供了两套SDK:CNStream和Gstreamer,适用于有快速部署和简单应用落地需求的客户。

针对寒武纪智能处理器产品在云端部署,云端芯片产品支持容器及Kubernetes编排技术,以及在思元270及以上产品支持SR-IOV虚拟化技术,可实现硬件资源池化及按需分配;在终端,借助Neuware端云一体开发和部署,可借助云端丰富的计算资源进行算法模型的解析与调试,然后在终端产品上完成最终部署。

THE END
1.如何通过AI优化现有的机器视觉网络如何通过AI优化现有的机器视觉网络 引言 机器视觉网是一种集成了计算机视觉技术、物联网和人工智能的网络系统,能够实时捕捉并分析周围环境中的图像信息。随着技术的不断进步,这种系统在安全监控、工业自动化、医疗诊断等多个领域得到了广泛应用。 现有机器视觉网络的问题https://www.vjvqxysd.cn/ce-ping/524920.html
2.资源优化瘦身:全面升级网站性能攻略资源瘦身计划是提升网站性能的关键策略之一,通过精简代码和资源、优化网页加载速度、使用缓存技术、优化数据库性能以及持续监控和调优,可以全面提升网站性能,打造高效、稳定的在线平台。在实施资源瘦身计划时,需要综合考虑网站实际情况和需求,制定合适的优化方案,并持续关注和改进,确保网站性能不断优化和提升。https://www.0515zz.com/html/jianzhan/2024-12-17/303738.html
3.性能调优的未来:创新技术和趋势(性能调优的未来趋势)自动化是性能调优的另一个重要趋势。自动化工具可以帮助开发人员自动执行性能调优任务,例如性能测试和优化。随着自动化技术的不断发展,它们将变得更加强大和易于使用,使性能调优更加高效。 结论 性能调优领域正在不断创新,以满足不断增长的需求。机器学习和人工智能、容器化、微服务、无服务器计算、云监控和分析以及自动https://www.ulidc.com/2024/12/16/%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98%E7%9A%84%E6%9C%AA%E6%9D%A5%EF%BC%9A%E5%88%9B%E6%96%B0%E6%8A%80%E6%9C%AF%E5%92%8C%E8%B6%8B%E5%8A%BF-%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98%E7%9A%84%E6%9C%AA%E6%9D%A5/
4.流量无忧:高效网站资源优化策略与实战分享社交媒体已成为人们获取信息的重要渠道。将社交媒体与您的网站整合,可以让您的内容更容易被用户发现和分享。通过分享按钮、社交媒体链接等方式,您可以鼓励用户将您的内容分享到他们的社交媒体平台,从而扩大网站的曝光度和流量。 站长个人见解,实现流量无忧需要您从多个方面对网站资源进行优化。通过关注网站速度、内容、移动https://www.1asp.com.cn/html/jianzhan/2024-12-16/373301.html
5.拿捏!高效掌握离线数据,让数据资产快速释放价值赛博威数据上传平台,作为专业的离线数据上传工具,操作简便,功能强大,支持海量离线数据的高效上传、高效管理与高效验证。助力企业突破离线数据管理瓶颈,全面提升数据上传效率与管理能力。 ■高效数据上传:支持批量上传与自动化处理,显著提升操作效率,同时大幅降低时间和人力成本。 https://www.51cto.com/article/804444.html
6.大模型技术优化负载均衡:AI驱动的智能化运维在现代信息技术环境中,负载均衡是确保系统稳定、高效运行的关键技术。随着大模型技术(Large Model Technology, LMT)的发展,AI驱动的智能化负载均衡成为了优化系统性能、提升用户体验的重要手段。本文将详细介绍如何使用Python实现基于大模型技术的负载均衡,并通过具体https://cloud.tencent.com/developer/article/2480028
7.2024年度技术热词来袭,AI如何在可控生成和降本增效中寻找平衡算专题四:性能优化与资源统筹|ArchSummit 随着模型参数和用户数据量的快速增长,大模型在离线计算和在线推理中的资源需求日益紧张,同时耗时性能问题愈发凸显。本专题中,阿里国际 AI Business 智能计算负责人丁虎平、焱融科技 CTO & TGO 鲲鹏会学员张文涛、贝壳找房容器团队负责人王天庆分别分享了他们在模型性能优化与资源统https://www.163.com/dy/article/JJHJPE8T0511D3QS.html
8.时,为什么在线方法总是优于离线方法?离线优化和在线优化尽管这些假设听上去似乎是对的,但实验结果表明它们无法可信地解释在线和离线算法的性能差距。 他们通过消融研究发现,提升离线优化的一种有效方法是生成分布上接近起始 RLHF 策略(这里就刚好是 SFT 策略)的数据,这本质上就模仿了在线算法的起始阶段。 优化性质 https://blog.csdn.net/python1234_/article/details/139054370
9.SimsciRomeo4.3.1(化工流程在线优化软件):haocaxROMeo 是目前唯一同时支持在线优化与离线分析,在线与离线共用同一个模型和同一个人机界面的商品化过程优化软件。 ROMeo 具有友好易用的人机界面,并提供与各种第三方组件(如炼油、乙烯反应器模型,以及用户自定义模型)的接口,为您的各类过程优化工作提供强有力的支持。 http://blog.chinaunix.net/uid-22805134-id-1769077.html
10.蚂蚁金服核心技术:百亿特征实时推荐算法揭秘阿里妹导读:本文来自蚂蚁金服人工智能部认知计算组的基础算法团队,文章提出一整套创新算法与架构,通过对TensorFlow底层的弹性改造,解决了在线学习的弹性特征伸缩和稳定性问题,并以GroupLasso和特征在线频次过滤等自研算法优化了模型稀疏性,在支付宝核心推荐业务获得了uvctr的显著提升,并较大地提升了链路效率。 https://maimai.cn/article/detail?fid=1010621115&efid=mIQCHnkj0zjxlpygUmo5mg
11.百亿级图数据在快手安全情报的应用与挑战本文讲述了快手如何搭建安全情报服务架构与优化情报系统。https://www.secrss.com/articles/31209
12.版本更新一起装设备列表增加设备绑定工地时长和在线总时长 优化派工模块 增加工人可查看历史派工记录。 增加工人可设置“暂不接单”时间段。 2024.9.9 线上节点验收2.0 验收标准增强,增加图片/视频等素材,支持员工查阅验收标准,并可将验收标准作为营销素材。 验收报告增强,增加展示验收标准的图片/视频素材,并可将验收报告作为营销http://help.1qizhuang.com/upgrade
13.综合能源仿真优化平台将优化设计或者能源诊断过程中生成的数字孪生模型,在SimuWorks上仿真运行,可以用于实现系统的优化运行。根据仿真系统是否与实际系统在线连接,可以分为离线优化运行和在线优化运行两种方式。 1.离线优化运行 将第二天的负荷预测数据输入仿真系统,根据优化目标(如效率最高、碳排放最低或者二次能源利用率最高等等),通过数字http://www.simuworks.com/product/102.html
14.基于突触可塑性优化元学习的SNN在线学习框架–上海交通大学类脑内循环只要简单的突触可塑性局部规则可以片上计算,从少量的样本中学习剩余的参数。然而,范式实现的难点在于离线启动阶段(L2L的外循环)的训练算法的有效性。要求更高的网络优化往往需要BPTT来进行SNN的离线优化。由于外循环是在许多任务上的平均损失进行反向传播,对于大规模SNN将造成训练困难的问题。https://bat.sjtu.edu.cn/zh/snnzaixianxuexi-230825/
15.免费网站排名优化在线64xl.com最专业的下拉平台搜索词下拉知乎和各大博客上介绍搜索的文章远远少于推荐,所以我会特别开一个系列,跟大家聊聊电商APP里的智能搜索,以及AI时代该怎么做搜索。 1、什么是电商APP搜索引擎? 首先我们要确定的是,我们说的搜索并不是这种综合性的搜索引擎,而是淘宝、京东、美团等电商APP里的搜索引擎。 https://m.bjhwtx.com/h-nd-200607.html
16.mPaasH5离线包优化指南在移动互联网时代的今天,市场上绝大多数终端App都在使用H5展示页面,且随着终端技术迭代更新和市场多变性,H5页面在App中的占比越来越重要。同时也暴露出一个所有App的共性问题,即性能优化。同样的H5页面的性能优化也是重点问题。在mPaaS团队中虽然已将H5页面资源等打包做https://developer.aliyun.com/article/848599
17.化工生产公用工程总结9篇(全文)ABB公司在输配电、自动化产品和系统等方面在中国都建立了生产基地。ABB Simcon公司采用仿真优化器 (OPSO) 系统实现乙烯装置在线和离线优化, 已用于40多套装置, 该公司还可提供催化裂化、烷基化等装置的优化控制系统。其能源管理系统 (EMS) , 是该公司开发的一种公用工程优化控制软件。 它可以管理和控制工厂能源的https://www.99xueshu.com/w/filexgqp4ac5.html
18.阿里云盘基本功能隐私政策为了向您提供文件在线浏览、播放服务,我们需要您授予本地存储的读写权限,以便能够对浏览、播放的文件进行本地存储和离线阅读、浏览。我们还会收集相应的文件名称、播放和浏览记录,以便我们帮助您快速定位到您上一次播放或浏览的位置。上述信息(或权限)为非必要信息(或权限),拒绝提供信息或开启权限将导致您无法使用文件浏https://terms.alicdn.com/legal-agreement/terms/suit_bu1_alibaba_group/suit_bu1_alibaba_group202102022125_53871.html
19.RTO技术:流程工业的AIRTO技术是流程模拟技术的继承,二者采用一致的热力学模型,均基于严格机理,两者分别从离线和在线角度共同支撑了企业装置操作优化工作。 RTO技术与计划优化技术的关系 计划优化一般基于线性规划技术建模,计划优化是从全局、从整体考虑全厂物料分配的优化、装置加工负荷的优化、产品产量和品种的优化。计划优化是离线优化。 http://www.zeeflow.com/html/article/3051.html
20.基于凸优化和LQR的火箭返回轨迹跟踪制导表1 火箭初始状态和终端状态Table1 Initial and terminal states of rocket 2种方法的轨迹曲线如图3所示。本文方法的基准轨迹是一条离线优化轨迹,在仿真过程中,由于没有考虑外界的各种干扰因素,采用本文方法的飞行轨迹应与滚动凸优化方法的轨迹基本重合,图3的仿真结果也验证了这一点。 https://www.fx361.com/page/2022/1130/16941770.shtml
21.ProfitSuite先进过程控制与优化系统Profit Suite先进过程控制与优化系统.docxProfit Suite先进过程控制与优化系统Profit Suite先进过程控制与优化系统profit Suite TM先进控制与区域优化系统,是Honeywell公司经过几十年的研究、开发及实践,在具有世界先进的优化控制技术和丰富的炼油、石化及化工行业知识的http://www.chemesimu.com/chemesimu/vip_doc/18690053.html
22.息流FlowUs评测:从输入到输出,内置工作流的笔记软件和知识管理支持中文界面,针对中文用户使用习惯进行细节优化 输入/ +拼音」快速插入内容块; 输入【【/[[支持创建行内页面; 输入@快速引用日期、成员、最近访问页面; 支持原生开发,方便在移动端进行快速输入 支持PC 端离线功能 允许用户在完全离线的情况下,进行内容编辑处理,支持各种基础块和高级块内容输入。 https://sspai.com/post/73465