CN111026443B - 一种基于算法特征的simt系统 - Google Patents
一种基于算法特征的simt系统 Download PDFInfo
- Publication number
- CN111026443B CN111026443B CN201911125573.6A CN201911125573A CN111026443B CN 111026443 B CN111026443 B CN 111026443B CN 201911125573 A CN201911125573 A CN 201911125573A CN 111026443 B CN111026443 B CN 111026443B
- Authority
- CN
- China
- Prior art keywords
- module
- variable
- simt
- task
- feature extraction
- 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
- 238000000605 extraction Methods 0.000 claims abstract description 27
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 claims description 4
- 238000005457 optimization Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于算法特征的SIMT系统,该系统包括SIMT硬件结构约束模块(1)、算法多线程任务分解模块(2)、单线程任务树的生成模块(3)、任务变量特征提取模块(4)、任务控制特征提取模块(5)、变量的存储映射模块(6)和高效算法实现模块(7)。该系统为复杂算法在SIMT结构上的程序设计提供了有效的解决方案,该系统能够快速、高效的指导算法设计,保证算法实现在SIMT结构上执行的高性能和高可靠性。
Description
技术领域
本发明属于计算机应用领域,涉及一种基于算法特征的SIMT系统。
背景技术
随着视频图像处理、大数据、人工智能、云计算等应用需求的增长,数据量级无限增加,越来越多的处理器采用了SIMT结构,如何设计软件,将以上应用中涉及的复杂算法正确、高效、稳定的运行在SIMT结构上,成为这些热门应用可实施化的关键因素,但是,已公开资料中,尚未发现有关基于算法特征的SIMT系统。
发明内容
发明目的:本发明的目的是提供一种基于算法特征的SIMT系统,面对图像处理、大数据、人工智能、云计算等应用需求中的复杂算法,能够快速、高效的指导算法设计,保证算法实现在SIMT结构上执行的高性能和高可靠性。
技术方案:本发明提供了一种基于算法特征的SIMT系统,该系统包括SIMT硬件结构约束模块(1)、算法多线程任务分解模块(2)、单线程任务树的生成模块(3)、任务变量特征提取模块(4)、任务控制特征提取模块(5)、变量的存储映射模块(6)和高效算法实现模块(7)。
进一步的,所述SIMT硬件结构约束模块(1)根据SIMT硬件结构本身,对软件设计提出一系列约束条件,所述约束条件包括可支持的数据类型,基本操作库,存储模型,线程数量和指令集;
所述数据类型:如果复杂算法中的数据类型SIMT硬件结构不支持,则必须进行类型转换,否则无法在该结构上运行,对于有些无法转换的类型,如双精度浮点型,如果硬件本身不支持,则无法在该结构上运行;
所述基本操作库用于限制SIMT支持的操作;如加减乘除、移位、循环控制、超越函数等,超出基本库支持的操作则无法支持;
所述存储模型用于对数据的存储映射产生影响;
所述线程数量用于限制单次可处理的最大任务量;
所述指令集影响指令的选取及优化。
进一步的,所述算法多线程任务分解模块(2),基于SIMT硬件结构约束模块(1)中的线程数量,将输入的复杂算法任务进行分解,构造多线程任务,多个线程并行执行,处理多个数据任务,多个线程共用一套指令程序,任务分解完成后,输出到(3)单线程任务的生成模块。
进一步的,所述单线程任务树的生成模块(3),用于接收(2)多线程任务分解模块输出的多个线程,针对单一线程,结合SIMT硬件结构约束模块(1)中的可支持的数据类型,基本操作库,构造数据流图,生成变量树,为变量特征提取模块(4)和控制特征提取模块(5)提供依据。
进一步的,所述任务变量特征提取模块(4),基于SIMT硬件结构约束模块(1)中的可支持的数据类型,基本操作库,存储模型,对变量类型、变量关联性及变量的生命周期进行重点分析;
所述变量类型是指确定变量包括浮点、定点、向量和整型中的一种或多种;
所述变量关联性是指变量和变量之间的关联;
所述变量的生命周期是指变量在整个任务执行过程中的有效期。
进一步的,所述任务控制特征提取模块(5),基于SIMT硬件结构约束模块(1)中的基本操作库和存储模型,根据单线程变量树生成模块(3)所得的变量树,确定当前任务的流程控制结构、公共操作以及输入和输出变量;
所述流程控制结构包括顺序结构、分支结构和循环结构;
所述公共操作为提取出当前任务可以先行计算的公共操作。
所述输入和输出变量:明确当前任务的输入和输出变量,为(6)变量的存储映射模块中输入变量映射和输出变量映射提供依据。
进一步的,所述变量的存储映射模块(6),基于SIMT硬件结构约束模块(1)中的存储模型,根据变量特征提取模块(4)和控制特征提取模块(5)所得结果,将变量映射到SIMT的存储结构中,分别确定全局变量、常量、局部变量、输入变量和输出变量的存储地址、大小、访问方式。
进一步的,所述高效算法实现模块(7)基于SIMT硬件结构约束模块(1)中的指令集限制,根据控制特征提取模块(5)以及变量的存储映射模块(6)的结果,实现汇编代码的编写。
进一步的,所述高效算法实现模块(7)包括如下单元:选取最优指令单元、指令排布单元和寄存器约束约束单元。
有益效果:
本发明面对图像处理、大数据、人工智能、云计算等应用需求中的复杂算法,针对SIMT本身的硬件结构约束,提出了一种基于算法特征的SIMT系统,为复杂算法在SIMT结构上的程序设计提供了有效的解决方案,该系统能够快速、高效的指导算法设计,保证算法实现在SIMT结构上执行的高性能和高可靠性。
附图说明
图1为本发明具体实施原理图。
具体实施方式
下面对本发明做进一步详细说明。
如图1所示,提供了一种基于算法特征的SIMT系统,该系统包括SIMT硬件结构约束模块(1)、算法多线程任务分解模块(2)、单线程任务树的生成模块(3)、任务变量特征提取模块(4)、任务控制特征提取模块(5)、变量的存储映射模块(6)和高效算法实现模块(7)。
所述SIMT硬件结构约束模块(1)根据SIMT硬件结构本身,对软件设计提出一系列约束条件,所述约束条件包括可支持的数据类型,基本操作库,存储模型,线程数量和指令集;
所述基本操作库用于限制SIMT支持的操作;
所述存储模型用于对数据的存储映射产生影响;
所述线程数量用于限制单次可处理的最大任务量;
所述指令集影响指令的选取及优化。
所述算法多线程任务分解模块(2),基于SIMT硬件结构约束模块(1)中的线程数量,将输入的复杂算法任务进行分解,构造多线程任务,多个线程并行执行,处理多个数据任务,多个线程共用一套指令程序,任务分解完成后,输出到(3)单线程任务的生成模块。
所述单线程任务树的生成模块(3),用于接收(2)多线程任务分解模块输出的多个线程,针对单一线程,结合SIMT硬件结构约束模块(1)中的可支持的数据类型,基本操作库,构造数据流图,生成变量树,为变量特征提取模块(4)和控制特征提取模块(5)提供依据。
所述任务变量特征提取模块(4),基于SIMT硬件结构约束模块(1)中的可支持的数据类型,基本操作库,存储模型,对变量类型、变量关联性及变量的生命周期进行重点分析;
所述变量类型是指确定变量包括浮点、定点、向量和整型中的一种或多种;
所述变量关联性是指变量和变量之间的关联;
所述变量的生命周期是指变量在整个任务执行过程中的有效期。
所述任务控制特征提取模块(5),基于SIMT硬件结构约束模块(1)中的基本操作库和存储模型,根据单线程变量树生成模块(3)所得的变量树,确定当前任务的流程控制结构、公共操作以及输入和输出变量;
所述流程控制结构包括顺序结构、分支结构和循环结构;
所述公共操作为提取出当前任务可以先行计算的公共操作。
所述变量的存储映射模块(6),基于SIMT硬件结构约束模块(1)中的存储模型,根据变量特征提取模块(4)和控制特征提取模块(5)所得结果,将变量映射到SIMT的存储结构中,分别确定全局变量、常量、局部变量、输入变量和输出变量的存储地址、大小、访问方式。
所述高效算法实现模块(7)基于SIMT硬件结构约束模块(1)中的指令集限制,根据控制特征提取模块(5)以及变量的存储映射模块(6)的结果,实现汇编代码的编写。
所述高效算法实现模块(7)包括如下单元:选取最优指令单元、指令排布单元和寄存器约束约束单元。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细地说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种基于算法特征的SIMT系统,其特征在于,所述系统包括SIMT硬件结构约束模块(1)、算法多线程任务分解模块(2)、单线程任务树的生成模块(3)、任务变量特征提取模块(4)、任务控制特征提取模块(5)、变量的存储映射模块(6)和高效算法实现模块(7),
所述SIMT硬件结构约束模块(1)根据SIMT硬件结构本身,对软件设计提出一系列约束条件;
所述算法多线程任务分解模块(2),基于SIMT硬件结构约束模块(1)中的线程数量,将输入的复杂算法任务进行分解,构造多线程任务,多个线程并行执行,处理多个数据任务,多个线程共用一套指令程序,任务分解完成后,输出到单线程任务的生成模块(3);
所述单线程任务树的生成模块(3),用于接收多线程任务分解模块(2)输出的多个线程,针对单一线程,结合SIMT硬件结构约束模块(1)中的可支持的数据类型,基本操作库,构造数据流图,生成变量树,为变量特征提取模块(4)和控制特征提取模块(5)提供依据;
所述任务变量特征提取模块(4),基于SIMT硬件结构约束模块(1)中的可支持的数据类型,基本操作库,存储模型,对变量类型、变量关联性及变量的生命周期进行重点分析;
所述任务控制特征提取模块(5),基于SIMT硬件结构约束模块(1)中的基本操作库和存储模型,根据单线程变量树生成模块(3)所得的变量树,确定当前任务的流程控制结构、公共操作以及输入和输出变量;
所述变量的存储映射模块(6),基于SIMT硬件结构约束模块(1)中的存储模型,根据变量特征提取模块(4)和控制特征提取模块(5)所得结果,将变量映射到SIMT的存储结构中,分别确定全局变量、常量、局部变量、输入变量和输出变量的存储地址、大小、访问方式;
所述高效算法实现模块(7)基于SIMT硬件结构约束模块(1)中的指令集限制,根据控制特征提取模块(5)以及变量的存储映射模块(6)的结果,实现汇编代码的编写。
2.根据权利要求1所述的基于算法特征的SIMT系统,其特征在于,
所述基本操作库用于限制SIMT支持的操作;
所述存储模型用于对数据的存储映射产生影响;
所述线程数量用于限制单次可处理的最大任务量;
所述指令集影响指令的选取及优化。
3.根据权利要求2所述的基于算法特征的SIMT系统,其特征在于,
所述变量类型是指确定变量包括浮点、定点、向量和整型中的一种或多种;
所述变量关联性是指变量和变量之间的关联;
所述变量的生命周期是指变量在整个任务执行过程中的有效期。
4.根据权利要求2所述的基于算法特征的SIMT系统,其特征在于,
所述流程控制结构包括顺序结构、分支结构和循环结构;
所述公共操作为提取出当前任务可以先行计算的公共操作。
5.根据权利要求1所述的基于算法特征的SIMT系统,其特征在于,所述高效算法实现模块(7)包括如下单元:选取最优指令单元、指令排布单元和寄存器约束约束单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911125573.6A CN111026443B (zh) | 2019-11-18 | 2019-11-18 | 一种基于算法特征的simt系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911125573.6A CN111026443B (zh) | 2019-11-18 | 2019-11-18 | 一种基于算法特征的simt系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026443A CN111026443A (zh) | 2020-04-17 |
CN111026443B true CN111026443B (zh) | 2023-05-05 |
Family
ID=70205726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911125573.6A Active CN111026443B (zh) | 2019-11-18 | 2019-11-18 | 一种基于算法特征的simt系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026443B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567583A (zh) * | 2011-12-30 | 2012-07-11 | 中国科学院自动化研究所 | 一种视频算法和硬件实现联合开发的方法 |
CN103677761A (zh) * | 2013-12-11 | 2014-03-26 | 中国资源卫星应用中心 | 一种卫星遥感数据快速处理系统 |
CN104111818A (zh) * | 2013-04-22 | 2014-10-22 | 三星电子株式会社 | 用于批量线程处理的处理器、处理方法和代码生成设备 |
CN106462556A (zh) * | 2015-05-08 | 2017-02-22 | 华为技术有限公司 | 处理信号的方法及装置 |
CN108920412A (zh) * | 2018-06-20 | 2018-11-30 | 中国科学院计算技术研究所 | 针对异构计算机体系结构的算法自动调优方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9111059B2 (en) * | 2012-11-01 | 2015-08-18 | Stc.Unm | System and methods for dynamic management of hardware resources |
-
2019
- 2019-11-18 CN CN201911125573.6A patent/CN111026443B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567583A (zh) * | 2011-12-30 | 2012-07-11 | 中国科学院自动化研究所 | 一种视频算法和硬件实现联合开发的方法 |
CN104111818A (zh) * | 2013-04-22 | 2014-10-22 | 三星电子株式会社 | 用于批量线程处理的处理器、处理方法和代码生成设备 |
CN103677761A (zh) * | 2013-12-11 | 2014-03-26 | 中国资源卫星应用中心 | 一种卫星遥感数据快速处理系统 |
CN106462556A (zh) * | 2015-05-08 | 2017-02-22 | 华为技术有限公司 | 处理信号的方法及装置 |
CN108920412A (zh) * | 2018-06-20 | 2018-11-30 | 中国科学院计算技术研究所 | 针对异构计算机体系结构的算法自动调优方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111026443A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ho et al. | Exploiting half precision arithmetic in Nvidia GPUs | |
US10140251B2 (en) | Processor and method for executing matrix multiplication operation on processor | |
CN105487838A (zh) | 一种动态可重构处理器的任务级并行调度方法与系统 | |
JP2014106715A (ja) | 演算処理装置の制御プログラム、演算処理装置の制御方法および演算処理装置 | |
US20140244968A1 (en) | Mapping vector representations onto a predicated scalar multi-threaded system | |
CN110717584A (zh) | 神经网络编译方法、编译器、计算机设备及可读存储介质 | |
CN112559053B (zh) | 可重构处理器数据同步处理方法及装置 | |
RU2644535C2 (ru) | Архитектура параллельной вычислительной системы | |
Vokorokos et al. | A multicore architecture focused on accelerating computer vision computations | |
CN111026443B (zh) | 一种基于算法特征的simt系统 | |
US20170269931A1 (en) | Method and Computing System for Handling Instruction Execution Using Affine Register File on Graphic Processing Unit | |
CN112051981B (zh) | 一种数据流水线计算路径结构及单线程数据流水线系统 | |
Monil et al. | Laris: Targeting portability and productivity for lapack codes on extreme heterogeneous systems by using iris | |
CN111886593A (zh) | 数据处理系统和数据处理方法 | |
US10235167B2 (en) | Microprocessor with supplementary commands for binary search and associated search method | |
de Dinechin et al. | Deep learning inference on the mppa3 manycore processor | |
US20130166887A1 (en) | Data processing apparatus and data processing method | |
Murthy et al. | A compiler transformation to overlap communication with dependent computation | |
Catalán et al. | Scalable hybrid loop-and task-parallel matrix inversion for multicore processors | |
Mi et al. | An automatic parallelizer for Coarse-Grained Reconfigurable processor | |
Shao et al. | Map-reduce inspired loop parallelization on CGRA | |
Wang et al. | Energy efficient affine register file for GPU microarchitecture | |
US11714653B1 (en) | Fine-grained pipelining using index space mapping | |
JP2004021890A (ja) | データ処理装置 | |
Yang et al. | Acceleration of feature subset selection using CUDA |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |