CN110929850A - 基于申威处理器的深度学习算子自动优化系统及方法 - Google Patents
基于申威处理器的深度学习算子自动优化系统及方法 Download PDFInfo
- Publication number
- CN110929850A CN110929850A CN201911177238.0A CN201911177238A CN110929850A CN 110929850 A CN110929850 A CN 110929850A CN 201911177238 A CN201911177238 A CN 201911177238A CN 110929850 A CN110929850 A CN 110929850A
- Authority
- CN
- China
- Prior art keywords
- optimization
- calculation
- intermediate representation
- optimized
- unit
- 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.)
- Pending
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000013135 deep learning Methods 0.000 title claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims abstract description 81
- 238000012545 processing Methods 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 19
- 230000007246 mechanism Effects 0.000 abstract description 4
- 238000002054 transplantation Methods 0.000 abstract description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明提供的基于申威处理器的深度学习算子自动优化系统,包括获取单元,获取专用的描述语言定义计算任务和优化空间的描述;调度单元,根据优化空间的描述构建优化空间,依据优化空间中不同优化方法对计算任务描述调度生成若干不同的计算实现,输出用中间表示表达的计算实现;优化单元,接收中间表示,对中间表示执行优化,输出优化后的中间表示;优化空间搜索单元,从优化后的中间表示中搜索出最优的计算实现;代码生成单元,将最优的计算实现翻译为在申威处理器上可以执行的代码。本发明能够解决现有技术中优化性能低、难以移植、优化时间开销大的问题,高效于手动优化技术和自动优化技术,并且可以能够方便地移植到其他机构上使用。
Description
技术领域
本发明涉及算法的优化系统及方法,尤其涉及一种基于申威处理器的深度学习算子自动优化系统及方法。
背景技术
人工智能已经渗入到工作生活的方方面面,深度学习技术在图像识别、语言处理、目标检测各个方面都取得了显著的突破,神威超算平台也搭建了分布式深度学习开发环境。随着深度学习模型层次加深、参数增多,其对计算资源的需求逐渐增大,需要对模型的计算算子进行深度的定制化优化。
深度学习模型,尤其是卷积神经网络模型,主要的计算资源消耗在于计算密集型算子,包含卷积和全连接算子等。一方面,算子有多种计算方法,比如卷积算子就有基于im2col的卷积、隐式卷积、Winograd卷积等多种计算方法。另一方面,模型的输入是多维张量,因而算子的输入参数较多、参数变化范围大。针对具体算子的具体参数输入,不同的计算方法其实际性能不同,相同计算方法的不同优化方式性能差距也较大。这导致需要对每一种计算密集型算子的不同计算方法、不同参数输入编写多种具体实现代码,工程任务十分艰巨,所以需要使用自动优化技术。
现有的自动优化技术着重于可移植性和自动化,通过高度的抽象常用的优化技术和不同平台编码方式,利用开源的编译工具,可以优化产生适配于多种硬件平台的性能较高的代码。但是过高的抽象和通用性考虑使得其优化效果相较于手动优化方法还有一定的差距。尤其是对于SW26010这一类有着特殊硬件架构的芯片,现有的自动优化技术效率较低,不能充分发挥该类芯片的硬件特性,其原因主要是以下三点:1.现有的自动优化技术直接对加减乘除级别的计算进行调度抽象,重点考虑硬件的多级缓存架构、多核无通信并行计算以及向量化等优化方式,对于SW26010芯片的无缓存设计、高速寄存器通信特性、指令流水线等特性难以利用,而这些特性对计算性能影响显著,因此无法充分发挥硬件特性。2.现有的自动优化技术多借助于开源的编译优化工具和代码生成工具,面向具体硬件进行指令级别优化并生成可执行代码,而对于SW26010芯片,开源工具尚未支持,而且编译工具优化技术也有限,现有工具移植工作量大,移植的自动优化工具的计算资源利用率也较低。3.优化空间搜索是自动优化技术的关键点之一,现有的自动优化技术,采用基于多面体模型的整数优化搜索方法难以结合融合硬件特性,优化结果较差,采用基于机器学习模型的优化搜索方法忽略硬件先验知识,搜索时间长,时间开销大。
综上所述,现有的自动优化技术存在以下主要缺点:优化结果性能较低,难以移植,优化时间开销大。
发明内容
为解决上述技术问题,本发明提供的基于申威处理器的深度学习算子自动优化系统及方法,能够解决现有技术中优化性能低、难以移植、优化时间开销大的问题,既高效于手动优化技术,又高效于自动优化技术,并且可以通过更改汇编元语,移植到其他机构上使用。
为达到上述目的,本发明提供的技术方案为:
本发明提供的一种基于申威处理器的深度学习算子自动优化系统,包括:
获取单元,获取专用的描述语言定义计算任务和优化空间的描述;
调度单元,根据优化空间的描述构建优化空间,依据优化空间中不同优化方法对计算任务描述调度生成若干不同的计算实现,输出用中间表示表达的计算实现;
优化单元,接收中间表示,对中间表示执行优化,输出优化后的中间表示;
优化空间搜索单元,从优化后的中间表示中搜索出最优的计算实现;
代码生成单元,将最优的计算实现翻译为在申威处理器上可以执行的代码。
本发明提供的基于申威处理器的深度学习算子自动优化系统,优选地,所述优化单元具体为:接收中间表示,对中间表示执行自动访存推理、计算访存重叠和边界处理优化,输出优化后的中间表示。
本发明提供的基于申威处理器的深度学习算子自动优化系统,优选地,所述优化空间搜索单元具体为:借助静态的性能模型,从优化后的中间表示中搜索出最优的计算实现。
本发明提供的基于申威处理器的深度学习算子自动优化系统,优选地,所述最优的计算实现包括最优的优化调度策略、合适的汇编元语。
本发明提供的一种基于申威处理器的深度学习算子自动优化方法,包括:
获取专用的描述语言定义计算任务和优化空间的描述;
根据优化空间的描述构建优化空间,依据优化空间中不同优化方法对计算任务描述调度生成若干不同的计算实现,输出用中间表示表达的计算实现;
对中间表示执行优化,输出优化后的中间表示;
从优化后的中间表示中搜索出最优的计算实现;
将最优的计算实现翻译为在申威处理器上可以执行的代码。
本发明提供的基于申威处理器的深度学习算子自动优化方法,优选地,所述“对中间表示执行优化”具体为:对中间表示执行自动访存推理、计算访存重叠和边界处理优化。
本发明提供的基于申威处理器的深度学习算子自动优化方法,优选地,所述“从优化后的中间表示中搜索出最优的计算实现”具体为:借助静态的性能模型,从优化后的中间表示中搜索出最优的计算实现。
本发明提供的基于申威处理器的深度学习算子自动优化方法,优选地,所述最优的计算实现包括最优的优化调度策略、合适的汇编元语。
上述技术方案具有如下优点或者有益效果:
本发明提供的一种基于申威处理器的深度学习算子自动优化系统,其特征在于,包括获取单元,获取专用的描述语言定义计算任务和优化空间的描述;调度单元,根据优化空间的描述构建优化空间,依据优化空间中不同优化方法对计算任务描述调度生成若干不同的计算实现,输出用中间表示表达的计算实现;优化单元,接收中间表示,对中间表示执行优化,输出优化后的中间表示;优化空间搜索单元,从优化后的中间表示中搜索出最优的计算实现;代码生成单元,将最优的计算实现翻译为在申威处理器上可以执行的代码。本发明能够解决现有技术中优化性能低、难以移植、优化时间开销大的问题,既高效于手动优化技术,又高效于自动优化技术,并且可以通过更改汇编元语,移植到其他机构上使用。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。
图1是本发明实施例1提供的一种基于申威处理器的深度学习算子自动优化系统的线框图;
图2是本发明实施例2提供的一种基于申威处理器的深度学习算子自动优化方法的流程图;
图3是本发明实施例1提供的算子的优化实现原理图。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
实施例1:
本发明实施例1在基于申威处理器(SW26010)自动优化卷积(包含im2col方法、隐式卷积、Winograd方法三种计算方法)和全连接两种计算密集型算子。如图3,算子的优化实现,拆分为充分利用硬件特性的张量汇编元语和可以自动调优的优化调度两部分,从而分离硬件相关和硬件无关的优化策略。以张量汇编元语为构建单元,结合多重循环调度,完成卷积算子和全连接算子的计算任务。
基于上述论述,如图1所示,本发明实施例1提供的一种基于申威处理器的深度学习算子自动优化系统,其特征在于,包括:获取单元1,获取专用的描述语言定义计算任务和优化空间的描述;调度单元2,根据优化空间的描述构建优化空间,依据优化空间中不同优化方法对计算任务描述调度生成若干不同的计算实现,输出用中间表示表达的计算实现;优化单元3,接收中间表示,对中间表示执行优化,输出优化后的中间表示;优化空间搜索单元4,从优化后的中间表示中搜索出最优的计算实现;代码生成单元5,将最优的计算实现翻译为在申威处理器上可以执行的代码。
用户使用专用的描述语言,如汇编元语,定义所要优化的计算任务描述,并且定义优化空间的描述,优化空间指不同的优化方法和参数的组合;本实施例提供的基于申威处理器的深度学习算子自动优化系统通过获取单元1获取到用户定义的计算任务描述和优化空间的描述,即获取到所需要优化的计算任务及对该计算任务提供不同的优化方法和参数组合;调度单元2通过不同的优化方法和参数组合,将计算任务生成为不同的计算实现,同时为了方便表示,通过中间表示来表达计算实现;优化单元3根据调度单元2生成的全部中间表示,对不同的中间表示执行优化,并输出优化后的中间表示;通过优化空间搜索单元4从全部优化后的中间表示(即优化后的计算实现)中搜索出最优的计算实现;代码生成单元5将最优的计算实现翻译为可以再申威处理器上执行的C语言和汇编混合的代码,以完成自动优化过程,其中C语言部分反映了调度优化策略,汇编代码则是使用的张量汇编元语。本发明实施例1通过手动设计硬件相关的张量汇编元语可以保证较高的计算资源利用率,而硬件无关的自动优化调度可以实时的根据定义的优化空间,基于张量汇编元语生成高性能的卷积、全连接算子实现,从而实现了手动优化与自动优化相结合的技术,解决了现有技术中优化性能低、难以移植、优化时间开销大的问题,既高效于手动优化技术,又高效于自动优化技术,并且可以通过更改汇编元语,移植到其他机构上使用。
本发明实施例中优化单元3可以为:接收中间表示,对中间表示执行自动访存推理、计算访存重叠和边界处理优化,输出优化后的中间表示。
为了加快搜索过程,通过预先设计的静态的性能模型,可以快速的评价计算实现的计算性能,从而挑选出较高性能的实现,因此本实施例中优化空间搜索单元4优选为:借助静态的性能模型,从优化后的中间表示中搜索出最优的计算实现。
本发明实施例中的最优的计算实现包括最优的优化调度策略、合适的汇编元语。合适的汇编元语是指合适的计算、访存会标元语。
实施例2:
如图2所示,本发明实施例2提供了一种基于实施例1提供的基于申威处理器的深度学习算子自动优化系统的优化方法,包括:
S101:获取专用的描述语言定义计算任务和优化空间的描述;
S102:根据优化空间的描述构建优化空间,依据优化空间中不同优化方法对计算任务描述调度生成若干不同的计算实现,输出用中间表示表达的计算实现;
S103:对中间表示执行优化,输出优化后的中间表示;
S104:从优化后的中间表示中搜索出最优的计算实现;
S105:将最优的计算实现翻译为在申威处理器上可以执行的代码。
本实施例中,“对中间表示执行优化”可选为:对中间表示执行自动访存推理、计算访存重叠和边界处理优化。
本实施例中,步骤S104优选为:借助静态的性能模型,从优化后的中间表示中搜索出最优的计算实现。
本实施例中,最优的计算实现包括最优的优化调度策略、合适的汇编元语。
本领域技术人员应该理解,本领域技术人员结合现有技术以及上述实施例可以实现所述变化例,在此不予赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
以上对本发明的较佳实施例进行了描述,但本发明并不局限于上述特定实施方式,其中未详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,并不影响本发明的实质内容。因此,凡未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (8)
1.一种基于申威处理器的深度学习算子自动优化系统,其特征在于,包括获取单元,获取专用的描述语言定义计算任务和优化空间的描述;
调度单元,根据优化空间的描述构建优化空间,依据优化空间中不同优化方法对计算任务描述调度生成若干不同的计算实现,输出用中间表示表达的计算实现;
优化单元,接收中间表示,对中间表示执行优化,输出优化后的中间表示;
优化空间搜索单元,从优化后的中间表示中搜索出最优的计算实现;
代码生成单元,将最优的计算实现翻译为在申威处理器上可以执行的代码。
2.如权利要求1所述的基于申威处理器的深度学习算子自动优化系统,其特征在于,所述优化单元具体为:接收中间表示,对中间表示执行自动访存推理、计算访存重叠和边界处理优化,输出优化后的中间表示。
3.如权利要求1所述的基于申威处理器的深度学习算子自动优化系统,其特征在于,所述优化空间搜索单元具体为:借助静态的性能模型,从优化后的中间表示中搜索出最优的计算实现。
4.如权利要求1或3中任意一项所述的基于申威处理器的深度学习算子自动优化系统,其特征在于,所述最优的计算实现包括最优的优化调度策略、合适的汇编元语。
5.一种基于申威处理器的深度学习算子自动优化方法,其特征在于,包括:
获取专用的描述语言定义计算任务和优化空间的描述;
根据优化空间的描述构建优化空间,依据优化空间中不同优化方法对计算任务描述调度生成若干不同的计算实现,输出用中间表示表达的计算实现;
对中间表示执行优化,输出优化后的中间表示;
从优化后的中间表示中搜索出最优的计算实现;
将最优的计算实现翻译为在申威处理器上可以执行的代码。
6.如权利要求5所述的基于申威处理器的深度学习算子自动优化方法,其特征在于,所述“对中间表示执行优化”具体为:对中间表示执行自动访存推理、计算访存重叠和边界处理优化。
7.如权利要求5所述的基于申威处理器的深度学习算子自动优化方法,其特征在于,所述“从优化后的中间表示中搜索出最优的计算实现”具体为:借助静态的性能模型,从优化后的中间表示中搜索出最优的计算实现。
8.如权利要求5或7中任意一项所述的基于申威处理器的深度学习算子自动优化方法,其特征在于,所述最优的计算实现包括最优的优化调度策略、合适的汇编元语。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911177238.0A CN110929850A (zh) | 2019-11-26 | 2019-11-26 | 基于申威处理器的深度学习算子自动优化系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911177238.0A CN110929850A (zh) | 2019-11-26 | 2019-11-26 | 基于申威处理器的深度学习算子自动优化系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110929850A true CN110929850A (zh) | 2020-03-27 |
Family
ID=69851298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911177238.0A Pending CN110929850A (zh) | 2019-11-26 | 2019-11-26 | 基于申威处理器的深度学习算子自动优化系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110929850A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858351A (zh) * | 2020-07-23 | 2020-10-30 | 深圳慕智科技有限公司 | 一种基于差分评估的深度学习推理引擎测试方法 |
CN112130896A (zh) * | 2020-08-17 | 2020-12-25 | 深圳云天励飞技术股份有限公司 | 神经网络模型迁移方法、装置、电子设备及存储介质 |
WO2022078400A1 (zh) * | 2020-10-16 | 2022-04-21 | 中科寒武纪科技股份有限公司 | 一种对多维数据进行处理的设备、方法和计算机程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017196A1 (en) * | 2010-07-13 | 2012-01-19 | Plus Ng | System, architecture and micro-architecture (sama) representation of an integrated circuit |
CN105808309A (zh) * | 2016-03-08 | 2016-07-27 | 中国科学院软件研究所 | 一种基于申威平台的基础线性代数库blas三级函数gemm的高性能实现方法 |
CN106775594A (zh) * | 2017-01-13 | 2017-05-31 | 中国科学院软件研究所 | 一种基于国产申威26010处理器的稀疏矩阵向量乘异构众核实现方法 |
-
2019
- 2019-11-26 CN CN201911177238.0A patent/CN110929850A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017196A1 (en) * | 2010-07-13 | 2012-01-19 | Plus Ng | System, architecture and micro-architecture (sama) representation of an integrated circuit |
CN105808309A (zh) * | 2016-03-08 | 2016-07-27 | 中国科学院软件研究所 | 一种基于申威平台的基础线性代数库blas三级函数gemm的高性能实现方法 |
CN106775594A (zh) * | 2017-01-13 | 2017-05-31 | 中国科学院软件研究所 | 一种基于国产申威26010处理器的稀疏矩阵向量乘异构众核实现方法 |
Non-Patent Citations (1)
Title |
---|
WEI GAO 等: ""swATOP: Automatically Optimizing Deep Learning Operatorson SW26010 Many-Core Processor"", 《48TH,INTERNATIONAL COFERENCE ON PARALLEL PROCESSING(ICPP19’)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858351A (zh) * | 2020-07-23 | 2020-10-30 | 深圳慕智科技有限公司 | 一种基于差分评估的深度学习推理引擎测试方法 |
CN112130896A (zh) * | 2020-08-17 | 2020-12-25 | 深圳云天励飞技术股份有限公司 | 神经网络模型迁移方法、装置、电子设备及存储介质 |
WO2022078400A1 (zh) * | 2020-10-16 | 2022-04-21 | 中科寒武纪科技股份有限公司 | 一种对多维数据进行处理的设备、方法和计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9383982B2 (en) | Data-parallel computation management | |
Clark et al. | Automated custom instruction generation for domain-specific processor acceleration | |
CN113703775B (zh) | 一种编译方法、装置、设备及存储介质 | |
CN110929850A (zh) | 基于申威处理器的深度学习算子自动优化系统及方法 | |
CN100465895C (zh) | 编译器、编译方法 | |
CN113283613B (zh) | 深度学习模型的生成方法、优化方法、装置、设备及介质 | |
CN105224452B (zh) | 一种针对科学计算程序静态分析性能的预测代价优化方法 | |
AU2014203218B2 (en) | Memory configuration for inter-processor communication in an MPSoC | |
CN108369591B (zh) | 用于缓存和参数化ir的系统和方法 | |
CN112527262B (zh) | 深度学习框架编译器宽度非一致自动向量优化方法 | |
Janssen et al. | A specification invariant technique for operation cost minimisation in flow-graphs | |
CN114416045A (zh) | 自动生成算子的方法和装置 | |
CN111221852A (zh) | 基于大数据的混合查询处理方法及装置 | |
CN113031954A (zh) | 代码编译方法、装置、电子设备、存储介质及异构系统 | |
WO2018192479A1 (en) | Adaptive code generation with a cost model for jit compiled execution in a database system | |
CN104572256A (zh) | 一种地震处理多核异构并行模式自适应匹配通用计算模型 | |
CN116484947B (zh) | 算子的自动生成方法、装置、设备及介质 | |
CN112558977B (zh) | 面向异构众核后端基于代价模型的多面体优化方法 | |
CN115469931B (zh) | 一种循环程序的指令优化方法、装置、系统、设备及介质 | |
JP2023123636A (ja) | ハイパーパラメータチューニング方法、装置及びプログラム | |
JP2010262471A (ja) | 並列化スケジューリング装置 | |
Mustafa et al. | Portable section-level tuning of compiler parallelized applications | |
Prokesch et al. | Towards automated generation of time-predictable code | |
CN108846248B (zh) | 一种应用建模及性能预测方法 | |
CN115329923A (zh) | 用于神经网络模型的编译方法和相关产品 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200327 |
|
RJ01 | Rejection of invention patent application after publication |