CN112749787A - 半数字交叉式架构的稀疏神经网络层的优化 - Google Patents
半数字交叉式架构的稀疏神经网络层的优化 Download PDFInfo
- Publication number
- CN112749787A CN112749787A CN202011189121.7A CN202011189121A CN112749787A CN 112749787 A CN112749787 A CN 112749787A CN 202011189121 A CN202011189121 A CN 202011189121A CN 112749787 A CN112749787 A CN 112749787A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- change
- sparse
- row
- column
- 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; CALCULATING OR 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; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及半数字交叉式架构的稀疏神经网络层的优化。提供了一种方法和系统。该方法包括将二元矩阵映射到无向图形式,对映射的二元矩阵应用二路图分区算法,其使映射的二元矩阵中的分区之间的边切割最小化,递归应用贪婪算法以找到行或列排列的集合,其使非零从稀疏块到非稀疏块的转移的最大化,并根据所应用的贪婪算法稀疏或致密二元矩阵。
Description
相关申请的交叉引用
本申请要求优先于2019年10月31日在美国专利商标局提交的并被分配序列号62/929,000的美国临时专利申请的优先权,其全部内容通过引用合并于此。
技术领域
本公开总体上涉及一种排列(permute)稀疏矩阵以使得子块被稀疏(或致密)的方法和装置。
背景技术
对用于机器学习(machine learning,ML)应用的硬件加速器的需求不断增长。在许多这些ML应用中占主导地位的计算是矩阵向量乘法。修剪方法已被证明能够稀疏层,从而产生很大部分的零值元素。已经开发出用于全数字架构的稀疏向量矩阵乘法技术,提高了推理操作的能力/性能。对于非稀疏矩阵,可以通过交叉式网络(crossbar network)在模拟中非常有效地执行矩阵向量乘法。然而,对于已被修剪的网络,在这些模拟或半模拟交叉式网络中通常不会像在全数字设计中那样实现节能,因为与阵列加电相关的开销招致的开销并未显著减少,即使很大一部分权重为零。为了节能,可以将零值元素局部相关。
发明内容
在一个实施例中,一种方法包括:将二元矩阵映射到无向图形式;对映射的二元矩阵应用二路图分区算法,其使映射的二元矩阵中的分区之间的边切割最小化;递归应用贪婪算法以找到行或列排列的集合,其使非零从稀疏块到非稀疏块的转移最大化,并根据所应用的贪婪算法稀疏或致密二元矩阵。
在一个实施例中,一种系统包括存储器和处理器,处理器被配置为将二元矩阵映射到无向图形式,对映射的二元矩阵应用二路图分区算法,其使映射的二元矩阵中的分区之间的边切割最小化,递归应用贪婪算法以找到行或列排列的集合,其使非零从稀疏块到非稀疏块的转移最大化,并根据所应用的贪婪算法稀疏或致密二元矩阵。
附图说明
根据结合附图进行的以下详细描述,本公开的某些实施例的上述和其他方面、特征和优点将变得更加明显,其中:
图1示出了根据实施例的用于排列稀疏矩阵的流程图;
图2示出了根据实施例的稀疏矩阵的图;
图3示出了根据实施例的块稀疏度与稀疏矩阵中的块的数量的关系的图;以及
图4是根据实施例的网络环境中的电子设备的框图。
具体实施方式
在下文中,参考附图详细描述本公开的实施例。应当注意,相同的元件将由相同的附图标记标示,尽管它们在不同的附图中示出。在下面的描述中,仅提供诸如详细配置和组件的特定细节以帮助全面理解本公开的实施例。因此,对于本领域技术人员而言显而易见的是,在不脱离本公开的范围的情况下,可以对本文所述的实施例进行各种改变和修改。另外,为了清楚和简洁,省略了对公知功能和构造的描述。下面描述的术语是考虑到本公开中的功能而定义的术语,并且可以根据用户、用户的意图或习惯而不同。因此,应基于整个说明书中的内容确定术语的定义。
本公开可以具有各种修改和各种实施例,下面参考附图详细描述其中的实施例。然而,应当理解,本公开不限于这些实施例,而是包括在本公开的范围内的所有修改、等同物和替代物。
尽管可以使用包括诸如第一、第二等序数的术语来描述各种元件,但是结构元件不受该术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离本公开的范围的情况下,第一结构元件可以被称为第二结构元件。类似地,第二结构元件也可以被称为第一结构元件。如本文所使用的,术语“和/或”包括一个或多个相关项目的任何和所有组合。
这里使用的术语仅用于描述本公开的各种实施例,但并不旨在限制本公开。除非上下文另外明确指出,否则单数形式旨在包括复数形式。在本公开中,应当理解,术语“包括”或“具有”表示特征、数字、步骤、操作、结构元件、部件或其组合的存在,并且不排除一个或多个其他特征、数字、步骤、操作、结构元件、部件或其组合的存在或可能性。
除非另外定义,否则本文中使用的所有术语具有与本公开所属领域的技术人员所理解的含义相同的含义。除非在本公开中明确定义,否则诸如在通用词典中定义的术语的含义应被解释为具有与相关领域中的上下文含义相同的含义,并且不应被解释为具有理想或过度形式化的含义。
根据一个实施例的电子设备可以是各种类型的电子设备中的一种。电子设备可以包括例如便携式通信设备(例如,智能电话)、计算机、便携式多媒体设备、便携式医疗设备、照相机、可穿戴设备或家用电器。根据本公开的一个实施例,电子设备不限于上述那些。
在本公开中使用的术语并不旨在限制本公开,而是旨在包括对相应实施例的各种改变、等同物或替代物。关于附图的描述,相似的附图标记可用于指代相似或相关的元件。除非相关上下文明确指出,否则与项目相对应的名词的单数形式可以包括一个或多个事物。如本文所用,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A,B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的短语中的每一个可以包括在这些短语中的相应一个中一起枚举的项目的所有可能组合。如本文中所使用的,诸如“第一”和“第二”的术语可用于将对应的组件与另一组件区分开,但并不旨在在其他方面限制这些组件(例如,重要性或顺序)。意图是,如果一个元件(例如,第一元件)被称为“耦合到”或“连接到”另一元件(例如,第二元件)或者与另一元件(例如,第二元件)“耦合”或者“连接”,则不管是否带有术语“可操作地”或“可通信地”,它指示该元件可以直接(例如,有线)、无线地或经由第三元件与另一元件耦合。
如本文所使用的,术语“模块”可以包括以硬件、软件或固件实现的单元,并且可以与其他术语互换地使用,例如“逻辑”、“逻辑块”、“部件”和“电路”。模块可以是适于执行一个或多个功能的单个整体组件或其最小单元或一部分。例如,根据一个实施例,模块可以以专用集成电路(application-specific integrated circuit,ASIC)的形式实现。
本系统和方法排列稀疏矩阵,使得子块被稀疏(或致密)。本系统和方法可以识别选择性稀疏或致密稀疏矩阵的区域的行和列排列向量。例如,稀疏一个或多个区域可能导致其他区域被致密,反之亦然。本系统和方法可以稀疏一个或多个区域,导致一个或多个其他区域被致密,并且可以致密一个或多个区域,导致一个或多个其他区域被稀疏。假设具有大量零值元素(例如,80%为零)的稀疏矩阵,该稀疏矩阵可以被细分为子块。本系统和方法寻找增加或减少子块的某些子集中的非零元素的数量的行和列排列向量。
本系统和方法产生局部稀疏性,可以利用局部稀疏性来改进具有交叉式架构(crossbar architecture)的片上网络(network on chip,NoC)架构上的整体并行前缀加法器(parallel prefix adder,PPA)。假设可以将与每个层关相联的矩阵分解成块,并且用户将提供关于将如何分解矩阵以及应如何构建目标子集的信息。可以将矩阵分解成大小一致的正方形块(由用户给定),并且要稀疏的块的数量也由用户提供。
图1示出了根据实施例的用于排列稀疏矩阵的流程图100。在102,系统将二元矩阵映射到无向图形式,并应用使分区之间的边切割最小化的2路图分区算法。步骤102可以是使二元矩阵的一半稀疏而使另一半致密的预处理步骤。系统可以对二元矩阵进行二值化,并在假设2路分区的情况下,执行最小切割(minicut)算法。mincut算法可以是超图(hypergraph)mincut算法。本领域的技术人员将理解可以利用的(例如,来自METIS套件的)minicut算法。系统可以存储与mincut算法相对应的行和列排列向量。k可以等于2。
在104,系统递归应用贪婪算法以寻找行或列排列的集合,其使非零从稀疏块到非稀疏块的转移最大化。
在104a,假设要稀疏的子块的数量N,系统从步骤102的输出中选择N个子块。系统可以选择具有最少非零元素的子块作为目标子集。块的目标子集可以具有不一致的大小。
在104b,系统可以根据目标子集中的非零元素的数量的变化对成对的行排列进行排序。系统可以基于从最小负变化到最大负变化的变化对行排列进行排序。列表中导致非负变化或包括来自具有更大负变化的另一排列的行的任何排列都可以从列表中删除。
在104c,系统可以根据目标子集中的非零元素的数量的变化对成对的列排列进行排序。排列可以从最大负到最大正排序。列表中导致非负变化或包括来自具有更大负变化的另一排列的列的任何排列都可以从列表中删除。
除了步骤102的成对排列之外,104b和104c中的排序还可以包括所有可能排列的扩展中的附加项。这可以包括行和列排列(例如,所有同时成对的行和成对的列排列上的空间)。另外,具有M行(列)的矩阵的行(列)排列的数量为M!,这对于穷举搜索来说是很难处理的。然而,通过仅将搜索空间限制到成对的行(列),排列的总数为(M-1)(M-2),即使对于较大的矩阵(具有例如,成千上万的行(列))也可以进行穷举搜索。在大型高性能计算(highperformance computing,HPC)平台上,可以扩展搜索空间以包括更多可能的排列(例如,3路、4路或者甚至行/列的同时集合等),这应该导致更好的结果。
在104d,系统可以将来自行和列列表的非零的总变化相加,并且从列表(行列表或列列表)构造排列,其中总变化是最大负变化。系统可以将该排列向量应用于先前的各个向量(行向量或列向量),以便能够从原始样本重构稀疏矩阵。
在104e,系统可以重复步骤104a至104d,直到在104d产生的两个列表都为空,这意味着不可能进行进一步的改进。块的目标子集可以在每次迭代中改变。可以选择具有最少非零数量的子集。系统可以使用矩阵的实数值而不是在102中将其二值化。如果实数值为负,则在104b和104c中的变化的计算中应该使用幅度(magnitude)而不是振幅(amplitude)。
备选地,在步骤104a至104c,系统可以使目标子块的子集中的非零数量最大化。排序从最大正进行到最小正,并且保留导致目标块的子集中的非零数量发生净正变化的那些排列。
图2示出了根据实施例的稀疏矩阵的图。图3示出了根据实施例的块稀疏度与稀疏矩阵中的块的数量的关系图。
作为图1中描述的方法的示例,在图2中,随机128×128矩阵202被提供有80%的稀疏度,并且图表302示出了块稀疏度与块的数量的关系。在应用图1的步骤104a-104d之后,可以将矩阵202稀疏为具有32个块的矩阵204。图表304示出了块稀疏度与矩阵204中的块的数量的关系。通过重复步骤104a-104d(即步骤104e),可以将矩阵204进一步稀疏为具有16个块的矩阵206。图表306示出了块稀疏度与矩阵206中的块的数量的关系。进一步重复步骤104a-104d,可以将矩阵206进一步稀疏为具有8个块的矩阵208。图表308示出了块稀疏度与矩阵208中的块的数量的关系。
图4是根据一个实施例的网络环境400中的电子设备401的框图。参照图4,网络环境400中的电子设备401可以经由第一网络498(例如,短程无线通信网络)与电子设备402通信,或者可以经由第二网络499(例如,远程无线通信网络)与电子设备404或服务器408通信。电子设备401可以经由服务器408与电子设备404通信。电子设备401可以包括处理器420、存储器430、输入设备450、声音输出设备455、显示设备460、音频模块470、传感器模块476、接口477、触觉模块479、相机模块480、电力管理模块488,电池489、通信模块490、订户识别模块(subscriber identification module,SIM)496或天线模块497。在一个实施例中,可以从电子设备401中省略组件中的至少一个(例如,显示设备460或照相机模块480),或者可以将一个或多个其他组件添加到电子设备401中。在一个实施例中,组件中的一些可以被实现为单个集成电路(integrated circuit,IC)。例如,传感器模块476(例如,指纹传感器、虹膜传感器或照度传感器)可以被嵌入到显示设备460(例如,显示器)中。
处理器420可以运行例如软件(例如,程序440)以控制与处理器420耦合的电子设备401的至少一个其他组件(例如,硬件或软件组件),并且可以执行各种数据处理或计算。作为数据处理或计算的至少一部分,处理器420可以将从另一组件(例如,传感器模块476或通信模块490)接收的命令或数据加载到易失性存储器432中,处理存储在易失性存储器432中的命令或数据,并将结果数据存储在非易失性存储器434中。处理器420可以包括主处理器421(例如,中央处理单元(central processing unit,CPU)或应用处理器(applicationprocessor,AP))以及可独立于主处理器421或与主处理器421协同操作的辅助处理器410(例如,图形处理单元(graphics processing unit,GPU)、图像信号处理器(image signalprocessor,ISP)、传感器中枢处理器或通信处理器(communication processor,CP))。此外或者可选的,辅助处理器410可以适于比主处理器421消耗更少的电力,或者执行特定功能。辅助处理器410可以被实现为与主处理器421分离或主处理器421的一部分。
辅助处理器410可以在主处理器421处于非活动(例如,休眠)状态时代替主处理器421控制与电子设备401的组件中的至少一个组件(例如,显示设备460、传感器模块476或通信模块490)有关的至少一些功能或状态,或者在主处理器421处于活动状态(例如,运行应用)时与主处理器421一起控制与电子设备401的组件中的至少一个组件(例如,显示设备460、传感器模块476或通信模块490)有关的至少一些功能或状态。根据一个实施例,辅助处理器410(例如,ISP或CP)可以被实现为在功能上与辅助处理器410相关的另一组件(例如,相机模块480或通信模块490)的一部分。
存储器430可以存储由电子设备401的至少一个组件(例如,处理器420或传感器模块476)使用的各种数据。各种数据可以包括例如软件(例如,程序440)以及与之相关的命令的输入数据或输出数据。存储器430可以包括易失性存储器432或非易失性存储器434。
程序440可以作为软件存储在存储器430中,并且可以包括例如操作系统(operating system,OS)442、中间件444或应用446。
输入设备450可以从电子设备401的外部(例如,用户)接收要由电子设备401的其他组件(例如,处理器420)使用的命令或数据。输入设备450可以包括例如麦克风、鼠标或键盘。
声音输出设备455可以将声音信号输出到电子设备401的外部。声音输出设备455可以包括例如扬声器或接收器。扬声器可用于一般目的,例如播放多媒体或录音,并且接收器可用于接收来电。根据一个实施例,接收器可以被实现为与扬声器分离或为扬声器的一部分。
显示设备460可以在视觉上向电子设备401的外部(例如,用户)提供信息。显示设备460可以包括例如显示器、全息图设备或投影仪以及用于控制显示器、全息设备和投影仪中的相应一个的控制电路。根据一个实施例,显示设备460可以包括适于检测触摸的触摸电路,或适于测量由触摸引起的力的强度的传感器电路(例如,压力传感器)。
音频模块470可以将声音转换成电信号,反之亦然。根据一个实施例,音频模块470可以经由输入设备450获得声音,或者经由声音输出设备455或与电子设备401直接(例如,有线地)或无线耦合的外部电子设备402的耳机输出声音。
传感器模块476可以检测电子设备401的操作状态(例如,功率或温度)或电子设备401外部的环境状态(例如,用户的状态),然后生成与检测到的状态相对应的电信号或数据值。传感器模块476可以包括例如姿势传感器、陀螺仪传感器、大气压传感器、磁传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(infrared,IR)传感器、生物传感器、温度传感器、湿度传感器或照度传感器。
接口477可以支持一种或多种指定协议,以用于将电子设备401与外部电子设备402直接(例如,有线地)或无线地耦合。根据一个实施例,接口477可以包括例如高清晰度多媒体接口(high definition multimedia interface,HDMI)、通用串行总线(universalserial bus,USB)接口、安全数字(secure digital,SD)卡接口或音频接口。
连接端子478可以包括连接器,通过该连接器电子设备401可以与外部电子设备402物理连接。根据一个实施例,连接端子478可以包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块479可以将电信号转换成机械刺激(例如,振动或运动)或电刺激,其可以由用户经由触觉或动觉来识别。根据一个实施例,触觉模块479可以包括例如马达、压电元件或电刺激器。
相机模块480可以捕获静止图像或运动图像。根据一个实施例,相机模块480可以包括一个或多个镜头、图像传感器,ISP或闪光灯。
电力管理模块488可以管理供应给电子设备401的电力。电力管理模块488可以被实现为例如电力管理集成电路(power management integrated circuit,PMIC)的至少一部分。
电池489可以向电子设备401的至少一个组件供应电力。根据一个实施例,电池489可以包括例如不可充电的一次电池(primary cell)、可充电的二次电池(secondary cell)或燃料电池。
通信模块490可以支持在电子设备401与外部电子设备(例如,电子设备402、电子设备404或服务器408)之间建立直接(例如,有线)通信信道或无线通信信道,并且经由已建立的通信通道执行通信。通信模块490可以包括一个或多个通信处理器,一个或多个通信处理器可以独立于处理器420(例如,AP)进行操作并且支持直接(例如,有线)通信或无线通信。根据一个实施例,通信模块490可以包括无线通信模块492(例如,蜂窝通信模块、短程无线通信模块或全球导航卫星系统(global navigation satellite system,GNSS)通信模块)或有线通信模块494(例如,局域网(local area network,LAN)通信模块或电力线通信(power line communication,PLC)模块)。这些通信模块中的相应一个可以经由第一网络498(例如,短程通信网络,诸如BluetoothTM、无线保真(wireless-fidelity,Wi-Fi)直连或红外数据协会(Infrared Data Association,IrDA)的标准)或第二网络499(例如,远程通信网络,诸如蜂窝网络、因特网或计算机网络(例如,LAN或广域网(wide area network,WAN)))与外部电子设备通信。这些各种类型的通信模块可以被实现为单个组件(例如,单个IC),或者可以被实现为彼此分离的多个组件(例如,多个IC)。无线通信模块492可以使用存储在订户识别模块496中的订户信息(例如,国际移动订户身份(international mobilesubscriber identity,IMSI))来识别和认证诸如第一网络498或第二网络499的通信网络中的电子设备401。
天线模块497可以向电子设备401的外部(例如,外部电子设备)发送信号或电力,或从电子设备401的外部(例如,外部电子设备)接收信号或电力。根据一个实施例,天线模块497可以包括一个或多个天线,并且例如可以由通信模块490(例如,无线通信模块492)从中选择适合于在通信网络(例如第一网络498或第二网络499)中使用的通信方案的至少一个天线。然后可以经由所选的至少一个天线在通信模块490与外部电子设备之间发送或接收信号或电力。
上述组件中的至少一些可以相互耦合并且经由外围通信方案(例如,总线、通用输入和输出(general purpose input and output,GPIO)、串行外围接口(serialperipheral interface,SPI)或移动产业处理器接口(mobile industry processorinterface,MIPI))在它们之间传送信号(例如,命令或数据)。
根据一个实施例,可以经由与第二网络499耦合的服务器408在电子设备401和外部电子设备404之间发送或接收命令或数据。电子设备402和404中的每个可以是与电子设备401具有相同类型或不同类型的设备。可以在外部电子设备402、404或408中的一个或多个处运行要在电子设备401处运行的全部或部分操作。例如,如果电子设备401应该自动或响应于来自用户或另一设备的请求执行功能或服务,则代替执行功能或服务或除了执行功能或服务之外,电子设备401可以请求一个或多个外部电子设备执行功能或服务的至少一部分。接收到请求的一个或多个外部电子设备可以执行所请求的功能或服务的至少一部分,或执行与该请求有关的附加功能或附加服务,并将执行的结果传送给电子设备401。电子设备401可以提供结果作为对请求的答复的至少一部分,无论是否对该结果进行进一步处理。为此,例如,可以使用云计算、分布式计算或客户端-服务器计算技术。
一个实施例可以被实现为包括存储在可由机器(例如,电子设备401)读取的存储介质(例如,内部存储器436或外部存储器438)中的一个或多个指令的软件(例如,程序440)。例如,电子设备401的处理器可以调用存储在存储介质中的一个或多个指令中的至少一个,并在处理器的控制下使用或不使用一个或多个其他组件来运行该指令。因此,可以根据所调用的至少一条指令来操作机器以执行至少一个功能。一个或多个指令可以包括由编译器生成的代码或解释器可运行的代码。机器可读存储介质可以以非暂时性存储介质的形式提供。术语“非暂时性”表示存储介质是有形设备,并且不包括信号(例如,电磁波),但是该术语不区分数据被半永久性存储在存储介质中和数据被临时存储在存储介质中。
根据一个实施例,可以在计算机程序产品中包括并提供本公开的方法。计算机程序产品可以作为产品在卖方和买方之间进行交易。计算机程序产品可以以机器可读存储介质(例如,光盘只读存储器(compact disc read only memory,CD-ROM))的形式分发,或者经由应用商店(例如,Play StoreTM)在线分发(例如,下载或上传),或者直接在两个用户设备(例如,智能手机)之间分发。如果在线上分发,则计算机程序产品的至少一部分可以临时生成或至少临时存储在机器可读存储介质中,诸如制造商服务器的存储器、应用商店的服务器或中继服务器中。
根据一个实施例,上述组件的每个组件(例如,模块或程序)可以包括单个实体或多个实体。可以省略上述组件中的一个或多个,或者可以添加一个或多个其他组件。替代地或附加地,可以将多个组件(例如,模块或程序)集成到单个组件中。在这种情况下,集成的组件仍可以以与在集成之前由多个组件中的相应一个组件执行功能的方式相同或相似的方式来执行多个组件中的每个组件的一个或多个功能。由模块、程序或另一组件执行的操作可以顺序地、并行地、重复地或启发式地执行,或者可以以不同的顺序执行或省略一个或多个操作,或者可以添加一个或多个其他操作。
尽管已经在本公开的详细描述中描述了本公开的某些实施例,但是在不脱离本公开的范围的情况下,可以以各种形式修改本公开。因此,本公开的范围不应仅基于所描述的实施例来确定,而是基于所附权利要求及其等同物来确定。
Claims (20)
1.一种方法,包括:
将二元矩阵映射到无向图形式;
对映射的二元矩阵应用二路图分区算法,所述二路图分区算法使映射的二元矩阵中的分区之间的边切割最小化;
递归应用贪婪算法以找到行或列排列的集合,所述行或列排列的集合使非零从稀疏块到非稀疏块的转移最大化;以及
根据所应用的贪婪算法稀疏或致密二元矩阵。
2.根据权利要求1所述的方法,其中,所述二路图分区算法包括最小切割算法。
3.根据权利要求2所述的方法,其中,所述最小切割算法是超图最小切割算法。
4.根据权利要求1所述的方法,其中,应用所述贪婪算法还包括选择具有最少数量的非零元素的N个子块作为目标子集。
5.根据权利要求4所述的方法,还包括根据所述目标子集中的非零元素的数量的变化,对成对的行排列进行排序。
6.根据权利要求5所述的方法,其中,基于从最小负变化到最大负变化的变化,对所述成对的行排列进行排序。
7.如权利要求5所述的方法,还包括根据所述目标子集中的非零元素的数量的变化,对成对的列排列进行排序。
8.根据权利要求7所述的方法,其中,基于从最小负变化到最大负变化的变化,对所述成对的列排列进行排序。
9.如权利要求7所述的方法,还包括将来自行列表和列列表两者的非零的总变化相加,并构造排列向量。
10.如权利要求9所述的方法,还包括重复所述行排列的排序、所述列排列的排序、所述总变化的相加以及所述排列向量的构造步骤,直到所述行列表和所述列列表为空。
11.一种系统,包括:
存储器,和
处理器,其被配置为:
将二元矩阵映射到无向图形式;
对映射的二元矩阵应用二路图分区算法,所述二路图分区算法使映射的二元矩阵中的分区之间的边切割最小化;
递归应用贪婪算法以找到行或列排列的集合,所述行或列排列的集合使非零从稀疏块到非稀疏块的转移最大化;以及
根据所应用的贪婪算法稀疏或致密二元矩阵。
12.根据权利要求11所述的系统,其中,所述二路图分区算法包括最小切割算法。
13.如权利要求12所述的系统,其中,所述最小切割算法是超图最小切割算法。
14.根据权利要求11所述的系统,其中,应用所述贪婪算法还包括选择具有最少数量的非零元素的N个子块作为目标子集。
15.根据权利要求14所述的系统,其中,所述处理器还被配置为根据所述目标子集中的非零元素的数量的变化,对成对的行排列进行排序。
16.根据权利要求15所述的系统,其中,基于从最小负变化到最大负变化的变化,对所述成对的行排列进行排序。
17.根据权利要求15所述的系统,其中,所述处理器还被配置为根据所述目标子集中的非零元素的数量的变化,对成对的列排列进行排序。
18.根据权利要求17所述的系统,其中,基于从最小负变化到最大负变化的变化,对所述成对的列排列进行排序。
19.根据权利要求17所述的系统,其中,所述处理器还被配置为将来自行列表和列列表的非零的总变化相加,并构造排列向量。
20.根据权利要求19所述的系统,其中,所述处理器还被配置为重复所述行排列的排序、所述列排列的排序、所述总变化的相加以及所述排列向量的构造步骤,直到所述行列表和列列表为空。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962929000P | 2019-10-31 | 2019-10-31 | |
US62/929,000 | 2019-10-31 | ||
US16/849,638 | 2020-04-15 | ||
US16/849,638 US11556768B2 (en) | 2019-10-31 | 2020-04-15 | Optimization of sparsified neural network layers for semi-digital crossbar architectures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112749787A true CN112749787A (zh) | 2021-05-04 |
Family
ID=75688712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011189121.7A Pending CN112749787A (zh) | 2019-10-31 | 2020-10-30 | 半数字交叉式架构的稀疏神经网络层的优化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11556768B2 (zh) |
JP (1) | JP2021072127A (zh) |
KR (1) | KR20210053176A (zh) |
CN (1) | CN112749787A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556768B2 (en) * | 2019-10-31 | 2023-01-17 | Samsung Electronics Co., Ltd | Optimization of sparsified neural network layers for semi-digital crossbar architectures |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601423B1 (en) | 2012-10-23 | 2013-12-03 | Netspeed Systems | Asymmetric mesh NoC topologies |
US9630318B2 (en) | 2014-10-02 | 2017-04-25 | Brain Corporation | Feature detection apparatus and methods for training of robotic navigation |
US11934934B2 (en) | 2017-04-17 | 2024-03-19 | Intel Corporation | Convolutional neural network optimization mechanism |
US10366322B2 (en) | 2017-10-06 | 2019-07-30 | DeepCube LTD. | System and method for compact and efficient sparse neural networks |
US10482156B2 (en) | 2017-12-29 | 2019-11-19 | Facebook, Inc. | Sparsity-aware hardware accelerators |
US11556768B2 (en) * | 2019-10-31 | 2023-01-17 | Samsung Electronics Co., Ltd | Optimization of sparsified neural network layers for semi-digital crossbar architectures |
-
2020
- 2020-04-15 US US16/849,638 patent/US11556768B2/en active Active
- 2020-08-31 KR KR1020200110254A patent/KR20210053176A/ko unknown
- 2020-10-30 JP JP2020182481A patent/JP2021072127A/ja active Pending
- 2020-10-30 CN CN202011189121.7A patent/CN112749787A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20210053176A (ko) | 2021-05-11 |
US11556768B2 (en) | 2023-01-17 |
JP2021072127A (ja) | 2021-05-06 |
US20210133544A1 (en) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11561516B2 (en) | Method for processing data using neural network and electronic device for supporting the same | |
CN111488976B (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
EP4261702A1 (en) | Systems and methods for database scan acceleration | |
KR20200105994A (ko) | 높은 온/오프 비율의 백그라운드를 갖는 4t4r 3중 웨이트 셀 | |
CN111353591A (zh) | 一种计算装置及相关产品 | |
CN111640463A (zh) | 低输出电流和高开/关比的抗变化3t3r二进制权重单元 | |
CN111916097A (zh) | 用于语音增强的高斯加权自注意力的方法和系统 | |
US11645387B2 (en) | Electronic device for classifying malicious code and operation method thereof | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN112749787A (zh) | 半数字交叉式架构的稀疏神经网络层的优化 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
TW202139629A (zh) | 用於改良通道恢復的到達角估計的系統以及方法 | |
CN116893779A (zh) | 用于数据库扫描加速的系统和方法 | |
KR102675329B1 (ko) | 2t-2 저항성 메모리 소자 비트셀을 갖는 세미-디지털 맥 어레이의 변이 완화 기법 | |
KR102650375B1 (ko) | 높은 온 오프 비율의 백그라운드를 갖는 2t2r 바이너리 웨이트 셀 | |
US20240069866A1 (en) | Method and apparatus for performing floating-point operation using memory processor | |
US20220245423A1 (en) | Electronic device, user terminal, and method for running scalable deep learning network | |
US20240127589A1 (en) | Hardware friendly multi-kernel convolution network | |
US20230305999A1 (en) | Method for performing integrity check, and electronic device using same | |
US10579606B2 (en) | Apparatus and method of data analytics in key-value solid state device (KVSSD) including data and analytics containers | |
US11514619B2 (en) | Method, apparatus and computer program for generating or updating a texture atlas | |
EP4261688A1 (en) | Electronic device for performing test for detecting fault of electronic device, and method by which electronic device performs test for detecting fault of electronic device | |
US20230305855A1 (en) | Electronic device including controller for system booting and operating method thereof | |
EP4322073A1 (en) | Electronic device corresponding to node included in blockchain network and operation method therefor |
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 |