CN113190352B - 一种面向通用cpu的深度学习计算加速方法及系统 - Google Patents
一种面向通用cpu的深度学习计算加速方法及系统 Download PDFInfo
- Publication number
- CN113190352B CN113190352B CN202110517757.8A CN202110517757A CN113190352B CN 113190352 B CN113190352 B CN 113190352B CN 202110517757 A CN202110517757 A CN 202110517757A CN 113190352 B CN113190352 B CN 113190352B
- Authority
- CN
- China
- Prior art keywords
- model
- configuration
- acceleration
- cpu
- optimal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 89
- 238000013135 deep learning Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004364 calculation method Methods 0.000 title claims description 21
- 230000000694 effects Effects 0.000 claims abstract description 13
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000004088 simulation Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 229910052754 neon Inorganic materials 0.000 description 4
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical group [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种面向通用CPU的深度学习计算加速方法及系统,其中方法包括:步骤1:系统初始化后,通过汇编指令获取CPU核数以及CPU支持的指令集;步骤2:基于数据库中内置的不同指令集加速效果的排序对获取到的指令集进行排序,并生成排序后的列表;步骤3:将列表作为一全局配置放入模型配置池并输入模型,获取模型的最优配置后,将最优配置与数据送入模型推理模块;步骤4:由模型推理模块进行模型推理,并输出最终的推理结果。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种面向通用CPU的深度学习计算加速方法及系统。
背景技术
在很多应用场景中深度学习在进行推理时,对硬件有一定限制(如只有通用CPU(中央处理器),没有GPU(图形处理器)),但对推理速度依然还有比较高的要求,例如在移动端进行人脸识别与语音语义识别、安防领域的烟雾报警等。在这些领域中,推理速度的快慢不但直接影响着软件效果与体验,也决定着一款产品能否获得更加广阔的市场。因此,如何基于通用CPU对深度学习推理进行优化以获得更快的推理速度,已成为目前人工智能领域最为火热的方向之一,在推理运行时的加速方面,针对不同硬件需要充分利用并行处理、硬件加速来实现。
对于大部分的卷积神经网络而言,卷积层是最消耗时间的部分,而全连接层则是参数量最多的部分。图1为Alexnet分别在GPU和CPU进行推断的时间分布示意图,如图1所示,2012年获得ImageNet(大规模视觉识别项目的挑战赛)冠军的深度神经网络结构Alexnet分别在GPU和CPU进行推断的性能检测,在GPU上卷积层(conv1~conv5)和全连接层(fc6和fc7)占用了95%的计算时间,而在CPU上卷积层(conv1~conv5)和全连接层(fc6和fc7)占用了89%的时间,因此,如何高效地进行卷积层和全连接层的计算成为提升深度学习推断性能的关键点。
目前,对于x86架构CPU所采用的指令集加速与并行处理具体为:在MKLDNN(一种深度学习底层库,主要针对以intel为首的x86架构CPU,对深度神经网络进行层级及指令集级的优化)中,对于计算密集型算子即卷积和全连接层等进行了专门的指令集优化,指令集优化的原理在于使用SIMD(Single Instruction Multiple Data,单指令流多数据流)指令进行加速,即在一个CPU循环中,SIMD可在多个值上同时执行相同的运算/指令(如加、乘等)。如果我们在4个数据点上同时运行SIMD指令,就会直接实现4倍的加速。SIMD指令集包括SSE4.1、AVX、AVX2、AVX-512等,对于不同的算子,MKLDNN基于不同的指令集有不同的实现与优化方式。在使用MKLDNN进行训练或者推理时,使用JIT(Just In Time)代码生成技术,根据神经网络的参数以及后端硬件支持的指令集,生成优化后的代码,以提高神经网络在x86架构CPU上的执行速度。卷积运算与矩阵乘法为深度学习的核心,它们的计算模式均为大规模的循环计算,为了提升卷积、全连接层等运算的处理速度,MKLDNN使用并行化处理将计算任务切分并分配到多个线程并行运算,使用这种方式可以最大化利用CPU的计算资源。
但是,这个指令集加速只适用于x86架构CPU平台,不支持其它架构的CPU,如ARM架构CPU,使得该系统无法在广大使用ARM架构CPU的移动端设备上使用。且并行处理只考虑了尽可能多的使用CPU资源,并未考虑到线程创建过程与线程同步过程的开销,也未考虑有些模型结构主要的开销在于数据访问,而不是计算开销,这样的模型并不适宜使用并行处理的计算模式。盲目地以占用CPU资源为目的的计算模式在很多场景下不仅浪费了宝贵的CPU计算资源,还会提升模型的推理时延。
另外,ARM公司发布的开源工程ARM Compute Library(ACL),旨在为图像/视频/多媒体/计算机视觉等领域的开发者提供ARM平台的硬件加速库。ACL库中使用ARM A系列CPU支持的SIMD指令对计算密集型算子进行硬件加速。ARM架构CPU中的SIMD指令为NEON指令集,NEON结合了64-bit和128-bit的SIMD指令集,提供128-bit宽的向量运算。但是,这个指令集加速只适用于ARM平台,不支持其它架构的CPU,如x86架构CPU,使得该系统无法在使用在x86 CPU的设备上。
发明内容
为了解决上述问题,本发明提供一种面向通用CPU的深度学习计算加速方法及系统,其既可以在x86架构CPU又可以在ARM架构CPU上使用,并能够自适应选取最佳硬件加速方式的进行深度学习推理加速,从而降低了针对不同的平台需要重新开发而投入的资源成本,同时,其还可以自适应选择性能最佳的模型推理计算线程数,以实现在性能最优的前提下能保证资源占用最小。
为达到上述目的,本发明提供了一种面向通用CPU的深度学习计算加速方法,其包括以下步骤:
步骤1:系统初始化后,通过汇编指令获取CPU核数以及CPU支持的指令集;
步骤2:基于数据库中内置的不同指令集加速效果的排序对获取到的指令集进行排序,并生成排序后的列表;
步骤3:将列表作为一全局配置放入模型配置池并输入模型,获取模型的最优配置后,将最优配置与数据送入模型推理模块;
步骤4:由模型推理模块进行模型推理,并输出最终的推理结果。
在本发明一实施例中,其中,步骤1具体为:
步骤11:系统初始化CPU架构获取模块;
步骤12:CPU架构获取模块通过汇编指令获取CPU核数以及CPU所支持的指令集,并验证。
在本发明一实施例中,其中,步骤2具体为:
步骤21:数据库中预置所有指令集加速效果的排序;
步骤22:基于数据库中预置的排序,对步骤1中获取到的指令集进行排序;
步骤23:将排序的结果生成列表。
在本发明一实施例中,其中,步骤3中所述最优配置包括预置的基于最优指令集的加速代码配置以及最佳的推理计算并行线程数配置。
在本发明一实施例中,其中,步骤3中获取模型最优配置的具体过程包括以下步骤:
步骤31:根据输入模型,在模型配置池中查找是否存在该模型的最优配置,如果有,则根据最优配置生成模型加速算子代码,并将对应的最优配置与数据送入模型推理模块;
如果没有,则进入下一步;
步骤32:根据模型的加速算子,查找步骤2的列表中加速效果最优的指令集是否存在与该算子对应的实现方式,
如果有,则采用最优指令集的实现方式,并将指令集中的加速代码作为对应算子的加速代码配置;
如果没有,则依次查找步骤2的列表中的后续指令集是否存在与算子对应的实现方式,若找到,则采用对应指令集的实现方式,并将指令集中的加速代码作为对应算子的加速代码配置;
如果步骤2的列表中的指令集没有对应算子的实现方式,则采用预置的不带加速的代码作为对应算子的加速代码配置;
步骤33:对模型及其算子配置的加速代码进行模拟推理,得到对应模型的最优配置并存储,然后返回步骤31。
在本发明一实施例中,其中,步骤33的具体过程为:
步骤331:遍历尝试每一种线程数的设定,其中,所述线程数为基于获取到的CPU核数进行设定的,其最小值为1,最大值为2×CPU的核数;
步骤332:在每一种线程数设定下进行50次推理,并统计对应线程数推理的平均耗时;
步骤333:选择所有平均耗时中耗时最少的线程数作为最佳的推理计算并行线程数配置,若存在至少两种线程数的平均耗时相同且均为最小值,则选择线程数少的设定作为最佳的推理计算并行线程数配置;
步骤334:将最佳的推理计算并行线程数配置发送到模型配置池,创建对应模型的最优配置并存储,返回步骤31。
为达到上述目的,本发明提供了一种面向通用CPU的深度学习计算加速系统,其包括:
CPU架构获取器,用于获取CPU架构;
指令集分析器,与所述CPU架构获取器连接,用于对指令集排序;
模型配置池,与所述指令集分析器连接,用于存储各模型的配置;
模拟推理器,与所述模型配置池连接,用于通过模拟推理获取输入模型的最优配置;
模型推理器,与所述模型配置池连接,用于获取输入模型的最优配置进行模型推理。
在本发明一实施例中,其中,所述CPU架构包括CPU核数和CPU支持的指令集。
在本发明一实施例中,其中,所述最优配置包括预置的基于最优指令集的加速代码配置以及最佳的推理计算并行线程数配置。
本发明提供的深度学习计算加速方法及系统是能够面向x86和ARM架构CPU的通用深度学习加速方法及系统,与现有加速系统相比,其具有以下优点:
1)可以自适应选择针对CPU的最佳硬件加速方式,同时解决了现有加速系统只针对特定平台,切换到了其它平台需要重新开发的问题,可以减少资源的投入;
2)能自适应地调节每个模型推理时的线程分配,在性能最优的前提下同时能保证资源占用最小。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为Alexnet分别在GPU和CPU进行推断的时间分布示意图;
图2为本发明一实施例的深度学习计算加速方法流程图;
图3为本发明一实施例的深度学习计算加速系统架构图。
附图标记说明:301-CPU架构获取器;302-指令集分析器;303-模型配置池;304-模拟推理器;305-模型推理器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图2为本发明一实施例的深度学习计算加速方法流程图,如图2所示,本实施例提供了一种面向通用CPU的深度学习计算加速方法,其包括以下步骤:
步骤1:系统初始化后,通过汇编指令获取CPU的核数和CPU支持的指令集;
在本实施例中,其中,步骤1具体为:
步骤11:系统初始化时首先初始化CPU架构获取模块;
步骤12:CPU架构获取模块通过汇编指令获取CPU的核数和对应CPU所支持的指令集,并验证。
其中,若本实施例的CPU架构获取模块获取到CPU的架构为x86架构的四核CPU,则其对应的指令集可能为AVX、AVX2、AVX-512等,但由于不是所有的x86架构CPU都支持AVX-512,所以在获取到CPU的架构之后,还需要进一步使用汇编指令测试其是否都能够支持这些指令集,只有经过测试验证后确认支持的指令集,才能作为对应CPU所支持的指令集获取,本实施获取到的CPU支持的指令集为AVX2和AVX-512。
步骤2:基于数据库中内置的不同指令集加速效果的排序,对获取到的CPU支持的指令集进行排序,并生成排序后的列表;
在本实施例中,其中,步骤2具体为:
步骤21:数据库中预置所有指令集加速效果的排序;其中,对应x86架构的CPU,其指令集按照指令集加速效果的排序可以为AVX512>AVX2>AVX>SSE,本发明也可以包括更多指令集进行加速效果的排序,此处仅为举例,并不限制指令集数量及排序结果;对应ARM架构的CPU,由于其支持的指令集只有NEON,因此不需要再对指令集进行排序,只需要测试CPU是否支持NEON即可。
步骤22:基于数据库中指令集加速效果的排序,对获取到的CPU支持的指令集进行排序;其中,步骤1获取的CPU支持的指令集为AVX512和AVX2两种,那么基于数据库中指令集加速效果AVX512>AVX2的排序,可知AVX512的加速效果优于AVX2,因此将AVX512排在第一位,为最优,将AVX2排在第二位。
步骤23:将CPU支持的指令集排序的结果生成列表。其中,以步骤22结果为例,由于AVX512为最优,则AVX512在列表的第一位,AVX2在列表的第二位。
步骤3:将生成的列表作为一全局配置放入模型配置池并输入模型,获取模型的最优配置后,将最优配置与数据送入模型推理模块;
在本实施例中,其中,步骤3中最优配置包括预置的基于最优指令集的加速代码配置以及最佳的推理计算并行线程数配置。
在本实施例中,其中,步骤3中获取模型最优配置的具体过程为:
步骤31:根据输入模型,在模型配置池中查找是否存在该模型的最优配置,如果有,则根据最优配置生成模型加速算子代码,并将对应的最优配置与数据送入模型推理模块;
如果没有,则进入下一步;
步骤32:根据模型的加速算子,查找步骤2的列表中加速效果最优的指令集是否存在与该算子对应的实现方式,
如果有,则采用最优指令集的实现方式,并将指令集中的加速代码作为该算子的加速代码配置;
如果没有,则依次查找步骤2的列表中的后续指令集中,是否存在与该算子对应的实现方式,当在后续指令集中找到对应实现方式时,则采用找到这一指令集的实现方式,并将指令集中的加速代码作为该算子的加速代码配置;
如果步骤2的列表中的指令集没有对应算子的实现方式,则采用预置的不带加速的代码作为该算子的加速代码配置;
其中,再以步骤2得到的列表为例,若一模型算子为A,按照列表中指令集的排序,则会首先查找是否存在算子A基于AVX512的实现方式,如果有则采用;如果没有则继续查找是否存在算子A基于AVX2的实现方式,如果有则采用;如果还没有,则采用不带硬件加速的实现方式。不论采用了哪种实现方式,都会将对应的代码作为该算子的加速代码配置,用以进行后续的模拟推理。
步骤33:对模型与其算子配置的加速代码进行模拟推理,得到对应模型的最优配置并存储,然后返回步骤31。
在本实施例中,其中,步骤33的具体过程为:
步骤331:遍历尝试每一种线程数的设定,其中,线程数为基于步骤1获取到的CPU核数进行设定的,其设定的最小值为1,最大值为2×CPU的核数;其中,步骤1中的CPU核数为四核,则线程数的设定的最小值为1,最大值为2×4=8,因此,遍历尝试每一种线程数设定时,需要遍历的线程数为1~8。
步骤332:在每一种线程数设定下进行50次推理,并统计对应线程数设定下的推理的平均耗时;
步骤333:选择所有平均耗时中耗时最少的线程数作为最佳的推理计算并行线程数配置,若得到的结果中,存在至少两种线程数设定下的平均耗时相同且均为最小值,则选择其中线程数少的设定作为最佳的推理计算并行线程数配置;其中,由于在线程数多的情况下,会增加线程调度与同步的开销,其对系统整体资源的开销会增大,因此,在进行最优配置选择时,当平均耗时相同则优先以线程数作为选择标准。
步骤334:将最佳的推理计算并行线程数配置发送到模型配置池,创建对应模型的最优配置并存储到模型配置池中,然后返回步骤31。
步骤4:由模型推理模块进行模型推理,并输出最终的推理结果。
其中,若某个深度学习模型包含了A、B两个算子的运算过程,则模型配置池中会包含以下信息:1、A算子在该CPU上的最优指令集实现方式;2、B算子在该CPU上的最优指令集实现方式;3、最佳的推理计算并行线程数。当模型推理模块获得最优配置后,整体的执行流程为:首先,设置推理计算并行线程数;然后,模型按照输入->算子A->算子B->推理结果的方式进行计算,从而得到最终的结果并输出。
实施例二
图3为本发明一实施例的深度学习计算加速系统架构图,如图3所示,本实施例提供了一种面向通用CPU的深度学习计算加速系统,用于实现实施例一的方法,其包括:
CPU架构获取器(301),用于获取CPU架构;
指令集分析器(302),与CPU架构获取器(301)连接,用于对指令集排序;
模型配置池(303),与指令集分析器(302)连接,用于存储各模型的配置;
模拟推理器(304),与模型配置池(303)连接,用于通过模拟推理获取输入模型的最优配置;
模型推理器(305),与模型配置池(303)连接,用于获取输入模型的最优配置进行模型推理。
在本实施例中,其中,所述CPU架构包括CPU核数和CPU支持的指令集。
在本实施例中,其中,所述最优配置包括预置的基于最优指令集的加速代码配置以及最佳的推理计算并行线程数配置。
本发明提供的深度学习计算加速方法及系统,是能够面向x86和ARM架构CPU的通用深度学习加速方法及系统,其可以自适应地选择针对CPU架构的最佳硬件加速方式,同时其解决了现有加速系统只针对特定平台,若切换到其它平台则需要重新开发的问题,可以减少资源的投入;还能够自适应地调节每个模型推理时的线程分配,在性能最优的前提下同时能保证资源占用最小。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (7)
1.一种面向通用CPU的深度学习计算加速方法,其特征在于,包括以下步骤:
步骤1:系统初始化后,通过汇编指令获取CPU核数以及CPU支持的指令集;
步骤2:基于数据库中内置的不同指令集加速效果的排序对获取到的指令集进行排序,并生成排序后的列表;
步骤3:将列表作为一全局配置放入模型配置池并输入模型,获取模型的最优配置后,将最优配置与数据送入模型推理模块,其中获取模型最优配置的具体过程包括以下步骤:
步骤31:根据输入模型,在模型配置池中查找是否存在该模型的最优配置,如果有,则根据最优配置生成模型加速算子代码,并将对应的最优配置与数据送入模型推理模块;
如果没有,则进入下一步;
步骤32:根据模型的加速算子,查找步骤2的列表中加速效果最优的指令集是否存在与该算子对应的实现方式,
如果有,则采用最优指令集的实现方式,并将指令集中的加速代码作为对应算子的加速代码配置;
如果没有,则依次查找步骤2的列表中的后续指令集是否存在与算子对应的实现方式,若找到,则采用对应指令集的实现方式,并将指令集中的加速代码作为对应算子的加速代码配置;
如果步骤2的列表中的指令集没有对应算子的实现方式,则采用预置的不带加速的代码作为对应算子的加速代码配置;
步骤33:对模型及其算子配置的加速代码进行模拟推理,得到对应模型的最优配置并存储,然后返回步骤31,其具体过程为:
步骤331:遍历尝试每一种线程数的设定,其中,所述线程数为基于获取到的CPU核数进行设定的,其最小值为1,最大值为2×CPU的核数;
步骤332:在每一种线程数设定下进行50次推理,并统计对应线程数推理的平均耗时;
步骤333:选择所有平均耗时中耗时最少的线程数作为最佳的推理计算并行线程数配置,若存在至少两种线程数的平均耗时相同且均为最小值,则选择线程数少的设定作为最佳的推理计算并行线程数配置;
步骤334:将最佳的推理计算并行线程数配置发送到模型配置池,创建对应模型的最优配置并存储,返回步骤31;
步骤4:由模型推理模块进行模型推理,并输出最终的推理结果。
2.根据权利要求1所述的深度学习计算加速方法,其特征在于,步骤1具体为:
步骤11:系统初始化CPU架构获取模块;
步骤12:CPU架构获取模块通过汇编指令获取CPU核数以及CPU所支持的指令集,并验证。
3.根据权利要求1所述的深度学习计算加速方法,其特征在于,步骤2具体为:
步骤21:数据库中预置所有指令集加速效果的排序;
步骤22:基于数据库中预置的排序,对步骤1中获取到的指令集进行排序;
步骤23:将排序的结果生成列表。
4.根据权利要求1所述的深度学习计算加速方法,其特征在于,步骤3中所述最优配置包括预置的基于最优指令集的加速代码配置以及最佳的推理计算并行线程数配置。
5.一种面向通用CPU的深度学习计算加速系统,用于实现权利要求1~4任一项的方法,其特征在于,包括:
CPU架构获取器,用于获取CPU架构;
指令集分析器,与所述CPU架构获取器连接,用于对指令集排序;
模型配置池,与所述指令集分析器连接,用于存储各模型的配置;
模拟推理器,与所述模型配置池连接,用于通过模拟推理获取输入模型的最优配置;
模型推理器,与所述模型配置池连接,用于获取输入模型的最优配置进行模型推理。
6.根据权利要求5所述的深度学习计算加速方法,其特征在于,所述CPU架构包括CPU核数和CPU支持的指令集。
7.根据权利要求6所述的深度学习计算加速方法,其特征在于,所述最优配置包括预置的基于最优指令集的加速代码配置以及最佳的推理计算并行线程数配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110517757.8A CN113190352B (zh) | 2021-05-12 | 2021-05-12 | 一种面向通用cpu的深度学习计算加速方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110517757.8A CN113190352B (zh) | 2021-05-12 | 2021-05-12 | 一种面向通用cpu的深度学习计算加速方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190352A CN113190352A (zh) | 2021-07-30 |
CN113190352B true CN113190352B (zh) | 2024-02-06 |
Family
ID=76981254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110517757.8A Active CN113190352B (zh) | 2021-05-12 | 2021-05-12 | 一种面向通用cpu的深度学习计算加速方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190352B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020465A (zh) * | 2021-11-08 | 2022-02-08 | 中兴通讯股份有限公司 | 模型的推理优化方法、系统、电子设备和存储介质 |
CN114255153A (zh) * | 2021-11-30 | 2022-03-29 | 北京新奥特图腾科技有限公司 | 一种超高清图像混合处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657219A (zh) * | 2015-02-27 | 2015-05-27 | 西安交通大学 | 一种用于异构众核系统下的应用程序线程数动态调整方法 |
CN108198124A (zh) * | 2017-12-27 | 2018-06-22 | 上海联影医疗科技有限公司 | 医学图像处理方法、装置、计算机设备和存储介质 |
CN111598221A (zh) * | 2020-05-14 | 2020-08-28 | 济南浪潮高新科技投资发展有限公司 | 一种软硬件协同加速神经网络算法的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10726514B2 (en) * | 2017-04-28 | 2020-07-28 | Intel Corporation | Compute optimizations for low precision machine learning operations |
US11556391B2 (en) * | 2019-10-21 | 2023-01-17 | EMC IP Holding Company LLC | CPU utilization for service level I/O scheduling |
-
2021
- 2021-05-12 CN CN202110517757.8A patent/CN113190352B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657219A (zh) * | 2015-02-27 | 2015-05-27 | 西安交通大学 | 一种用于异构众核系统下的应用程序线程数动态调整方法 |
CN108198124A (zh) * | 2017-12-27 | 2018-06-22 | 上海联影医疗科技有限公司 | 医学图像处理方法、装置、计算机设备和存储介质 |
CN111598221A (zh) * | 2020-05-14 | 2020-08-28 | 济南浪潮高新科技投资发展有限公司 | 一种软硬件协同加速神经网络算法的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113190352A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gorbachev et al. | Openvino deep learning workbench: Comprehensive analysis and tuning of neural networks inference | |
Li et al. | A hybrid tabu search algorithm with an efficient neighborhood structure for the flexible job shop scheduling problem | |
US20180336453A1 (en) | Domain specific language for generation of recurrent neural network architectures | |
US20180018555A1 (en) | System and method for building artificial neural network architectures | |
EP3572944A1 (en) | Concurrency vulnerability detection | |
JP2019535091A (ja) | 畳み込みニューラルネットワークを使用したシーケンスの処理 | |
CN110633785B (zh) | 一种卷积神经网络的计算方法及系统 | |
CN113190352B (zh) | 一种面向通用cpu的深度学习计算加速方法及系统 | |
CN1866206A (zh) | 利用马尔可夫链根据uml规范生成性能测试 | |
CN112099848B (zh) | 一种业务处理方法、装置及设备 | |
Dong et al. | Characterizing the microarchitectural implications of a convolutional neural network (cnn) execution on gpus | |
WO2024041400A1 (zh) | 模型训练任务的调度方法、装置及电子设备 | |
CN115437760A (zh) | 计算资源分配方法、电子设备、存储介质及程序产品 | |
JP2023007366A (ja) | 分子構造取得方法、装置、電子デバイス及び記憶媒体 | |
Jiang et al. | Hpc ai500 v2. 0: The methodology, tools, and metrics for benchmarking hpc ai systems | |
CN112990461B (zh) | 构建神经网络模型的方法、装置、计算机设备和存储介质 | |
CN113672232A (zh) | 程序编译方法和装置 | |
Wang et al. | Auto-MAP: A DQN framework for exploring distributed execution plans for DNN workloads | |
CN113128677A (zh) | 模型生成方法和装置 | |
CN113111996A (zh) | 模型生成方法和装置 | |
CN117196015A (zh) | 算子执行方法、装置、电子设备及存储介质 | |
CN109977011A (zh) | 测试脚本的自动生成方法、装置、存储介质及电子设备 | |
KR20200090061A (ko) | 인공신경망 모델의 검증 방법 및 장치 | |
US20220277195A1 (en) | Automated data augmentation in deep learning | |
Duan et al. | A structure-aware framework for learning device placements on computation graphs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 711c, 7 / F, block a, building 1, yard 19, Ronghua Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 102600 Applicant after: Beijing Zhongke Flux Technology Co.,Ltd. Address before: Room 711c, 7 / F, block a, building 1, yard 19, Ronghua Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 102600 Applicant before: Beijing Ruixin high throughput technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |