CN114218141A - 一种针对深度学习半精度算子数据访存对界处理方法 - Google Patents
一种针对深度学习半精度算子数据访存对界处理方法 Download PDFInfo
- Publication number
- CN114218141A CN114218141A CN202110479722.XA CN202110479722A CN114218141A CN 114218141 A CN114218141 A CN 114218141A CN 202110479722 A CN202110479722 A CN 202110479722A CN 114218141 A CN114218141 A CN 114218141A
- Authority
- CN
- China
- Prior art keywords
- boundary
- dimensional
- tensor
- calculation
- pair
- 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.)
- Granted
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 21
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000004913 activation Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Machine Translation (AREA)
Abstract
本发明公开一种针对深度学习半精度算子数据访存对界处理方法,针对深度学习中算子的计算特点和张量空间分布,对多维张量的特定维度做4B对界处理,将四维张量的输入数据按照实际参与计算的维度分为不同的类,分别使用不同的半精度数据对界处理方法;具体为,根据输入的算子类型和输入数据的计算维度,选择不同的对界方法。本发明解决了异构众核平台上半精度算子DMA访存的不对界问题,且不仅能降低内存空间的占用,还能有效减少对界处理的时间,提升对界处理的性能。
Description
技术领域
本发明涉及一种针对深度学习半精度算子数据访存对界处理方法,属于深度学习技术领域。
背景技术
半精度数据类型占用内存较少,计算时间较短,能够有效地提升深度学习训练模型的性能,因而使用半精度数据类型实现算子对加速深度学习模型训练有重要作用。
异构众核平台的控制核与计算核之间的数据传输主要通过DMA请求实现,DMA仅支持4B粒度的对界,这意味着DMA请求需要保证主存地址、计算核局存地址、传输数据量、跨步大小和跨步向量块大小等参数均需满足4B粒度对界的要求,而半精度浮点类型数据的长度为2B,因此对半精度数据的DMA读取可能存在不对界的问题。
深度学习模型训练过程中的计算数据以多维张量的格式分布,通常情况下的不对界处理会对每一维度做对界处理,这种方法虽然简单易用,但会增加内存占用和对界处理时间。
发明内容
本发明的目的是针对深度学习算子实现中常见的半精度数据类型,提供一种简易通用的对界处理方法,解决异构众核平台上半精度算子DMA访存的不对界问题。
为达到上述目的,本发明采用的技术方案是:提供一种针对深度学习半精度算子数据访存对界处理方法,针对深度学习中算子的计算特点和张量空间分布,对多维张量的特定维度做4B对界处理,将四维张量的输入数据按照实际参与计算的维度分为不同的类,分别使用不同的半精度数据对界处理方法;
具体为,根据输入的算子类型和输入数据的计算维度,选择不同的对界方法:
S1、对于一维计算,计算总数据量len=N*C*H*W,若len为奇数,单个半精度浮点数为2B,不满足对界要求,在len的最末尾添加一个0,使之满足对界同时不影响计算结果;
S2、对于包括softmax、fc、pool、spatialBN的二维计算,实际计算是以二维的方式计算,对于一个N*M的二维张量,在二维张量增加一行0或增加一列0 ,使得M或N为偶数以满足对界,分别为:
当需要增加一行0时,设M=C*H*W,则在N*C*H*W的末尾增加C*H*W个0;
二维张量增加一列0的对界方法在四维张量中对界策略分为以下三种:
1、对于fc和softmax算子,设M=C*H*W,在四维张量中,在每个C*H*W后末尾加一个0;
2、 对于spatialBN算子,在每个H*W*的末尾添加一个0,以满足跨步大小对界;
3、对于pool算子,在每个W末尾添加一个0,以满足W维度4B对界,;
S3、对于三维计算,实际计算是以三维张量参与实际计算,为N、C、H*W,其中,H*W维度的对界策略可归为S2中的二维数组对界,C维度的对界策略为在每个C*H*W末尾增加H*W个0,使得C和H*W均为偶数以便满足4B对界。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明一种针对深度学习半精度算子数据访存对界处理方法,对深度学习算子的半精度类型张量的运算有较好的支持,四维以下的张量数据都可以在异构众核平台实现半精度类型的运算,解决了异构众核平台上半精度算子DMA访存的不对界问题,且不仅能降低内存空间的占用,还能有效减少对界处理的时间,提升对界处理的性能。
附图说明
附图1为本发明对界处理方法的示意图;
附图2为本发明对界处理方法的示意图;
附图3为本发明对界处理方法的示意图;
附图4为本发明对界处理方法的示意图;
附图5为本发明对界处理方法的示意图;
附图6为本发明对界处理方法的示意图;
附图7为本发明对界处理方法的示意图;
附图8为本发明对界处理方法的示意图。
具体实施方式
实施例:本发明提供一种针对深度学习半精度算子数据访存对界处理方法,针对深度学习中算子的计算特点和张量空间分布,对多维张量的特定维度做4B对界处理,将四维张量的输入数据按照实际参与计算的维度分为不同的类,分别使用不同的半精度数据对界处理方法;
具体为,根据输入的算子类型和输入数据的计算维度,选择不同的对界方法:
S1、对于一维计算(如激活函数,四维张量在激活函数中的计算实际是按照一维计算),计算总数据量len=N*C*H*W,若len为奇数,单个半精度浮点数为2B,不满足对界要求,在len的最末尾添加一个0,使之满足对界同时不影响计算结果;
S2、对于包括softmax、fc、pool、spatialBN的二维计算,实际计算是以二维的方式计算,对于一个N*M的二维张量,在二维张量增加一行0或增加一列0 ,使得M或N为偶数以满足对界,分别为:
当需要增加一行0时,设M=C*H*W,则在N*C*H*W的末尾增加C*H*W个0,如图4所示;
二维张量增加一列0的对界方法在四维张量中对界策略分为以下三种:
1、对于fc和softmax算子,设M=C*H*W,在四维张量中,在每个C*H*W后末尾加一个0,如图5所示;
2、 对于spatialBN算子,在每个H*W*的末尾添加一个0,以满足跨步大小对界,如图6所示;
3、对于pool算子,在每个W末尾添加一个0,以满足W维度4B对界,如图7所示;
S3、对于三维计算(spatial BN算子,某些情况下spatialBN算子是以三维张量参与实际计算),实际计算是以三维张量参与实际计算,为N、C、H*W,其中,H*W维度的对界策略可归为S2中的二维数组对界,C维度的对界策略为在每个C*H*W末尾增加H*W个0,使得C和H*W均为偶数以便满足4B对界,如图8所示。
对上述实施例的进一步解释如下:
提供了不同维度的深度学习算子半精度类型张量数据的对界处理策略,针对深度学习中算子的计算特点和张量空间分布,对多维张量的特定维度做4B对界处理,将四维张量的输入数据按照实际参与计算的维度分为不同的类,分别使用不同的半精度数据对界处理方法,该方法对深度学习算子的半精度类型张量的运算有较好的支持,四维以下的张量数据都可以在异构众核平台实现半精度类型的运算。
半精度数据长度大小为2B,异构众核加速平台的4B大小对界要求,在实现半精度数据类型算子时,就要求总数据量必须为偶数,同时在张量的计算维度上也需要保证对界,而实际算子的计算是任意数据量大小,因此需要设计一套基于不同维度的半精度数据的对界策略。
深度学习算子计算以乘法和加法为主,张量中补零不会改变算子的计算结果,因此主要采用在相应维度补零实现DMA存取的4B粒度对界;通过对界处理后,运算核心能够使用DMA加载半精度类型数据进行半精度算子的运算过程。
以深度学习中的卷积神经网络模型为例,输入数据为NCHW格式的四维张量,模型中算子按照实际计算的维度分为三类:
激活函数等算子实际是以一维的形式进行计算;
Softmax、FC和Pool等算子实际是以二维的形式参与计算;
SpatialBN等算子以三维的形式参与计算;
针对这三类算子,本发明提供了三种对界处理方法,如下所示:
(一)一维(激活函数等)
四维张量在激活函数中的计算实际是按照一维计算,计算总数据量len=N*C*H*W,若len为奇数,单个半精度浮点数为2B,不满足对界要求,在len的最末尾添加一个0,使之满足对界,如图1所示。
(二)二维(softmax、fc、pool、spatialBN等)
Softmax和FC算子的输入输出是以四维张量的形式存储,实际计算是以二维的方式计算,对于一个N*M的二维张量,M或N需为偶数以满足对界,即在二维张量增加一行0或增加一列0 ;
fc和softmax在某些方式对界处理时需要增加一行0,令M=C*H*W,在N*C*H*W的末尾增加C*H*W个0,如图4所示;
二维张量增加一列0的对界方法在四维张量中对界策略具体分三种:
1、fc和softmax算子在某些方式对界处理时需要增加一列0,令M=C*H*W,在四维张量中是在每个C*H*W后末尾加一个0,如图5所示;
2、 spatialBN在计算时需要满足跨步大小对界,其四维对界形式是在每个H*W*的末尾添加一个0,如图6所示;
3、pool在计算时W维度需要4B对界,在每个W末尾添加一个0,若图7所示。
(三)三维(spatial BN)
spatialBN算子是以三维张量参与实际计算,分为N、C、H*W、C和H*W均应为偶数以便满足4B对界,H*W维度的对界策略可归为上图二维数组对界,C维度的对界策略是在每个C*H*W末尾增加H*W个0,如图8所示。
采用上述一种针对深度学习半精度算子数据访存对界处理方法时,其对深度学习算子的半精度类型张量的运算有较好的支持,四维以下的张量数据都可以在异构众核平台实现半精度类型的运算,解决了异构众核平台上半精度算子DMA访存的不对界问题,且不仅能降低内存空间的占用,还能有效减少对界处理的时间,提升对界处理的性能。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
异构众核平台:一种包含数个控制核和众多计算核的通用处理器,控制核与计算核之间共享内存,计算核主要通过DMA方式将数据从主存传输到局部存储。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种针对深度学习半精度算子数据访存对界处理方法,其特征在于:针对深度学习中算子的计算特点和张量空间分布,对多维张量的特定维度做4B对界处理,将四维张量的输入数据按照实际参与计算的维度分为不同的类,分别使用不同的半精度数据对界处理方法;
具体为,根据输入的算子类型和输入数据的计算维度,选择不同的对界方法:
S1、对于一维计算(如激活函数),计算总数据量len=N*C*H*W,若len为奇数,单个半精度浮点数为2B,不满足对界要求,在len的最末尾添加一个0,使之满足对界同时不影响计算结果;
S2、对于包括softmax、fc、pool、spatialBN的二维计算,实际计算是以二维的方式计算,对于一个N*M的二维张量,在二维张量增加一行0或增加一列0 ,使得M或N为偶数以满足对界,分别为:
当需要增加一行0时,设M=C*H*W,则在N*C*H*W的末尾增加C*H*W个0;
二维张量增加一列0的对界方法在四维张量中对界策略分为以下三种:
1、对于fc和softmax算子,设M=C*H*W,在四维张量中,在每个C*H*W后末尾加一个0;
2、 对于spatialBN算子,在每个H*W*的末尾添加一个0,以满足跨步大小对界;
3、对于pool算子,在每个W末尾添加一个0,以满足W维度4B对界,;
S3、对于三维计算,实际计算是以三维张量参与实际计算,为N、C、H*W,其中,H*W维度的对界策略可归为S2中的二维数组对界,C维度的对界策略为在每个C*H*W末尾增加H*W个0,使得C和H*W均为偶数以便满足4B对界。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110479722.XA CN114218141B (zh) | 2021-04-30 | 2021-04-30 | 一种针对深度学习半精度算子数据访存对界处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110479722.XA CN114218141B (zh) | 2021-04-30 | 2021-04-30 | 一种针对深度学习半精度算子数据访存对界处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114218141A true CN114218141A (zh) | 2022-03-22 |
CN114218141B CN114218141B (zh) | 2024-02-02 |
Family
ID=80695829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110479722.XA Active CN114218141B (zh) | 2021-04-30 | 2021-04-30 | 一种针对深度学习半精度算子数据访存对界处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114218141B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451097A (zh) * | 2017-08-04 | 2017-12-08 | 中国科学院软件研究所 | 国产申威26010众核处理器上多维fft的高性能实现方法 |
EP3370206A1 (en) * | 2017-03-02 | 2018-09-05 | Siemens Healthcare GmbH | Spatially consistent multi-scale anatomical landmark detection in incomplete 3d-ct data |
US20200293595A1 (en) * | 2019-03-15 | 2020-09-17 | Tensor Deep Learning Lab L.L.C. | GPU-based Third-order Low Rank Tensor Calculation Method and Apparatus |
CN111694567A (zh) * | 2019-03-13 | 2020-09-22 | 北京海益同展信息科技有限公司 | 一种数据处理方法及装置、存储介质 |
-
2021
- 2021-04-30 CN CN202110479722.XA patent/CN114218141B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3370206A1 (en) * | 2017-03-02 | 2018-09-05 | Siemens Healthcare GmbH | Spatially consistent multi-scale anatomical landmark detection in incomplete 3d-ct data |
CN107451097A (zh) * | 2017-08-04 | 2017-12-08 | 中国科学院软件研究所 | 国产申威26010众核处理器上多维fft的高性能实现方法 |
CN111694567A (zh) * | 2019-03-13 | 2020-09-22 | 北京海益同展信息科技有限公司 | 一种数据处理方法及装置、存储介质 |
US20200293595A1 (en) * | 2019-03-15 | 2020-09-17 | Tensor Deep Learning Lab L.L.C. | GPU-based Third-order Low Rank Tensor Calculation Method and Apparatus |
Non-Patent Citations (1)
Title |
---|
崔进鲜;庞建民;岳峰;张一弛;张刚;: "动态二进制翻译中不对界问题的处理", 计算机工程与科学, no. 09 * |
Also Published As
Publication number | Publication date |
---|---|
CN114218141B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11321423B2 (en) | Operation accelerator | |
CN107862650B (zh) | 加速计算二维图像cnn卷积的方法 | |
US11188744B2 (en) | Spatially sparse convolutional neural networks for inking applications | |
CN112215332B (zh) | 神经网络结构的搜索方法、图像处理方法和装置 | |
CN112633490B (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
WO2022067508A1 (zh) | 一种神经网络加速器、加速方法以及装置 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN111783937A (zh) | 一种神经网络构建方法以及系统 | |
CN109754359A (zh) | 一种应用于卷积神经网络的池化处理的方法及系统 | |
CN109313663A (zh) | 人工智能计算辅助处理装置、方法、存储介质、及终端 | |
CN111931901A (zh) | 一种神经网络构建方法以及装置 | |
CN114995782B (zh) | 数据处理方法、装置、设备和可读存储介质 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
CN112005251A (zh) | 运算处理装置 | |
WO2023123919A1 (zh) | 数据处理电路、数据处理方法及相关产品 | |
CN110929854B (zh) | 一种数据处理方法、装置及硬件加速器 | |
CN111767243A (zh) | 数据处理方法、相关设备及计算机可读介质 | |
CN116227209A (zh) | 一种点云数据多维线性差值方法、终端设备及存储介质 | |
US20230306236A1 (en) | Device and method for executing lstm neural network operation | |
CN117217274B (zh) | 向量处理器、神经网络加速器、芯片及电子设备 | |
CN114218141B (zh) | 一种针对深度学习半精度算子数据访存对界处理方法 | |
CN116185937B (zh) | 基于众核处理器多层互联架构的二元运算访存优化方法及装置 | |
CN113704691B (zh) | 一种申威众核处理器的小规模对称矩阵并行三对角化方法 | |
US20210224632A1 (en) | Methods, devices, chips, electronic apparatuses, and storage media for processing data | |
CN113868592A (zh) | 基于g2d实现卷积计算的方法及系统 |
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 |