CN111476359A - 计算处理设备和计算机可读记录介质 - Google Patents
计算处理设备和计算机可读记录介质 Download PDFInfo
- Publication number
- CN111476359A CN111476359A CN202010031892.7A CN202010031892A CN111476359A CN 111476359 A CN111476359 A CN 111476359A CN 202010031892 A CN202010031892 A CN 202010031892A CN 111476359 A CN111476359 A CN 111476359A
- Authority
- CN
- China
- Prior art keywords
- value
- output
- input
- input value
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0499—Feedforward networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Neurology (AREA)
- Nonlinear Science (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Power Sources (AREA)
Abstract
本申请涉及一种计算处理设备和计算机可读记录介质。其中,计算处理设备包括:第一输出单元,其用于将输入值与边界值进行比较,并在输入值超过边界值时输出等于输入值的值;以及第二输出单元,其用于在通过其使得当输入值小于或等于边界值的情况下输出特定的输出值的修正线性函数的计算中,当输入值小于或等于边界值时,输出小值ε的倍数作为输出值,其中小值ε大于0。
Description
技术领域
本文讨论的实施方式涉及计算处理设备、计算机可读记录介质以及控制该计算处理设备的方法。
背景技术
在高速执行深度学习(DL)的处理器时,安装了许多计算单元以执行并行的计算。由于所有计算单元在并行的计算中执行相同的计算,因此许多计算单元的整体功率可能会根据数据内容和要执行的指令类型而突然变化。
由于处理器在相同的电压条件下操作,因此电流随着功率的增加而增加。通常,直流(DC)至DC转换器的电流随着电流的增加而增加。然而,当变化突然发生时,DC至DC转换器不是必然地随着电流的增加而增加。这可能会导致电压下降。
当提供给处理器的电压下降时,半导体的开关速度降低,并且定时约束不是必然地满足。这可能导致处理器故障。
例如,相关技术公开于国际公布小册子第WO 2017/038104号和日本公开特许公报第11-224246号中。
尽管可以通过将连续电压设置为较高值来解决由于电压下降引起的处理器的故障,但是存在以下问题:设置较高的连续电压可能会增加功耗。
在一方面,期望在不增加功耗的情况下抑制处理器的电压下降。
发明内容
根据实施方式的一个方面,一种计算处理设备包括:第一输出单元,其用于将输入值与边界值进行比较,并在输入值超过边界值时输出等于输入值的值;以及第二输出单元,其用于在通过其使得当输入值小于或等于边界值的情况下输出特定的输出值的修正线性函数的计算中,当输入值小于或等于边界值时,输出小值ε的倍数作为输出值,其中小值ε大于0。
附图说明
图1示出了相关示例的神经元建模;
图2示出了相关示例中根据指令类型的功率变化的第一示例;
图3示出了相关示例中根据指令类型的功率变化的第二示例;
图4示出了相关示例中根据指令类型的功率变化的第三示例;
图5示出了相关示例中根据指令类型的功率变化的第三示例;
图6示出实施方式的示例中的第一修正线性单元(ReLU)操作处理;
图7示出了实施方式的示例中的ReLU的第一正向传播处理和第一反向传播处理;
图8示出了实施方式的示例中的第二ReLU操作处理;
图9示出了实施方式的示例中的ReLU的第二正向传播处理和第二反向传播处理;
图10示出了实施方式的示例中的第三ReLU操作处理;
图11示出了实施方式的示例中的ReLU的第三正向传播处理和第三反向传播处理;
图12是示意地示出实施方式的示例中的乘法单元的配置的示例的框图;
图13是示意性地示出实施方式的示例中的计算处理系统的配置的示例的框图;
图14是示出图13所示的计算处理系统中的深度学习(DL)处理的框图;
图15是示出图13所示的主机中的DL处理的流程图;
图16是示意性地示出图13所示的主机中的硬件配置的示例的框图;
图17是示意性地示出图13中示出的DL执行硬件的硬件配置的示例的框图;
图18是示意性地示出图13中示出的主机的功能配置的示例的框图;
图19是示出图13所示的主机中用于生成程序的处理的流程图;
图20是示出图13所示的主机中用于生成正向传播程序和反向传播程序的处理的细节的流程图;
图21是示出图13所示的主机中的第二ReLU操作的正向传播处理的细节的流程图;
图22是示出图13所示的主机中的第二ReLU操作的反向传播处理的细节的流程图;
图23是示出图13所示的主机中的第三ReLU操作的正向传播处理的细节的流程图;以及
图24是示出图13所示的主机中的第三ReLU操作的反向传播处理的细节的流程图。
具体实施方式
在下文中,将参照附图描述实施方式。然而,下文描述的实施方式仅是示例性的,并且不意在排除在实施方式中未明确地描述的各种修改和技术应用。例如,在不脱离本实施方式的要旨的情况下,能够以各种修改来执行本实施方式。
附图并非意在说明仅提供绘制出的元件,而是实施方式可包括其他功能等。
在下文中,在附图中,类似部分用相同的附图标记表示,并省略其多余的描述。
[A]相关示例
图1示出了相关示例中的神经元建模。
已经发现,将神经网络扩展到多层的深度神经网络适用于以现有方式难以解决的问题。深度神经网络有望应用于各个领域。
如图1所示,大脑的神经元细胞(例如“神经元”)包括细胞体61、突触62、树突63和轴突64。通过对神经元细胞进行机械建模来生成神经网络。
尽管深度神经网络学习处理中的计算很简单,诸如内积计算,但是在某些情况下却需要大量执行。因此,在高速执行这些计算的处理器中,许多计算单元并行地操作以提高性能。
在执行深度神经网络的学习处理的计算单元中,取决于要执行的指令的类型或数据的内容,所有计算单元中的功率可能急剧变化。
例如,整数加法指令(例如,“加法算术指令”)消耗的功率量比浮点乘加指令(例如,“融合乘加(FMA)算术指令”)消耗的功率量小。其原因是处理器中使用的资源取决于指令的类型不同而不同。尽管针对整数加法指令仅使用单个加法单元,但针对浮点乘加指令使用用于执行乘法的多个加法单元或具有较大位宽的加法单元。
由于预先知道执行什么指令,所以能够解决取决于指令类型的功率变化。例如,当在浮点乘加指令为主的程序的区段的子集中执行整数加法指令时,交替执行整数加法指令和浮点乘加指令。因此,能够总体上抑制功率变化。
图2示出了相关示例中根据指令类型的功率变化的第一示例。
在图2所示的示例中,在已经执行了十(10)个FMA算术指令之后,执行十(10)个加法(ADD)算术指令。在这种指令序列中,当FMA算术指令被切换到加法算术指令时,发生功率的降低。
图3示出了相关示例中根据指令类型的功率变化的第二示例。
在图3所示的示例中,在已经执行了五(5)个FMA算术指令之后,交替执行加法算术指令和FMA算术指令。当如上所述以交错方式执行FMA算术指令和加法算术指令时,能够抑制功率的突然减小。
即使当执行相同的浮点乘加指令时,作为数据内容的0的连续输入降低了功率。在许多情况下,输入数据以特定的比率变为0或1。然而,当连续输入相同值时,逻辑元件的状态固定,并且功率降低。例如,在乘法中,与0值相乘,针对输入到另一操作数的任何值,将返回相同的结果0。因此,存在切换次数减少的强烈趋势。
由于预先不清楚输入什么类型的数据,因此不容易根据数据的内容来解决功率变化。
图4和图5示出了相关示例中根据指令类型的功率变化的第三示例。
如图4中的附图标记A1所示,从第40个(在所示示例中为“%fr40”)标志寄存器至第45个(在所示示例中为“%fr45”)标志寄存器存储0作为指令序列。如图5所示,当执行使用0的计算时,在该时段中功率减小。
如上所述,根据指令的类型或根据指令读取的数据,引起处理器的功率变化。例如,整数加法指令的功耗低,而浮点乘加指令的功耗高。此外,输入0时,同一浮点乘加指令的功耗降低。
由于当编写程序时要执行的指令是已知的,所以通过指令的组合可以避免由于指令类型的差异而引起的功率变化。
相反,由于在编写程序时操作数的内容是未知的,因此不容易解决根据指令数据引起的功率变化。例如,当连续地输入0时,计算单元中的大多数值都固定为0,因此功率突然减小。
[B]实施方式的示例
[B-1]系统配置的示例
在深度学习(DL)中,大多数处理专用于执行乘加指令并获得内积。这样做,当输入中连续地出现0时,执行乘加指令时的输入突然减小。这可能会导致故障。
图6示出了用于第一修正线性单元(ReLU)操作的处理。
称为ReLU操作的处理在DL学习处理中明确地生成0。ReLU操作接收单个输入并生成单个输出。如图6所示并且由下面的表达式1表示,当给定输入值为正时,输入值按原样输出。当输入值为0或负数时,输出0。
图7示出了实施方式的示例中的ReLU的第一正向传播处理和第一反向传播处理。
如图7所示,通过修改的ReLU正向传播处理(参见附图标记B2)将正向传播的输入x(参见附图标记B1)转换为输出z(参见附图标记B3)。输入x和输出z之间的关系由下面的表达式2表示。
正向传播的输入x被存储在临时存储区域中,直到执行反向传播(参见附图标记B4)为止。
通过涉及临时存储区域中的输入x的修改的ReLU反向传播处理(参见附图标记B6),将反向传播的输入dz(参见附图标记B5)转换为输出dx(参见附图标记B7)。在此,输入dz和输出dx之间的关系由下面的表达式3表示。
然而,对于表达式1中所示的ReLU(x),当输入x为负值时,输出通常为0。因此,输出为0的可能性很高。
因此,针对本实施方式的示例,当输入x为负值时,可以设置具有小的正数(ε)的倾斜度的负斜率。当输入x是负值时,可以随机输出小的负数(-ε)、0值(0)和小的正数(+ε)中的任何一个。
小的正数(ε)可以具有小的绝对值,并且可以在一定程度上(例如,在一半或更多的数字中)设置位1。例如,“0x00FFFFFF”和“0x00CCCCCC”这两个可用作候选。“0x00FFFFFF”是接近于大于0的值FLT_MIN且尾数全部为1的数字。“0x00CCCCCC”是接近于大于0的值FLT_MIN且在尾数中交替出现0和1的数字。
在设置负斜率的方法或随机输出值的方法中,可以使用非零值来代替0。因此,操作结果可能与图6中所示的示例不同。然而,在DL处理中,只要正向传播处理(例如,“正向处理”)和反向传播处理(例如,“反向处理”)彼此一致,即使当执行与原始计算不同的处理时学习也可以进行。
图8示出了实施方式的示例中的第二ReLU操作处理。
如图8所示,负斜率表示在负区域中的倾斜。当负斜率是0时,该处理与图6所示的ReLU处理类似。
在图8所示的示例中,针对图6所示的ReLU处理,将负值设置为ε,从而抑制了连续的0的产生。
图8所示的ReLU处理可以被称为带泄露ReLU处理。
如下面的表达式4和5所示,在输入x的值为正的区域中输入值被原样输出,并且在输入值x为负的区域中输出通过将输入值乘以ε而获得的值。
图9示出了实施方式的示例中的ReLU的第二正向传播处理和第二反向传播处理。
图9所示的正向传播处理和反向传播处理与图7所示的正向传播处理和反向传播处理相似。
然而,使用下面的表达式6执行图9所示的修改的ReLU正向传播处理(参见附图标记B21)。
使用下面的表达式7执行图9所示的修改的ReLU反向传播处理(参见附图标记B61)。
图10示出了实施方式的示例中的第三ReLU操作处理。
尽管在正区域中图10所示的ReLU处理与图6所示的ReLU处理相似,但在负区域中,输出值是从三个值-ε、0和+ε中随机选择的(参见图10的阴影部分)。
例如,输出值由下面的表达式8和9表示。
图11示出了实施方式的示例中的ReLU的第三正向传播处理和第三反向传播处理。
图11所示的正向传播处理和反向传播处理类似于图7所示的正向传播处理和反向传播处理。
然而,使用下面的表达式10执行图11所示的修改的ReLU正向传播处理(参见附图标记B22)。
使用下面的表达式11执行图11所示的修改的ReLU反向传播处理(参见附图标记B62)。
图12是示意性地示出实施方式的示例中的乘法单元1000的配置的示例的框图。
尽管ReLU(1)的操作结果能够是各种值之一,但ReLU(2)的操作结果是仅有的三个值-ε、0以及+ε之一。因此,在本实施方式的示例中,还考虑到乘法单元1000的输入。
数字计算机的乘法单元1000以写入计算的方式获得被乘数与乘数的位中的每一个的部分乘积并且获得部分乘积的和。
乘法单元1000针对乘数101和被乘数102这两个输入生成单个输出105。乘法单元1000包括多个选择器103和加法单元104。选择器103可以在0位串或移位侧输入之间执行选择,并且可以由与门来实现。
关于乘法的内容,被乘数102的位串移位一位并输入至加法单元104。这样做,根据乘数101中的每个位的内容来确定是输入0的位串还是输入被乘数102的位串。然后,得到输入位串的和,从而得到乘积。
小的正数和小的负数可以被输入至乘法单元1000的被乘数102侧。其原因是,在乘法单元1000中生成了大量的0并且功率降低到比当小的正数和小的负数是指定值(例如,以1的连续位的形式)且乘法单元1000具有特定的内部配置(例如,使用Booth算法的乘法单元1000)时所需要的低。
图13是示意性地示出实施方式的示例中的计算处理系统100的配置的示例的框图。
计算处理系统100包括主机1和DL执行硬件2。主机1和DL执行硬件2由用户3操作。
用户3耦接至主机1,操作DL执行硬件2,并且使得在DL执行硬件2中执行深度学习。
作为计算处理单元的示例的主机1根据来自用户3的指令生成要由DL执行硬件2执行的程序,并将所生成的程序发送至DL执行硬件2。
DL执行硬件2执行从主机1发送的程序,并生成执行结果的数据。
图14是示出图13所示的计算处理系统100中的DL处理的框图。
用户3将DL设计信息输入到主机1中的程序110。主机1将已经输入了DL设计信息的程序110输入至DL执行硬件2中作为DL执行程序。用户3将学习数据输入至DL执行硬件2。DL执行硬件2基于DL执行程序和学习数据将执行结果呈现给用户3。
图15是示出图13所示的主机1中的DL处理的流程图。
如附图标记C1所示,在应用程序中实现了与用户3对接的用户接口。该应用程序接受来自用户3的DL设计信息的输入并显示输入结果。应用程序中DL执行的功能是通过使用较低层中的库的功能来实现的。
如附图标记C2所示,在库中辅助主机1中应用程序的实现。在库处提供与DL执行相关的功能。
如附图标记C3所示,通常从库中调用用户模式的驱动程序。用户模式的驱动程序可以直接从应用程序中读取。用户模式的驱动程序用作编译器,以针对DL执行硬件2创建程序代码。
如附图标记C4所示,从用户模式的驱动程序调用内核模式的驱动程序,并与DL执行硬件2通信。为了直接访问硬件,该驱动程序被实现为内核模式的驱动程序。
图16是示意性地示出图13所示的主机1的硬件配置的示例的框图。
主机1包括处理器11、随机存取存储器(RAM)12、硬盘驱动器(HDD)13、内部总线14、高速输入/输出接口15和低速输入/输出接口16。
RAM 12存储将由处理器11执行的数据和程序。RAM 12的类型可以例如是双倍数据速率4同步动态随机存取存储器(DDR4 SDRAM)。
HDD 13存储将由处理器11执行的数据和程序。HDD 13可以是固态驱动器(SSD)、存储类存储器(SCM)等。
内部总线14将处理器11耦接至比处理器11慢的外围组件,并中继通信。
高速输入/输出接口15将处理器11耦接至设置在主机1外部的DL执行硬件2。高速输入/输出接口15可以是例如外围组件互连高速(PCI Express)。
低速输入/输出接口16实现由用户3耦接至主机1。低速输入/输出接口16例如耦接至键盘和鼠标。低速输入/输出接口16可以使用Ethernet(注册商标)通过网络耦接至用户3。
处理器11是示例性地执行各种类型的控制和各种操作的处理单元。当执行存储在RAM 12中的操作系统(OS)和程序时,处理器11实现各种功能。例如,如稍后将参照图18所描述的那样,处理器11可以用作零生成处理修改单元111和程序生成单元112。
例如,可以以将程序记录在计算机可读记录介质诸如软盘、光盘(CD诸如CD只读存储器(CD-ROM)、CD可读(CD-R)或CD可重写(CD-RW))、数字多功能磁盘(DVD诸如数字DVD只读存储器(DVD-ROM)、DVD随机存取存储器(DVD-RAM)、可刻录DVD(DVD-R,DVD+R)、可擦写DVD(DVD-RW,DVD+RW)或高清晰度DVD(HD DVD))、蓝光光盘、磁盘、光盘或磁光盘中的形式来提供用于实现作为零生成处理修改单元111和程序生成单元112的功能的程序。计算机(根据本实施方式的处理器11)可以通过读取装置(未示出)从上述记录介质读取程序,并且将读取的程序传送并存储到内部记录装置或外部记录装置。程序可以被记录在诸如磁盘、光盘或磁光盘之类的存储装置(记录介质)中,并经由通信路径从存储装置提供给计算机。
当实现零生成处理修改单元111和程序生成单元112的功能时,存储在内部存储装置(根据本实施方式的RAM 12)中的程序可以由计算机(根据本实施方式的处理器11)执行。计算机可以读取并执行记录在记录介质中的程序。
处理器11控制整个主机1的操作。处理器11可以是多处理器。处理器11可以是例如中央处理单元(CPU)、微处理器单元(MPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑设备(PLD)或现场可编程门阵列(FPGA)中的任何一种。处理器11可以是CPU、MPU、DSP、ASIC、PLD和FPGA的两个或更多个元件的组合。
图17是示意性地示出图13所示的DL执行硬件2的硬件配置的示例的框图。
DL执行硬件2包括DL执行处理器21、控制器22、存储器访问控制器23、内部RAM 24和高速输入/输出接口25。
控制器22根据来自主机1的命令,驱动DL执行处理器21或将程序和数据传输至内部RAM 24。
存储器访问控制器23从DL执行处理器21和控制器22选择信号,并且根据用于存储器访问的程序来执行存储器访问。
内部RAM 24存储由DL执行处理器21执行的程序、要处理的数据以及处理结果的数据。内部RAM 24可以是DDR4 SDRAM、更快的图形双倍数据速率5SDRAM(GDDR5 SDRAM)、更高带宽的高带宽存储器2(HBM2)等。
高速输入/输出接口25将DL执行处理器21耦接至主机1。高速输入/输出接口25的协议可以是例如PCI Express。
DL执行处理器21基于从主机1提供的程序和数据来执行深度学习处理。
DL执行处理器21是示例性地执行各种类型的控制和各种操作的处理单元。当执行存储在内部RAM 24中的OS和程序时,DL执行处理器21实现各种功能。
可以以将程序记录在计算机可读记录介质中的形式来提供实现各种功能的程序,该计算机可读记录介质例如是软盘、CD(诸如CD-ROM、CD-R或CD-RW)、DVD(诸如DVD-ROM、DVD-RAM、DVD-R或DVD+R、DVD-RW或DVD+RW、或者HD DVD)、蓝光光盘、磁盘、光盘或磁光盘。计算机(根据本实施方式的处理器11)可以通过读取装置(未示出)从上述记录介质读取程序,并且将读取的程序传输并存储到内部记录装置或外部记录装置。例如,程序可以被记录在诸如磁盘、光盘或磁光盘的存储装置(记录介质)中,并经由通信路径从存储装置提供给计算机。
当实现DL执行处理器21的功能时,存储在内部存储装置(根据本实施方式的内部RAM 24)中的程序可以由计算机(根据本实施方式的DL执行处理器21)执行。计算机可以读取并执行记录在记录介质中的程序。
DL执行处理器21控制整个DL执行硬件2的操作。DL执行处理器21可以是多处理器。DL执行处理器21可以是例如CPU、MPU、DSP,ASIC、PLD和FPGA中的任何一种。DL执行处理器21可以是CPU、MPU、DSP、ASIC、PLD和FPGA中的两个或更多个元件的组合。
图18是示意性地示出图13所示的主机1的功能配置的示例的框图。
如图18所示,主机1的处理器11用作零生成处理修改单元111和程序生成单元112。
程序生成单元112基于神经网络描述数据106和程序生成参数107的输入,生成要在DL执行硬件2中执行的神经网络执行程序108。
零生成处理修改单元111修改神经网络描述数据106的内容,从而修改ReLU操作的内容。如图18所示,零生成处理修改单元111用作第一输出单元1111和第二输出单元1112。
如图8至图10所示,第一输出单元1111将输入值与边界值(例如,0)进行比较,并且当输入值超过边界值时,输出等于输入值的值。
如图8和图10所示,在通过其使得当输入值小于或等于边界值的情况下输出特定的输出值的修正线性函数的计算(例如,“ReLU操作”)中,当输入值小于或等于边界值时,第二输出单元1112输出小值ε的倍数,其中小值ε大于0。
例如,如图8所示,第二输出单元1112可以输出输入值和小值ε的乘积作为输出值。例如,如已经参照图12所描述的那样,第二输出单元1112可以通过将输入值作为乘数并且将小值ε作为被乘数输入到乘法单元1000来将输出值输出。
例如,如图10所示,关于小值ε,第二输出单元1112可以输出-ε、0或+ε作为输出值。
[B-2]操作的示例
参照图19所示的流程图来描述用于在图13所示的主机1中生成程序的处理。
程序生成单元112重新组织网络中的层之间的依赖关系(步骤S1)。程序生成单元112以正向传播的顺序重新排列各层,并以层[0]、层[1]、……、层[L-1]来管理层。
程序生成单元112针对层[0]、层[1]、……、层[L-1]中的每一个来生成正向传播程序和反向传播程序(步骤S2)。稍后将参照图20描述步骤S2中的处理的细节。
程序生成单元112生成用于调用层[0]、层[1]、……、层[L-1]的正向传播和反向传播的代码(步骤S3)。然后,用于生成程序的处理结束。
接下来,参照图20所示的流程图描述用于在图13所示的主机1中生成用于正向传播程序和反向传播程序的处理的细节(图19所示的步骤S2)。
程序生成单元112确定要生成的程序的类型是否是ReLU(步骤S11)。
当要生成的程序的类型是ReLU(参见步骤S11中的“是”路线)时,程序生成单元112根据来自零生成处理修改单元111的输出生成用于执行修改的ReLU的处理的程序(步骤S12)。然后,用于生成正向传播程序和反向传播程序的处理结束。来自零生成处理修改单元111的输出可以通过处理来实现,稍后将参照图21至图24中所示的流程图中的任何一个来描述该处理。
相反,当要生成的程序的类型不是ReLU时(参见步骤S11中的“否”路线),程序生成单元112在正常处理中生成程序(步骤S13)。然后,生成正向传播程序和反向传播程序的处理结束。
接下来,参照图21所示的流程图描述图13所示的主机1中的第二ReLU操作(图20所示的步骤S12)的正向传播处理的细节。
零生成处理修改单元111将输入值x存储到临时存储区域(步骤S21)。
零生成处理修改单元111确定输入值x是否为正数(步骤S22)。
当输入值x是正数时(参见步骤S22中的“是”路线),零生成处理修改单元111的第一输出单元1111将输入值x设置为输出值z(步骤S23)。然后,处理继续至步骤S25。
相反,当输入值x不是正数时(参见步骤S22中的“否”路线),零生成处理修改单元111的第二输出单元1112将输入值xε设置为输出值z(步骤S24)。
零生成处理修改单元111输出输出值z(步骤S25)。然后,第二ReLU操作的正向传播处理结束。
接下来,参照图22所示的流程图描述图13所示的主机1中的第二ReLU操作(图20所示的步骤S12)的反向传播处理的细节。
零生成处理修改单元111从临时存储区域读取用于正向传播的输入值x(步骤S31)。
零生成处理修改单元111确定输入值x是否为正数(步骤S32)。
当输入值x是正数时(参见步骤S32中的“是”路线),零生成处理修改单元111的第一输出单元1111将1设置为微分系数D(步骤S33)。然后,处理继续至步骤S35。
相反,当输入值x不是正数时(参见步骤S32中的“否”路线),零生成处理修改单元111的第二输出单元1112将ε设置为微分系数D(步骤S34)。
零生成处理修改单元111输出微分系数D和输入值dz的乘积(步骤S35)。然后,第二ReLU操作的反向传播处理结束。
接下来,参照图23所示的流程图描述图13所示的主机1中的第三ReLU操作(图20所示的步骤S12)的正向传播处理的细节。
零生成处理修改单元111将输入值x存储至临时存储区域(步骤S41)。
零生成处理修改单元111确定输入值x是否为正数(步骤S42)。
当输入值x为正数时(参见步骤S42中的“是”路线),零生成处理修改单元111的第一输出单元1111将输入值x设置为输出值z(步骤S43)。然后处理继续至步骤S50。
当输入值x不是正数时(参见步骤S42中的“否”路线),零生成处理修改单元111的第二输出单元1112生成在0、1、2和3范围内的随机数r1(步骤S44)。
第二输出单元1112确定随机数r1是否为0(步骤S45)。
当随机数r1为0时(参见步骤S45中的“是”路线),第二输出单元1112将ε设置为输出值z(步骤S46)。然后处理继续至步骤S50。
相反,当随机数r1不是0时(参见步骤S45中的“否”路线),第二输出单元1112确定随机数r1是否为1(步骤S47)。
当随机数r1为1时(参见步骤S47中的“是”路线),第二输出单元1112将-ε设置为输出值z(步骤S48)。然后处理继续至步骤S50。
相反,当随机数r1不是1时(参见步骤S47中的“否”路线),第二输出单元1112将0设置为输出值z(步骤S49)。
零生成处理修改单元111输出输出值z(步骤S50)。然后,第三ReLU操作的正向传播处理结束。
接下来,参照图24所示的流程图描述图13所示的主机1中的第三ReLU操作(图20所示的步骤S12)的反向传播处理的细节。
零生成处理修改单元111从临时存储区域读取用于正向传播的输入值x(步骤S51)。
零生成处理修改单元111确定输入值x是否为正数(步骤S52)。
当输入值x是正数时(参见步骤S52中的“是”路线),零生成处理修改单元111的第一输出单元1111将1设置为微分系数D(步骤S53)。然后处理继续至步骤S60。
当输入值x不是正数时(参见步骤S52中的“否”路线),零生成处理修改单元111的第二输出单元1112生成在0、1、2和3范围内的随机数r2(步骤S54)。
第二输出单元1112确定随机数r2是否为0(步骤S55)。
当随机数r2为0时(参见步骤S55中的“是”路线),第二输出单元1112将ε设置为微分系数D(步骤S56)。然后处理继续至步骤S60。
相反,当随机数r2不为0时(参见步骤S55中的“否”路线),第二输出单元1112确定随机数r2是否为1(步骤S57)。
当随机数r2为1时(参见步骤S57中的“是”路线),第二输出单元1112将-ε设置为微分系数D(步骤S58)。然后处理继续至步骤S60。
相反,当随机数r2不是1时(参见步骤S57中的“否”路线),第二输出单元1112将0设置为微分系数D(步骤S59)。
零生成处理修改单元111输出微分系数D和输入值dz的乘积(步骤S60)。然后,第三ReLU操作的反向传播处理结束。
[B-3]效果
例如,在上述实施方式的示例中的主机1中,可以获得以下效果。
第一输出单元1111将输入值与边界值进行比较,当输入值超过边界值时,输出等于输入值的值。在当输入值小于或等于边界值时输出特定输出值的ReLU操作中,当输入值小于或等于边界值时,第二输出单元1112输出小值ε的倍数,其中小值ε大于0。
因此,可以在不增加功耗的情况下抑制处理器11的电压下降。例如,在不改变学习质量的情况下,可以抑制0值的产生,并且可以抑制功率变化。尽管在ReLU操作和随后的计算中功率增加,但在其他计算中基准电压降低。因此,可以在低功率下执行DL。例如,可以抑制功率变化,并且不是必须地需要设置高电压。
第二输出单元1112输出输入值和小值ε的乘积作为输出值。
因此,可以减小输出0值的可能性。
第二输出单元1112通过将作为乘数的输入值和作为被乘数的小值ε输入到乘法单元1000来输出输出值。
因此,可以抑制乘法单元1000中的功率降低。
关于小值ε,第二输出单元1112输出-ε、0或+ε作为输出值。
因此,ReLU操作的输出值能够被限制,从而可以有效地生成DL执行程序。
[C]其他
所公开的技术不限于上述实施方式,但可以在不脱离本实施方式的精神和范围的情况下开展各种修改。本实施方式的每个配置和每个处理可以根据需要选择,或者可以适当地组合。
Claims (12)
1.一种计算处理设备,包括:
第一输出单元,其用于将输入值与边界值进行比较,并在所述输入值超过所述边界值时输出等于所述输入值的值;以及
第二输出单元,其用于在通过其使得当输入值小于或等于所述边界值的情况下输出特定的输出值的修正线性函数的计算中,当所述输入值小于或等于所述边界值时,输出小值ε的倍数作为输出值,其中所述小值ε大于0。
2.根据权利要求1所述的计算处理设备,其中,
所述第二输出单元输出所述输入值和所述小值ε的乘积作为所述输出值。
3.根据权利要求1所述的计算处理设备,其中,
所述第二输出单元通过将所述输入值作为乘数并将所述小值ε作为被乘数输入至乘法单元来输出所述输出值。
4.根据权利要求1所述的计算处理设备,其中,
所述第二输出单元输出-ε、0或+ε作为关于所述小值ε的输出值。
5.一种其中存储有用于使计算机执行处理的程序的计算机可读记录介质,所述处理包括:
将输入值与边界值进行比较,并且当所述输入值超过所述边界值时,输出等于所述输入值的值;以及
在通过其使得当所述输入值小于或等于所述边界值的情况下输出特定的输出值的修正线性函数的计算中,当所述输入值小于或等于所述边界值时,输出小值ε的倍数作为输出值,其中所述小值ε大于0。
6.根据权利要求5所述的计算机可读记录介质,其中,
输出所述输入值和所述小值ε的乘积作为所述输出值。
7.根据权利要求5所述的计算机可读记录介质,其中,
通过将所述输入值作为乘数并将所述小值ε作为被乘数输入至乘法单元来输出所述输出值。
8.根据权利要求5所述的计算机可读记录介质,其中,
关于所述小值ε输出-ε、0或+ε作为所述输出值。
9.一种控制计算处理单元的方法,所述方法包括:
将输入值与边界值进行比较,并且当所述输入值超过所述边界值时,输出等于所述输入值的值;以及
在通过其使得当所述输入值小于或等于所述边界值的情况下输出特定的输出值的修正线性函数的计算中,当所述输入值小于或等于所述边界值时,输出小值ε的倍数作为输出值,其中所述小值ε大于0。
10.根据权利要求9所述的方法,其中,
输出所述输入值和所述小值ε的乘积作为所述输出值。
11.根据权利要求9所述的方法,其中,
通过将所述输入值作为乘数并将所述小值ε作为被乘数输入至乘法单元来输出所述输出值。
12.根据权利要求9所述的方法,其中,
关于所述小值ε输出-ε、0或+ε作为所述输出值。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2019-009395 | 2019-01-23 | ||
| JP2019009395A JP7225831B2 (ja) | 2019-01-23 | 2019-01-23 | 演算処理装置,プログラム及び演算処理装置の制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111476359A true CN111476359A (zh) | 2020-07-31 |
Family
ID=69410919
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010031892.7A Pending CN111476359A (zh) | 2019-01-23 | 2020-01-13 | 计算处理设备和计算机可读记录介质 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20200234138A1 (zh) |
| EP (1) | EP3686733B1 (zh) |
| JP (1) | JP7225831B2 (zh) |
| CN (1) | CN111476359A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200234138A1 (en) * | 2019-01-23 | 2020-07-23 | Fujitsu Limited | Information processing apparatus, computer-readable recording medium recording program, and method of controlling the calculation processing apparatus |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7701296B2 (ja) * | 2022-03-18 | 2025-07-01 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108345935A (zh) * | 2017-01-25 | 2018-07-31 | 株式会社东芝 | 积和运算器、网络单元及网络装置 |
| WO2018158043A1 (de) * | 2017-03-01 | 2018-09-07 | Robert Bosch Gmbh | Neuronalnetzsystem |
| JP2019008383A (ja) * | 2017-06-21 | 2019-01-17 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3895031B2 (ja) | 1998-02-06 | 2007-03-22 | 株式会社東芝 | 行列ベクトル乗算器 |
| WO2017038104A1 (ja) * | 2015-09-03 | 2017-03-09 | 株式会社Preferred Networks | 実装装置および実装方法 |
| US10430913B2 (en) * | 2017-06-30 | 2019-10-01 | Intel Corporation | Approximating image processing functions using convolutional neural networks |
| US11580194B2 (en) * | 2017-11-01 | 2023-02-14 | Nec Corporation | Information processing apparatus, information processing method, and program |
| JP7225831B2 (ja) * | 2019-01-23 | 2023-02-21 | 富士通株式会社 | 演算処理装置,プログラム及び演算処理装置の制御方法 |
-
2019
- 2019-01-23 JP JP2019009395A patent/JP7225831B2/ja active Active
- 2019-12-19 EP EP19218090.9A patent/EP3686733B1/en not_active Not-in-force
-
2020
- 2020-01-02 US US16/732,930 patent/US20200234138A1/en not_active Abandoned
- 2020-01-13 CN CN202010031892.7A patent/CN111476359A/zh active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108345935A (zh) * | 2017-01-25 | 2018-07-31 | 株式会社东芝 | 积和运算器、网络单元及网络装置 |
| WO2018158043A1 (de) * | 2017-03-01 | 2018-09-07 | Robert Bosch Gmbh | Neuronalnetzsystem |
| JP2019008383A (ja) * | 2017-06-21 | 2019-01-17 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体 |
Non-Patent Citations (2)
| Title |
|---|
| CHIGOZIE ENYINNA NWANKPA ET AL.: "Activation Functions: Comparison of Trends in Practice and Research for Deep Learning" * |
| MIAN MIAN LAU: "Review of Adaptive Activation Function in Deep Neural Network" * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200234138A1 (en) * | 2019-01-23 | 2020-07-23 | Fujitsu Limited | Information processing apparatus, computer-readable recording medium recording program, and method of controlling the calculation processing apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2020119213A (ja) | 2020-08-06 |
| EP3686733A1 (en) | 2020-07-29 |
| JP7225831B2 (ja) | 2023-02-21 |
| US20200234138A1 (en) | 2020-07-23 |
| EP3686733B1 (en) | 2022-08-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7539373B2 (ja) | 実装コストを目的として含めることによるニューラルネットワークのトレーニング | |
| JP7434146B2 (ja) | ニューラルネットワークの、アーキテクチャに最適化された訓練 | |
| Chen et al. | ReGAN: A pipelined ReRAM-based accelerator for generative adversarial networks | |
| WO2018205708A1 (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
| CN111880763A (zh) | 一种在内存中实现带有正负数乘加的sram电路 | |
| CN104571949A (zh) | 基于忆阻器实现计算与存储融合的处理器及其操作方法 | |
| CN113407747A (zh) | 硬件加速器执行的方法、硬件加速器和神经网络装置 | |
| CN111476359A (zh) | 计算处理设备和计算机可读记录介质 | |
| CN112636745A (zh) | 逻辑单元、加法器以及乘法器 | |
| CN111158635B (zh) | 一种基于FeFET的非易失性低功耗乘法器及其运行方法 | |
| JP4456650B2 (ja) | Nb/mbコーディングの方法および装置」と補正する。 | |
| CN118939103A (zh) | 实现模拟存算一体sram低功耗工作的电路 | |
| CN115358381B (zh) | 光学全加器及其神经网络设计方法、设备及介质 | |
| CN114694712B (zh) | 一种多阻态非易失存储器件及其布尔逻辑实现方法 | |
| CN116306948A (zh) | 量子信息处理装置及量子信息处理方法 | |
| CN115358390A (zh) | 神经网络的训练方法、装置、电子设备及存储介质 | |
| US20250165759A1 (en) | Processing apparatus, data processing method thereof, and method of training graph convolutional network (gcn) model | |
| JP2023017335A (ja) | 機械学習プログラム,情報処理装置および機械学習方法 | |
| CN115358391B (zh) | 神经网络的规模拓展方法、装置、电子设备及存储介质 | |
| CN119883182B (zh) | 基于忆阻器的近似加法电路控制方法及近似加法运算装置 | |
| Gajawada et al. | Fp-bmac: Efficient approximate floating-point bit-parallel mac processor using imc | |
| EP4141646B1 (en) | Method and apparatus with calculation | |
| CN119883185A (zh) | 基于忆阻器的非易失性多数门电路和加法电路的控制方法及装置 | |
| JP3004589B2 (ja) | パストランジスタ論理設計方法 | |
| CN113724764B (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 | ||
| AD01 | Patent right deemed abandoned | ||
| AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240419 |