CN110377342B - 基于卷积神经网络的显存处理方法、装置及存储介质 - Google Patents

基于卷积神经网络的显存处理方法、装置及存储介质 Download PDF

Info

Publication number
CN110377342B
CN110377342B CN201910497396.8A CN201910497396A CN110377342B CN 110377342 B CN110377342 B CN 110377342B CN 201910497396 A CN201910497396 A CN 201910497396A CN 110377342 B CN110377342 B CN 110377342B
Authority
CN
China
Prior art keywords
data
storage space
temporary storage
processed
video memory
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
Application number
CN201910497396.8A
Other languages
English (en)
Other versions
CN110377342A (zh
Inventor
张萌
唐义君
高鹏
郑强
谢国彤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910497396.8A priority Critical patent/CN110377342B/zh
Publication of CN110377342A publication Critical patent/CN110377342A/zh
Priority to PCT/CN2019/118467 priority patent/WO2020248499A1/zh
Priority to JP2021506309A priority patent/JP7174831B2/ja
Application granted granted Critical
Publication of CN110377342B publication Critical patent/CN110377342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1407General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及神经网络领域,提出一种基于卷积神经网络的显存处理方法、装置及存储介质,其中的方法包括:创建临时存储空间,所述临时存储空间为用于临时存放输入数据、输出数据、输入误差和输出误差的存储空间;根据待处理数据的类型和方向,调取与所述待处理数据对应的临时存储空间,并将所述待处理数据读至调取的临时存储空间中;在所述调取的临时存储空间内,对所述待处理数据进行预设处理;根据处理后的数据的类型及方向,将所述调取的临时存储空间内的数据写入指定的外部存储空间中。本发明能够大量节省显存,提高GPU计算的并行度。

Description

基于卷积神经网络的显存处理方法、装置及存储介质
技术领域
本发明涉及卷积神经网络技术领域,尤其涉及一种基于卷积神经网络的显存处理方法、装置及计算机可读存储介质。
背景技术
显存是GPU显示核心的一个临时存储器,用来暂存需要处理的核心数据。作用与CPU和内存的作用是一样的。显存容量的大小决定着显存临时存储数据的能力,在显卡核心足够强劲的前提下,大显存能减少读取数据的次数,降低延迟。目前,在卷积神经网络模型训练过程中,模型输入输出数据被重复存储在不同的显存空间,导致不必要的显存开销,降低模型训练批量处理数量,从而影响模型训练的精度。
例如,concat层和addition层是目前深度学习分类网络和目标检测网络常用到的一些层。concat层用于对多个输入数据在特征维度进行合并处理,addition层用于对多个输入数据进行累加处理。现有的深度学习网络训练框架如Caffe、TensorFlow等,都没有对concat和addition层进行显存优化,使得输入输出数据被重复存储在不同的显存空间内,带来不必要的显存开销,导致模型训练批处理的数量降低,从而影响模型训练的精度。同时,显存空间还会限制自动化机器学习技术autoML的优化方案搜索空间等。
发明内容
本发明提供一种基于卷积神经网络的显存处理方法、装置及计算机可读存储介质,其主要目的在于通过创建共享临时空间,根据需要处理的数据类型及指示,将数据读或写至对应的临时存储空间内,相比现有框架,用户可随意混搭各种模块形成新的CNN结构,能够大量节省显存,提高GPU计算的并行度。
为实现上述目的,本发明提供一种基于卷积神经网络的显存处理方法,应用于电子装置,方法包括:
创建临时存储空间,所述临时存储空间为用于临时存放输入数据、输出数据、输入误差和输出误差的存储空间;
根据待处理数据的类型和方向,调取与所述待处理数据对应的临时存储空间,并将所述待处理数据读至调取的临时存储空间中;
在所述调取的临时存储空间内,对所述待处理数据进行预设处理;
根据处理后的数据的类型及方向,将所述调取的临时存储空间内的数据写入指定的外部存储空间中。
优选地,所述临时存储空间,包括输入数据临时存储空间、输出数据临时存储空间、输入误差临时存储空间和输出误差临时存储空间。
优选地,对所述待处理数据进行预设处理包括:对所述待处理数据进行卷积处理、叠加处理、相乘处理或者积分运算中的至少一项。
优选地,所述将所述调取的临时存储空间内的数据写入指定的外部存储空间中的步骤包括:根据配置的写入方式将所述临时存储空间内的处理后的数据写入指定的外部存储空间中;其中,所述写入方式包括addition模式和concat模式。
优选地,所述数据的类型包括输入数据、输出数据、输入误差和输出误差;所述数据的方向包括输入和输出。
此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器和处理器,所述存储器中包括基于卷积神经网络的显存处理程序,所述基于卷积神经网络的显存处理程序被所述处理器执行时实现如下步骤:
创建临时存储空间,所述临时存储空间为用于临时存放输入数据、输出数据、输入误差和输出误差的存储空间;
根据待处理数据的类型和方向,调取与所述待处理数据对应的临时存储空间,并将所述待处理数据读至调取的临时存储空间中;
在所述调取的临时存储空间内,对所述待处理数据进行预设处理;
根据处理后的数据的类型及方向,将所述调取的临时存储空间内的数据写入指定的外部存储空间中。
优选地,所述临时存储空间,包括输入数据临时存储空间、输出数据临时存储空间、输入误差临时存储空间和输出误差临时存储空间。
优选地,对所述待处理数据进行预设处理包括:对所述待处理数据进行卷积处理、叠加处理、相乘处理或者积分运算中的至少一项。
优选地,所述将所述调取的临时存储空间内的数据写入指定的外部存储空间中的步骤包括:
根据配置的写入方式将所述临时存储空间内的处理后的数据写入指定的外部存储空间中;
其中,所述写入方式包括addition模式和concat模式。
外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括基于卷积神经网络的显存处理程序,所述基于卷积神经网络的显存处理程序被处理器执行时,实现如上所述的基于卷积神经网络的显存处理方法的步骤。
本发明提出的基于卷积神经网络的显存处理方法、电子装置及计算机可读存储介质,通过设置共享的临时存储空间,根据需要处理的数据类型及指示,调取对应的临时存储空间,并将数据读或写至对应的临时存储空间内进行运算处理,可适用于CNN算法,相比其他框架可随意混搭Dense,Residual,Inception模块来形成新的CNN结构,可节省约一半的显存,同时还提高GPU计算的平行度。
附图说明
图1为根据本发明实施的基于卷积神经网络的显存处理方法的应用环境示意图;
图2为图1中基于卷积神经网络的显存处理程序具体实施例的模块示意图;
图3为现有CNN网络结构中的部分结构示意图;
图4为图3经显存优化处理后的部分结构示意图;
图5为根据本发明实施例的基于卷积神经网络的显存处理方法的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于卷积神经网络的显存处理方法,应用于一种电子装置1。参照图1所示,为本发明基于卷积神经网络的显存处理方法较佳实施例的应用环境示意图。
在本实施例中,电子装置1可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。
该电子装置1包括:处理器12、存储器11、网络接口14及通信总线15。
存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器11等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述电子装置1的外部存储器11,例如所述电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,所述存储器11的可读存储介质通常用于存储安装于所述电子装置1的基于卷积神经网络的显存处理程序10等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行基于卷积神经网络的显存处理程序10等。
网络接口14可选地可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该电子装置1与其他电子设备之间建立通信连接。
通信总线15用于实现这些组件之间的连接通信。
图1仅示出了具有组件11-15的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该电子装置1还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
可选地,该电子装置1还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。显示器用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
可选地,该电子装置1还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。
此外,该电子装置1的显示器的面积可以与所述触摸传感器的面积相同,也可以不同。可选地,将显示器与所述触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。
可选地,该电子装置1还可以包括射频(Radio Frequency,RF)电路,传感器、音频电路等等,在此不再赘述。
在图1所示的装置实施例中,作为一种计算机存储介质的存储器11中可以包括操作系统、以及基于卷积神经网络的显存处理程序10等;其中,处理器12执行存储器11中存储的基于卷积神经网络的显存处理程序10时实现如下所示几个步骤:
步骤一:创建临时存储空间,所述临时存储空间为用于临时存放输入数据、输出数据、输入误差和输出误差的存储空间;
步骤二:根据待处理数据的类型和方向,调取与所述待处理数据对应的临时存储空间,并将所述待处理数据读至调取的临时存储空间中;
步骤三:在调取的临时存储空间内,对所述待处理数据进行预设处理;
步骤四:根据处理后的数据的类型及方向,将所述调取的临时存储空间内的数据写入指定的外部存储空间中。
在步骤一中,临时存储空间为临时存放输入数据、输出数据、输入误差和输出误差的存储空间;对应的临时存储空间包括输入数据临时存储空间、输出数据临时存储空间、输入误差临时存储空间和输出误差临时存储空间。
该临时存储空间可设置在显存内,显存用于存放模型或数据,显存越大,所能运行的网络也就越大,常见的显卡主要有以下几种:
Figure BDA0002089079330000051
Figure BDA0002089079330000061
其中,显存的存储单位主要包括以下几种:
1Byte=8bit
1K=1024Byte
1KB=1000Byte
1M=1024K
1MB=1000KB
1G=1024M
1GB=1000GB
10K=10*1024Byte
10KB=10000Byte
常见的数值类型及其大小如下表所示:
类型 大小 备注
Int8 1个字节 又名Byte
Int16 2个字节 又名short
Int32 4个字节 又名int
Int64 8个字节 又名long
Float32 4个字节 单精度浮点数
Float16 2个字节 半精度浮点数
在上述列表中,Int为整型数值、long为长整型数值,float为浮点型数值(single为单精度浮点型数值,double为双精度浮点型数值)。
在步骤二中,当待处理数据的类型为误差,方向为输出时,可根据输出误差数据调取对应的输出误差临时存储空间,并将该输出误差读至该输出误差临时存放空间中进行处理。
对所述待处理数据进行预设处理包括:对所述待处理数据进行卷积处理、叠加处理、相乘处理或者积分运算中的至少一项。
例如,在对数据进行卷积处理时,主要是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列x(n)和h(n),则卷积的结果,
Figure BDA0002089079330000071
其中,*表示卷积。当时序n=0时,序列h(-i)是h(i)的时序i取反的结果;时序取反使得h(i)以纵轴为中心翻转180度,所以这种相乘后求和的计算法称为卷积和,简称卷积。另外,n是使h(-i)位移的量,不同的n对应不同的卷积结果。
如果卷积的变量是两个函数x(t)和h(t),则卷积的计算变为
Figure BDA0002089079330000072
其中,p是积分变量,积分也是求和,t是使函数h(-p)位移的量,*表示卷积。
类似上述这些运算均可在临时存储空间内进行,以达到节省显存的目的。
在步骤四中,将所述调取的临时存储空间内的数据写入指定的外部存储空间中的步骤包括:根据配置的写入方式将所述临时存储空间内的处理后的数据写入指定的外部存储空间中;其中,所述写入方式包括addition模式和concat模式。
另外,数据的类型包括输入数据、输出数据、输入误差和输出误差;所述数据的方向包括输入和输出。
具体地,可根据用户配置的写入方式(Addition\Concat)来用不同的方式向指定内存空间写数据。比如:当用户配置Addition模式时,以累加的方式将相应的临时存储空间内的数据写入指定存储空间;当用户配置Concat模式时,根据用户配置的数据长度信息,将相应的临时存储空间的数据有序间隔地写入指定存储空间内。
以下将以卷积神经网络作为示例,对本发明的基于卷积神经网络的显存处理程序的执行进行详细阐述。
要获取神经网络每一层输出的显存占用情况,需要计算每一层的feature map的形状,且保存梯度用于反向传播,显存占用与batch size成正比。整个神经网络的显存占用通过:模型显存+batch size*每个样本的显存占用,在模型较小的情况下,约等于batchsize*每个样本的显存占用。
为节省卷积神经网络模型在训练过程中对显存的占用,可以对concat和addition层等进行显存优化,例如,使多个输入数据在对应的临时存储空间内进行合并处理,多个输入数据在对应的临时存储空间内进行累加处理等。
例如,图3为未经显存优化处理的现有CNN网络当中的部分结构。
如图3所示,暂时不考虑后向传播,以向前传输为例,卷积层的输入数据大小为32*32*3,如果batch size为5,则该层的输入数据大小为32*32*3*5,各个输入输出数据大小计算方式同上。所以,如果数据采用float表示,则未经优化处理的该CNN网络部分需要消耗的显存为1980kb。
利用本发明的基于卷积神经网络的显存处理方法对上述部分进行显存优化,优化后的结构图如图4所示。
因为暂时不考虑后向传播,因此只需考虑调用输出数据临时存储空间,该临时存储空间的尺寸或大小设置为CNN网络中卷积层输出数据的最大尺寸,在该实施例中为32*32*16。图4中虚线框内的卷积层输出数据均不分配实际的显存空间,而是调用输出数据临时存储空间。
可知,当batch size为5,且数据使用float进行表示时,经显存优化后,该CNN网络部分需要消耗的显存为1340kb,可节省显存32.3%。
上述实施例提出的电子装置1,通过设置共享的临时存储空间,根据需要处理的数据类型及指示,调取对应的临时存储空间,并将数据读或写至对应的临时存储空间内进行运算处理,可适用于CNN算法,相比其他框架可随意混搭Dense,Residual,Inception模块来形成新的CNN结构,可节省约一半的显存,同时还提高GPU计算的平行度。
在其他实施例中,基于卷积神经网络的显存处理程序10还可设置共享临时存储空间管理器,该管理器包含用于临时存放输入数据、输出数据、输入误差和输出误差的临时存储空间。该管理器提供用于获取和操作相应临时存储空间的一些子模块,一个或者多个模块被存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。参照图2所示,为图1中基于卷积神经网络的显存处理程序10较佳实施例的程序模块图。所述基于卷积神经网络的显存处理程序10可以被分割为:
临时空间获取子模块210:根据模块输入的数据类型(数据或误差)和方向(输入或输出),返回相应的临时存储空间。
比如,向该临时空间获取子模块输入:“误差和输出”,则该子模块调取并输出对应的:输出误差临时存储空间。
读数据子模块220:根据向该读数据子模块输入的数据类型(数据或误差)和方向(输入或输出),将指定存储空间内的数据读出到相应的临时存储空间中,并输出该临时存储空间。
比如,向该读数据子模块输入:“误差和输出”,则该模块将指定存储空间内的数据读出到输出误差临时存储空间,并输出:输出误差临时存储空间。
上述指定空间主要指待处理的数据当前所存在的存储空间,待处理的数据从该指定空间内读出至临时存储空间内进行处理,下同。
写数据子模块230:根据该写数据子模块输入的数据类型(数据或误差)和方向(输入或输出),将相应的临时存储空间的数据写入指定临时存储空间。
比如:向该写数据子模块输入:“误差和输入”,则该写数据模块将输入误差临时存储空间的数据写入指定存储空间内。
需要说明的是,该写数据子模块还会根据用户配置的写入方式(Addition\Concat)来用不同的方式向指定内存空间写数据。比如:当用户配置Addition模式时,该写数据子模块会以累加的方式将相应的临时存储空间内的数据写入指定存储空间;当用户配置Concat模式时,该写数据子模块根据用户配置的数据长度信息,将相应的临时存储空间的数据有序间隔地写入指定存储空间内。
此外,本发明还提供一种基于卷积神经网络的显存处理方法。参照图5所示,为本发明基于卷积神经网络的显存处理方法较佳实施例的流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,基于卷积神经网络的显存处理方法包括:
S110:创建临时存储空间,所述临时存储空间为用于临时存放输入数据、输出数据、输入误差和输出误差的存储空间。
在该步骤中,临时存储空间为临时存放输入数据、输出数据、输入误差和输出误差的存储空间;对应的临时存储空间包括输入数据临时存储空间、输出数据临时存储空间、输入误差临时存储空间和输出误差临时存储空间。
该临时存储空间可设置在显存内,显存用于存放模型或数据,显存越大,所能运行的网络也就越大,常见的显卡主要有以下几种:
显卡 显存(G) 处理能力(Tflops)
GeForce GTX 1080 8 8.2
GeForce GTX 1080 Ti 11 10.6
Nvidia TITAN X 12 10.2
Nvidia TITAN Xp 12 10.8
GeForce GTX 1080 Titan 12 4.5
K80GPU Accelerator 12 5.6-8.8
其中,显存的存储单位主要包括以下几种:
1Byte=8bit
1K=1024Byte
1KB=1000Byte
1M=1024K
1MB=1000KB
1G=1024M
1GB=1000GB
10K=10*1024Byte
10KB=10000Byte
常见的数值类型及其大小如下表所示:
Figure BDA0002089079330000101
Figure BDA0002089079330000111
在上述列表中,Int为整型数值、long为长整型数值,float为浮点型数值(single为单精度浮点型数值,double为双精度浮点型数值)。
S120:根据待处理数据的类型和方向,调取与所述待处理数据对应的临时存储空间,并将所述待处理数据读至调取的临时存储空间中。
例如,当待处理数据的类型为误差,方向为输出时,可根据输出误差数据调取对应的输出误差临时存储空间,并将该输出误差读至该输出误差临时存放空间中进行处理。
S130:在调取的临时存储空间内,对所述待处理数据进行预设处理。
其中,对所述待处理数据进行预设处理包括:对所述待处理数据进行卷积处理、叠加处理、相乘处理或者积分运算中的至少一项。
例如,在对数据进行卷积处理时,主要是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列x(n)和h(n),则卷积的结果,
Figure BDA0002089079330000112
其中,*表示卷积。当时序n=0时,序列h(-i)是h(i)的时序i取反的结果;时序取反使得h(i)以纵轴为中心翻转180度,所以这种相乘后求和的计算法称为卷积和,简称卷积。另外,n是使h(-i)位移的量,不同的n对应不同的卷积结果。
如果卷积的变量是两个函数x(t)和h(t),则卷积的计算变为
Figure BDA0002089079330000113
其中,p是积分变量,积分也是求和,t是使函数h(-p)位移的量,*表示卷积。
类似上述这些运算均可在临时存储空间内进行,以达到节省显存的目的。
S140:根据处理后的数据的类型及方向,将所述调取的临时存储空间内的数据写入指定的外部存储空间中。
在该步骤中,将所述调取的临时存储空间内的数据写入指定的外部存储空间中的步骤包括:根据配置的写入方式将所述临时存储空间内的处理后的数据写入指定的外部存储空间中;写入方式包括addition模式和concat模式。
另外,数据的类型包括输入数据、输出数据、输入误差和输出误差;所述数据的方向包括输入和输出。
具体地,可根据用户配置的写入方式(Addition\Concat)来用不同的方式向指定内存空间写数据。比如:当用户配置Addition模式时,以累加的方式将相应的临时存储空间内的数据写入指定存储空间;当用户配置Concat模式时,根据用户配置的数据长度信息,将相应的临时存储空间的数据有序间隔地写入指定存储空间内。
以下将以卷积神经网络作为示例,对本发明的基于卷积神经网络的显存处理方法进行详细阐述。
要获取神经网络每一层输出的显存占用情况,需要计算每一层的feature map的形状,且保存梯度用于反向传播,显存占用与batch size成正比。整个神经网络的显存占用通过:模型显存+batch size*每个样本的显存占用,在模型较小的情况下,约等于batchsize*每个样本的显存占用。
为节省卷积神经网络模型在训练过程中对显存的占用,可以对concat和addition层等进行显存优化,例如,使多个输入数据在对应的临时存储空间内进行合并处理,多个输入数据在对应的临时存储空间内进行累加处理等。
例如,图3为未经显存优化处理的现有CNN网络当中的部分结构。
如图3所示,暂时不考虑后向传播,以向前传输为例,卷积层的输入数据大小为32*32*3,如果batch size为5,则该层的输入数据大小为32*32*3*5,各个输入输出数据大小计算方式同上。所以,如果数据采用float表示,则未经优化处理的该CNN网络部分需要消耗的显存为1980kb。
利用本发明的基于卷积神经网络的显存处理方法对上述部分进行显存优化,优化后的结构图如图4所示。
因为暂时不考虑后向传播,因此只需考虑调用输出数据临时存储空间,该临时存储空间的尺寸或大小设置为CNN网络中卷积层输出数据的最大尺寸,在该实施例中为32*32*16。图4中虚线框内的卷积层输出数据均不分配实际的显存空间,而是调用输出数据临时存储空间。
可知,当batch size为5,且数据使用float进行表示时,经显存优化后,该CNN网络部分需要消耗的显存为1340kb,可节省显存32.3%。
上述实施例提出的基于卷积神经的显存处理方法,通过设置共享的临时存储空间,根据需要处理的数据类型及指示,调取对应的临时存储空间,并将数据读或写至对应的临时存储空间内进行运算处理,可适用于CNN算法,相比其他框架可随意混搭Dense,Residual,Inception模块来形成新的CNN结构,可节省约一半的显存,同时还提高GPU计算的平行度。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中包括基于卷积神经的显存处理程序,所述基于卷积神经的显存处理程序被处理器执行时实现如下操作:
创建临时存储空间,所述临时存储空间为用于临时存放输入数据、输出数据、输入误差和输出误差的存储空间;
根据待处理数据的类型和方向,调取与所述待处理数据对应的临时存储空间,并将所述待处理数据读至调取的临时存储空间中;
在所述调取的临时存储空间内,对所述待处理数据进行预设处理;
根据处理后的数据的类型及方向,将所述调取的临时存储空间内的数据写入指定的外部存储空间中。
优选地,所述临时存储空间,包括输入数据临时存储空间、输出数据临时存储空间、输入误差临时存储空间和输出误差临时存储空间。
优选地,对所述待处理数据进行预设处理包括:对所述待处理数据进行卷积处理、叠加处理、相乘处理或者积分运算中的至少一项。
优选地,所述将所述调取的临时存储空间内的数据写入指定的外部存储空间中的步骤包括:根据配置的写入方式将所述临时存储空间内的处理后的数据写入指定的外部存储空间中;其中,所述写入方式包括addition模式和concat模式。
优选地,所述数据的类型包括输入数据、输出数据、输入误差和输出误差;所述数据的方向包括输入和输出。
本发明之计算机可读存储介质的具体实施方式与上述基于卷积神经网络的显存处理方法、电子装置的具体实施方式大致相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种基于卷积神经网络的显存处理方法,应用于电子装置,其特征在于,所述方法包括:
创建临时存储空间,所述临时存储空间为用于临时存放输入数据、输出数据、输入误差和输出误差的存储空间;
根据待处理数据的类型和方向,调取与所述待处理数据对应的临时存储空间,并将所述待处理数据读至调取的临时存储空间中;
在所述调取的临时存储空间内,对所述待处理数据进行预设处理;所述预设 处理包括对所述待处理数据进行卷积处理、叠加处理、相乘处理或者积分运算中的至少一项;
根据处理后的数据的类型及方向,将所述调取的临时存储空间内的数据写入指定的外部存储空间中;
所述临时存储空间,包括输入数据临时存储空间、输出数据临时存储空间、输入误差临时存储空间和输出误差临时存储空间。
2.如权利要求1所述的基于卷积神经网络的显存处理方法,其特征在于,
所述将所述调取的临时存储空间内的数据写入指定的外部存储空间中的步骤包括:
根据配置的写入方式将所述临时存储空间内的处理后的数据写入指定的外部存储空间中;其中,所述写入方式包括addition模式和concat模式。
3.如权利要求1所述的基于卷积神经网络的显存处理方法,其特征在于,
所述数据的类型包括输入数据、输出数据、输入误差和输出误差;
所述数据的方向包括输入和输出。
4.一种电子装置,其特征在于,该电子装置包括:存储器和处理器,所述存储器中包括基于卷积神经网络的显存处理程序,所述基于卷积神经网络的显存处理程序被所述处理器执行时实现如下步骤:
创建临时存储空间,所述临时存储空间为用于临时存放输入数据、输出数据、输入误差和输出误差的存储空间;
根据待处理数据的类型和方向,调取与所述待处理数据对应的临时存储空间,并将所述待处理数据读至调取的临时存储空间中;
在所述调取的临时存储空间内,对所述待处理数据进行预设处理;所述预设 处理包括对所述待处理数据进行卷积处理、叠加处理、相乘处理或者积分运算中的至少一项;
根据处理后的数据的类型及方向,将所述调取的临时存储空间内的数据写入指定的外部存储空间中;
所述临时存储空间,包括输入数据临时存储空间、输出数据临时存储空间、输入误差临时存储空间和输出误差临时存储空间。
5.如权利要求4所述的电子装置,其特征在于,
所述将所述调取的临时存储空间内的数据写入指定的外部存储空间中的步骤包括:
根据配置的写入方式将所述临时存储空间内的处理后的数据写入指定的外部存储空间中;
其中,所述写入方式包括addition模式和concat模式。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括基于卷积神经网络的显存处理程序,所述基于卷积神经网络的显存处理程序被处理器执行时,实现如权利要求1至3中任一项所述的基于卷积神经网络的显存处理方法的步骤。
CN201910497396.8A 2019-06-10 2019-06-10 基于卷积神经网络的显存处理方法、装置及存储介质 Active CN110377342B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910497396.8A CN110377342B (zh) 2019-06-10 2019-06-10 基于卷积神经网络的显存处理方法、装置及存储介质
PCT/CN2019/118467 WO2020248499A1 (zh) 2019-06-10 2019-11-14 基于卷积神经网络的显存处理方法、装置及存储介质
JP2021506309A JP7174831B2 (ja) 2019-06-10 2019-11-14 畳み込みニューラルネットワークに基づくビデオメモリ処理方法、装置及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910497396.8A CN110377342B (zh) 2019-06-10 2019-06-10 基于卷积神经网络的显存处理方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN110377342A CN110377342A (zh) 2019-10-25
CN110377342B true CN110377342B (zh) 2022-08-30

Family

ID=68249933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910497396.8A Active CN110377342B (zh) 2019-06-10 2019-06-10 基于卷积神经网络的显存处理方法、装置及存储介质

Country Status (3)

Country Link
JP (1) JP7174831B2 (zh)
CN (1) CN110377342B (zh)
WO (1) WO2020248499A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377342B (zh) * 2019-06-10 2022-08-30 平安科技(深圳)有限公司 基于卷积神经网络的显存处理方法、装置及存储介质
CN112957068B (zh) * 2021-01-29 2023-07-11 青岛海信医疗设备股份有限公司 超声信号处理方法及终端设备
CN114330755B (zh) * 2022-03-11 2022-06-21 深圳鹏行智能研究有限公司 数据集的生成方法、装置、机器人和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207841A (zh) * 2013-03-06 2013-07-17 青岛海信传媒网络技术有限公司 基于键值对缓存的数据读写方法及装置
CN104090938A (zh) * 2014-06-26 2014-10-08 广州金山网络科技有限公司 一种提交数据的方法及装置
CN106779057A (zh) * 2016-11-11 2017-05-31 北京旷视科技有限公司 基于gpu的计算二值神经网络卷积的方法及装置
CN107832839A (zh) * 2017-10-31 2018-03-23 北京地平线信息技术有限公司 执行卷积神经网络中的运算的方法和装置
CN108182469A (zh) * 2017-12-27 2018-06-19 郑州云海信息技术有限公司 一种神经网络模型训练方法、系统、装置及存储介质
CN109657793A (zh) * 2018-12-26 2019-04-19 广州小狗机器人技术有限公司 模型训练方法及装置、存储介质及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526634B1 (en) * 2005-12-19 2009-04-28 Nvidia Corporation Counter-based delay of dependent thread group execution
CN103136724B (zh) * 2011-11-30 2015-11-25 北大方正集团有限公司 加网方法和装置
JP6651629B2 (ja) 2015-12-10 2020-02-19 ディープマインド テクノロジーズ リミテッド 外部メモリを用いたニューラルネットワークの拡張
JP2018067154A (ja) 2016-10-19 2018-04-26 ソニーセミコンダクタソリューションズ株式会社 演算処理回路および認識システム
CN108229687B (zh) * 2016-12-14 2021-08-24 腾讯科技(深圳)有限公司 数据处理方法、数据处理装置及电子设备
JP6839641B2 (ja) 2017-11-17 2021-03-10 株式会社東芝 演算処理装置
CN108197705A (zh) * 2017-12-29 2018-06-22 国民技术股份有限公司 卷积神经网络硬件加速装置及卷积计算方法及存储介质
CN110377342B (zh) * 2019-06-10 2022-08-30 平安科技(深圳)有限公司 基于卷积神经网络的显存处理方法、装置及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207841A (zh) * 2013-03-06 2013-07-17 青岛海信传媒网络技术有限公司 基于键值对缓存的数据读写方法及装置
CN104090938A (zh) * 2014-06-26 2014-10-08 广州金山网络科技有限公司 一种提交数据的方法及装置
CN106779057A (zh) * 2016-11-11 2017-05-31 北京旷视科技有限公司 基于gpu的计算二值神经网络卷积的方法及装置
CN107832839A (zh) * 2017-10-31 2018-03-23 北京地平线信息技术有限公司 执行卷积神经网络中的运算的方法和装置
CN108182469A (zh) * 2017-12-27 2018-06-19 郑州云海信息技术有限公司 一种神经网络模型训练方法、系统、装置及存储介质
CN109657793A (zh) * 2018-12-26 2019-04-19 广州小狗机器人技术有限公司 模型训练方法及装置、存储介质及电子设备

Also Published As

Publication number Publication date
WO2020248499A1 (zh) 2020-12-17
CN110377342A (zh) 2019-10-25
JP2021532498A (ja) 2021-11-25
JP7174831B2 (ja) 2022-11-17

Similar Documents

Publication Publication Date Title
CN110377342B (zh) 基于卷积神经网络的显存处理方法、装置及存储介质
US10607668B2 (en) Data processing method and apparatus
CN109840585B (zh) 一种面向稀疏二维卷积的运算方法和系统
CN115858628A (zh) 一种获取多列数据的综合排列数据的方法与设备
CN103746705A (zh) 一种压缩矢量数据的方法
CN116842307A (zh) 数据处理方法、装置、设备、芯片及存储介质
CN113326887B (zh) 文本检测方法、装置、计算机设备
CN114817657A (zh) 待检索数据处理方法、数据检索方法、电子设备及介质
CN111382831B (zh) 加速卷积神经网络模型前向推理的方法及装置
CN111221827B (zh) 基于图形处理器的数据库表连接方法、装置、计算机设备和存储介质
CN113936163A (zh) 一种图像处理方法、终端以及存储介质
US20230273826A1 (en) Neural network scheduling method and apparatus, computer device, and readable storage medium
CN110866127A (zh) 建立索引的方法以及相关装置
CN111931937B (zh) 图像处理模型的梯度更新方法、装置及系统
CN110032564B (zh) 一种数据表关联关系的确定方法和装置
CN113379038A (zh) 数据处理方法和电子设备
CN112487314A (zh) 基于知识图谱的住建搜索方法、装置及存储介质
CN115686706B (zh) 终端视图配置方法、装置、计算机设备和存储介质
CN114581676B (zh) 特征图像的处理方法、装置和存储介质
CN114648643A (zh) 多尺度卷积的方法、装置、终端设备及存储介质
CN115063658A (zh) 目标检测方法、装置、设备、存储介质和程序产品
CN117764529A (zh) 目标项目确定方法、装置、计算机设备、存储介质和产品
CN115964335A (zh) 数据处理的方法及装置、电子设备
CN118113530A (zh) 芯片故障定位方法、装置、计算机设备和存储介质
CN115686835A (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
GR01 Patent grant
GR01 Patent grant