[go: up one dir, main page]

CN109902817A - 板卡和神经网络运算方法 - Google Patents

板卡和神经网络运算方法 Download PDF

Info

Publication number
CN109902817A
CN109902817A CN201711371889.4A CN201711371889A CN109902817A CN 109902817 A CN109902817 A CN 109902817A CN 201711371889 A CN201711371889 A CN 201711371889A CN 109902817 A CN109902817 A CN 109902817A
Authority
CN
China
Prior art keywords
connection relationship
data
input
relationship data
neural network
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
Application number
CN201711371889.4A
Other languages
English (en)
Other versions
CN109902817B (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.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Beijing Zhongke Cambrian Technology 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 Beijing Zhongke Cambrian Technology Co Ltd filed Critical Beijing Zhongke Cambrian Technology Co Ltd
Priority to CN201711371889.4A priority Critical patent/CN109902817B/zh
Publication of CN109902817A publication Critical patent/CN109902817A/zh
Application granted granted Critical
Publication of CN109902817B publication Critical patent/CN109902817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Machine Translation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Memory System (AREA)
  • Image Processing (AREA)
  • Control Of Electric Motors In General (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Electrotherapy Devices (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Analysis (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种板卡,其映射单元接收到输入神经元和权值后,对该输入神经元和权值进行处理,以得到处理后的输入神经元和处理后的权值;板卡的运算单元对处理后的输入神经元和处理后的权值进行人工神经网络运算。采用本发明实施例可减少装置的额外开销,并减小访问量,提高了神经网络运算效率。

Description

板卡和神经网络运算方法
技术领域
本发明涉及神经网络领域,尤其涉及一种板卡和神经网络运算方法。
背景技术
人工神经网络(Artificial Neural Networks,ANNs)简称为神经网络(NeuralNetworks,NNs)。它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间的相互连接关系,从而达到处理信息的目的。
神经网络是一个高计算量和高访存的算法,权值越多,计算量和访存量。都会增大。为了减小计算量和权值数量,从而降低访存量,因此提出了稀疏神经网络。稀疏神经网络的定义为:在神经网络中,值为0的权值的数目很多,并且值为非0的权值分布没有规律,则称该神经网络为稀疏神经网络。定义权值为0的元素数量与神经网络所有权值元素数量的比值为神经网络的稀疏度,如图1a所示。
现有技术中,GPU在执行图形图像运算以及科学计算时会涉及稀疏神经网络的计算,但是由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对稀疏的卷积神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行稀疏的人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
发明内容
本发明实施例提供一种板卡及方法,通过对神经网络数据进行处理,减小了在进行人工神经网络运算之前译码的工作量,进而减小了额外的开销,并且提高了运算速率。
第一方面,本发明实施例提供了一种板卡,该板卡包括:
神经网络芯片封装结构、第一电气及非电气连接装置和通过所述第一电气及非电气连接装置与所述神经网络芯片封装结构连接的第一基板;
所述第一基板,用于承载所述芯片封装结构;
其中,所述神经网络芯片封装结构包括:
神经网络芯片、第二电气及非电气连接装置和通过所述第二电气及非电气连接装置与所述神经网络芯片连接的第二基板;
所述第二基板,用于承载所述神经网络芯片;
其中,上述神经网络芯片包括:
存储单元,用于存储输入数据、神经网络指令和运算结果,所述输入数据包括至少一个输入神经元和至少一个权值;
直接存储访问单元,用于在所述存储单元与指令缓存单元、映射单元和输出缓存单元进行数据的读写;
映射单元,用于通过所述直接存储访问单元获取所述输入数据后,对所述输入数据进行处理,以得到处理后的输入数据,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,并将所述处理后的输入神经元和所述处理后的权值存储到第一输入缓存单元和第二输入缓存单元中;
所述第一输入缓存单元,用于缓存第一缓存数据,所述第一缓存数据为所述处理后的输入神经元或处理后的权值;
所述第二输入缓存单元,用于缓存第二缓存数据,所述第二缓存数据为所述处理后的输入神经元或处理后的权值,且所述第二缓存数据与所述第一缓存数据不一致;
所述指令缓存单元,用于缓存所述直接存储访问单元读取神经网络指令;
指令控制单元,用于从所述指令缓存单元中获取所述神经网络指令,并将所述神经网络指令译码成运算单元执行的微指令;
所述运算单元,用于从所述第一输入缓存单元和所述第二输入缓存单元中获取所述处理后的输入神经元和所述处理后的权值后,根据所述微指令对所述处理后的输入神经元和所述处理后的权值进行人工神经网络运算,以得到所述运算结果;
所述输出缓存单元,用于缓存所述运算结果。
第二方面,本发明实施例提供了一种神经网络运算方法,包括:
对输入数据进行处理,以得到处理后的输入数据;
获取神经运算指令,将所述神经运算指令译码成微指令;
根据所述微指令对所述处理后的输入数据进行人工神经网络运算,以得到运算结果。
第三方面,本发明实施例提供了一种电子装置,该电子装置包括上述第一方面所述的板卡。
可以看出,在本发明实施例的方案中,板卡的映射单元对输入神经元和权值进行处理,以得到处理后的输入神经元和处理后的权值,板卡的运算单元根据指令控制单元对神经网络指令进行译码得到的微指令对处理后的输入神经元和处理后的权值进行人工神经网络运算。与现有技术相比,采用本发明实施例减小了在进行人工神经网络运算之前译码的工作量,进而减小了额外的开销,并且提高了运算速率。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例提供的一种稀疏神经网络结构示意图;
图1b为本发明实施例提供的一种板卡的结构示意图;
图1c为本发明实施例提供的一种神经网络芯片封装结构的示意图;
图2a为本发明实施例提供的另一种神经网络芯片封装结构的示意图;
图2b为本发明实施例提供的另一种神经网络芯片封装结构的示意图;
图3a为本发明实施例提供的一种组合处理装置的结构示意图;
图3b为本发明实施例提供的另一种组合处理装置的结构示意图;
图4为本发明实施例提供的一种神经网络运算模块的结构示意图;
图5为本发明实施例提供的一种神经网络运算模块的局部结构示意图;
图6为本发明实施例提供的一种神经网络结构示意图;
图7为本发明实施例提供的一种神经网络运算方法的流程示意图。
具体实施方式
以下分别进行详细说明。
本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参见图1b,图1b为本发明实施例提供的一种板卡的结构示意图。该板卡用于加速稀疏神经网络的运算。如图1b所示,上述板卡10包括神经网络芯片封装结构11、第一电气及非电气连接装置12和第一基板(substrate)13。
对于神经网络芯片封装结构11的具体结构不作限定,可选的,如图1c所示,上述神经网络芯片封装结构11包括:神经网络芯片111、第二电气及非电气连接装置112、第二基板113。
本发明所涉及的神经网络芯片111的具体形式不作限定,上述的神经网络芯片111包含但不限于将神经网络处理器集成的神经网络晶片上,上述晶片可以由硅材料、锗材料、量子材料或分子材料等制成。根据实际情况(例如:较严苛的环境)和不同的应用需求可将上述神经网络晶片进行封装,以使神经网络晶片的大部分被包裹住,而将神经网络晶片上的引脚通过金线等导体连到封装结构的外边,用于和更外层进行电路连接。
本发明对于第一基板13和第二基板113的类型不做限定,可以是印制电路板(printed circuit board,PCB)或(printed wiring board,PWB),还可能为其它电路板。对PCB的制作材料也不做限定。
本发明所涉及的第二基板113用于承载上述神经网络芯片111,通过第二电气及非电气连接装置112将上述的神经网络芯片111和第二基板113进行连接得到的神经网络芯片封装结构11,用于保护神经网络芯片111,便于将神经网络芯片封装结构11与第一基板13进行进一步封装。
对于上述具体的第二电气及非电气连接装置112的封装方式和封装方式对应的结构不作限定,可根据实际情况和不同的应用需求选择合适的封装方式并进行简单地改进,例如:倒装芯片球栅阵列封装(Flip Chip Ball Grid Array Package,FCBGAP),薄型四方扁平式封装(Low-profile Quad Flat Package,LQFP)、带散热器的四方扁平封装(QuadFlat Package with Heat sink,HQFP)、无引脚四方扁平封装(Quad Flat Non-leadPackage,QFN)或小间距四方扁平式封装(Fine-pitch Ball Grid Package,FBGA)等封装方式。
倒装芯片(Flip Chip),适用于对封装后的面积要求高或对导线的电感、信号的传输时间敏感的情况下。除此之外可以用引线键合(Wire Bonding)的封装方式,减少成本,提高封装结构的灵活性。
球栅阵列(Ball Grid Array),能够提供更多引脚,且引脚的平均导线长度短,具备高速传递信号的作用,其中,封装可以用引脚网格阵列封装(Pin Grid Array,PGA)、零插拔力(Zero Insertion Force,ZIF)、单边接触连接(Single Edge Contact Connection,SECC)、触点阵列(Land Grid Array,LGA)等来代替。
可选的,采用倒装芯片球栅阵列(Flip Chip Ball Grid Array)的封装方式对神经网络芯片111和第二基板113进行封装,具体的神经网络芯片封装结构11的示意图可参照图2a。如图2a所示,上述神经网络芯片封装结构包括:神经网络芯片21、焊盘22、焊球23、第二基板24、第二基板24上的连接点25、引脚26。
其中,焊盘22与神经网络芯片21相连,通过在焊盘22和第二基板24上的连接点25之间焊接形成焊球23,将神经网络芯片21和第二基板24连接,即实现了神经网络芯片21的封装。
引脚26用于与封装结构的外部电路(例如,神经网络处理器板卡10上的第一基板13)相连,可实现外部数据和内部数据的传输,便于神经网络芯片21或神经网络芯片21对应的神经网络处理器对数据进行处理。对于引脚的类型和数量本发明也不作限定,根据不同的封装技术可选用不同的引脚形式,并遵从一定规则进行排列。
可选的,上述神经网络芯片封装结构还包括绝缘填充物,置于焊盘22、焊球23和连接点25之间的空隙中,用于防止焊球与焊球之间产生干扰。
其中,绝缘填充物的材料可以是氮化硅、氧化硅或氧氮化硅;干扰包含电磁干扰、电感干扰等。
可选的,上述神经网络芯片封装结构还包括散热装置,用于散发神经网络芯片21运行时的热量。其中,散热装置可以是一块导热性良好的金属片、散热片或散热器,例如,风扇。
举例来说,如图2b所示,上述神经网络芯片封装结构11包括:神经网络芯片21、焊盘22、焊球23、第二基板24、第二基板24上的连接点25、引脚26、绝缘填充物27、散热膏28和金属外壳散热片29。其中,散热膏28和金属外壳散热片29用于散发神经网络芯片21运行时的热量。
可选的,上述神经网络芯片封装结构11还包括补强结构,与焊盘22连接,且内埋于焊球23中,以增强焊球23与焊盘22之间的连接强度。
其中,补强结构可以是金属线结构或柱状结构,在此不做限定。
本发明对于第一电气及非电气装置12的具体形式也不作限定,可参照第二电气及非电气装置112的描述,即通过焊接的方式将神经网络芯片封装结构11进行封装,也可以采用连接线连接或插拔方式连接第二基板113和第一基板13的方式,便于后续更换第一基板13或神经网络芯片封装结构11。
可选的,第一基板13包括用于扩展存储容量的内存单元的接口等,例如:同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)、双倍速率同步动态随机存储器(Double Date Rate SDRAM,DDR)等,通过扩展内存提高了神经网络处理器的处理能力。
第一基板13上还可包括快速外部设备互连总线(Peripheral ComponentInterconnect-Express,PCI-E或PCIe)接口、小封装可热插拔(Small Form-factorPluggable,SFP)接口、以太网接口、控制器局域网总线(Controller Area Network,CAN)接口等等,用于封装结构和外部电路之间的数据传输,可提高运算速度和操作的便利性。
将神经网络芯片111封装为神经网络芯片封装结构11,将神经网络芯片封装结构11封装为板卡10,可填补目前神经网络的空缺,通过板卡上的接口(插槽或插芯)与外部电路(例如:计算机主板)进行数据交互,即直接通过使用板卡10实现神经网络处理器的功能,并保护神经网络芯片111。且板卡10上还可添加其他模块,提高了神经网络处理器的应用范围和运算效率。
该板卡10可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、智能家居、家电、多处理器系统、基于微处理器的系统、机器人、可编程的消费电子设备、网络个人计算机(personal computer,PC)、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
在一种可行的实施例中,上述神经网络芯片11包括组合处理装置,该组合装置包括如上述神经网络运算装置,通用互联接口和其他处理装置。
上述神经网络运算装置与上述其他处理装置进行交互,共同完成用户指定的操作。
参见图3a,图3a为本发明实施例提供的一种组合处理装置的结构示意图。如图3a所示,该组合处理装置包括上述神经网络运算装置301、通用互联接口302和其他处理装置303。
其中,上述其他处理装置303包括中央处理器(Central Processing Unit)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置303所包括的处理器数量不做限制。其他处理装置303作为神经网络运算装置301与外部数据和控制的接口,包括数据搬运,完成对本神经网络运算装置的开启、停止等基本控制;其他处理装置303也可以和神经网络运算装置301协作共同完成运算任务。
上述通用互联接口302,用于在所述神经网络运算装置301与其他处理装置303间传输数据和控制指令。该神经网络运算装置301从其他处理装置303中获取所需的输入数据,写入神经网络运算装置301片上的存储装置;可以从其他处理装置303中获取控制指令,写入神经网络运算装置301片上的控制缓存;也可以读取神经网络运算装置301的存储模块中的数据并传输给其他处理装置303。
其中,上述神经网络运算装置301,该神经网络运算装置301包括一个或多个神经网络运算模块,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的神经网络运算,将执行结果通过I/O接口传递给其他处理装置;
当所述神经网络运算装置301包含多个所述神经网络运算模块时,所述多个所述神经网络运算模块间可以通过特定的结构进行连接并传输数据;
其中,多个所述神经网络运算模块通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算;多个所述神经网络运算模块共享同一控制系统或拥有各自的控制系统;多个所述神经网络运算模块共享内存或者拥有各自的内存;多个所述神经网络运算模块的互联方式是任意互联拓扑。
该神经网络运算装置301具有较高的兼容性,可通过pcie接口与各种类型的服务器相连接。
可选的,如图3b所示,上述组合处理装置还包括存储装置304,用于保存在本运算单元/运算装置或其他运算单元所需要的数据,尤其适用于所需要运算的数据在本神经网络运算装置301或其他处理装置303的内部存储中无法全部保存的数据。
上述组合装置可以作为手机、机器人、无人机等智能设备的片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。
在一种可行的实施例中,如图4所示,上述该神经网络运算模块包括存储单元402、直接存储访问单元403、映射单元401、指令缓存单元404、第一输入缓存单元405、第二输入缓存单元406、指令控制单元407、运算单元408和输出缓存单元409。
上述存储单元402,用于存储输入数据、神经网络指令和运算结果,所述输入数据包括至少一个输入神经元和至少一个权值。
上述直接存储访问单元403,用于在所述存储单元402与指令缓存单元404、映射单元401和输出缓存单元409之间进行数据的读写。
具体地,上述直接存储访问单元从上述存储单元402中读取神经网络指令,并将该神经网络指令写入上述指令缓存单元404中。上述直接存储访问单元403从上述存储单元402读取上述输入神经元和权值,并将该输入神经元和权值写入上述映射单元401。上述直接存储访问单元403从上述输出缓存单元409读取上述运算结果后,将该运算结果写入上述存储单元402中。
上述映射单元401,用于通过所述直接存储访问单元403获取所述输入数据后,对所述输入数据进行处理,以得到处理后的输入数据,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,并将所述处理后的输入神经元和所述处理后的权值存储到第一输入缓存单元405和第二输入缓存单元406中。
具体的,上述映射单元401将上述处理后的输入神经元和上述处理后的权值分别存储到上述第一输入缓存单元405和第二输入缓存单元406中,或者分别存储到上述第二输入缓存单元406和第一输入缓存单元405。
其中,如图5所示,上述映射单元401包括:
第一稀疏处理单元4011,用于接收到第一输入数据后,根据所述第一输入数据以得到第一连接关系数据,并将该第一连接关系数据传输至连接关系处理单元4013;
第二稀疏处理单元4012,用于接收到第二输入数据后,根据所述第二输入数据以得到第二连接关系数据,并将该第二连接关系数据传输至所述连接关系处理单元4013;
所述连接关系处理单元4013,用于根据所述第一连接关系数据和所述第二连接关系数据,以得到第三连接关系数据,并将该第三连接关系数据传输至数据处理单元4014;
所述数据处理单元4014,用于在接收到所述第一输入数据,所述第二输入数据和所述第三连接关系数据后,根据所述第三连接关系数据对所述第一输入数据和所述第二输入数据进行处理,以得到第一输出数据和第二输出数据;
其中,当所述第一输入数据包括至少一个输入神经元,第二输入数据包括至少一个权值时,所述第一连接关系数据为输入神经元的连接关系数据,所述第二连接关系数据为权值的连接关系数据,所述第一输出数据为处理后的输入神经元,所述第二输出数据为处理后的权值;当所述第一输入数据包括至少一个权值,所述第二输入数据包括至少一个输入神经元时,所述第一连接关系数据为权值的连接关系数据,所述第二连接关系数据为输入神经元的连接关系数据,所述第一输出数据为处理后的权值,所述第二输出数据为处理后的输入神经元。
当上述第一输入数据包括至少一个输入神经元时,上述第一连接关系数据为用于表示该至少一个输入神经元中绝对值大于第一阈值的输入神经元的位置的字符串;当上述第一输入数据包括至少一个权值时,上述第一连接关系数据为用于表示输入神经元与输出神经元之间是否有连接的字符串。
当上述第二输入数据包括至少一个输入神经元时,上述第二连接关系数据为用于表示该至少一个输入神经元中绝对值大于第一阈值的输入神经元的位置的字符串;当上述第二输入数据包括至少一个权值时,上述第二连接关系数据为用于表示输入神经元与输出神经元之间是否有连接的字符串。
可选地,上述第一阈值可为0.1、0.08、0.05、0.02、0.01、0或者其他值。
可选地,上述第二阈值可为0.1、0.08、0.06、0.05、0.02、0.01、0或者其他值。
需要指出的是,上述第一阈值和上述第二阈值可以一致,也可以不一致。
其中,上述第一连接关系数据、第二连接关系数据和第三连接关系数据均可以步长索引或者直接索引的形式表示。
具体地,以直接索引形式表示的连接关系数据为由0和1组成的字符串。当上述连接关系数据为权值的连接关系数据时,0表示该权值的绝对值小于或者等于上述第一阈值,即该权值对应的输入神经元与输出神经元之间没有连接,1表示该权值的绝对值大于上述第一阈值,即该权值对应的输入神经元与输出神经元之间有连接。以直接索引形式表示的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示权值的连接关系;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示权值的连接关系。当上述连接关系数据为输入神经元的连接关系数据时,0表示该输入神经元的绝对值小于或者等于上述第一阈值,1表示该输入神经元的绝对值大于上述第一阈值。
以步长索引形式表示的权值的连接关系数据为与输出神经元有连接的输入神经元与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串;以步长索引表示的输入神经元的连接关系数据以当前绝对值大于上述第一阈值的输入神经元与上一个绝对值大于上述第一阈值的输入神经元之间的距离值组成的字符串表示。
举例说明,假设上述第一阈值为0.01,参见图6,图6为本发明实施例提供的一种稀疏神经网络的示意图。如图6中的a图所示,上述第一输入数据为输入神经元,包括输入神经元i1、i2、i3和i4,上述第二输入数据为权值。对于输出神经元o1,权值为w11,w21,w31和w41;对于输出神经元o2,权值w12,w22,w32和w42,其中权值w21,w12和w42的值为0,其绝对值均小于上述第一阈值0.01,稀疏处理单元(即第一稀疏处理单元4011或第二稀疏处理单元4012)确定上述输入神经元i2和输出神经元o1没有连接,上述输入神经元i1和i4与输出神经元o2没有连接,上述输入神经元i1、i3和i4与上述输出神经元o1有连接,上述输入神经元i2和i3与输出神经元o2有连接。以每个输出神经元与所有输入神经元的连接状态表示上述连接关系数据,则上述输出神经元o1的连接关系数据为“1011”,输出神经元o2的连接关系数据为“0110”(即上述连接关系数据为“10110110”);以每个输入神经元与所有输出神经元的连接关系,则输入神经元i1的连接关系数据为“10”,输入神经元i2的连接关系数据为“01”,输入神经元i3的连接关系数据为“11”,输入神经元i4的连接关系数据为“10”(即上述连接关系数据为“10011110”)。
对于上述输出神经元o1,上述映射单元401将上述i1、i3与i4,w11、w31和w41分别存储到上述第一输入缓存单元405和第二输入缓存单元406,或者分别存储到上述第二输入缓存单元406和第一输入缓存单元405中;对于输出神经元o2,上述映射单元401将上述i2与i3,和w22与w32,分别存储到上述第一输入缓存单元405和第二输入缓存单元406,或者分别存储到上述第二输入缓存单元406和第一输入缓存单元405中。
针对上述输出神经元o1,上述第二输出数据为w11,w31和w41;针对上述输出神经元o2,上述第二输出数据为w22和w32
当输入神经元i1、i2、i3和i4的值分别为1,0,3,5则上述输入神经元的连接关系数据为“1011”,上述输出的神经元为i1(1),i3(3),i4(5)。
如图6中的b图所示,上述第一输入数据为输入神经元,包括输入神经元i1、i2、i3和i4,上述第二输入数据为权值。对于输出神经元o1,权值为w11,w21,w31和w41;对于输出神经元o2,权值w12,w22,w32和w42,其中权值w21,w12和w42的值为0,稀疏处理单元(即第一稀疏处理单元4011或第二稀疏处理单元4012)确定上述输入神经元i1、i3和i4与上述输出神经元o1有连接,上述输入神经元i2和i3与输出神经元o2有连接。上述输出神经元o1与输入神经元之间的连接关系数据为“021”。其中,该连接关系数据中第一个数字“0”表示第一个与输出神经元o1有连接的输入神经元与第一个输入神经元之间的距离为0,即第一个与输出神经元o1有连接的输入神经元为输入神经元i1;上述连接关系数据中第二个数字“2”表示第二个与输出神经元o1有连接的输入神经元与第一个与输出神经元o1有连接的输入神经元(即输入神经元i1)之间的距离为2,即第二个与输出神经元o1有连接的输入神经元为输入神经元i3;上述连接关系数据中第三个数字“1”表示第三个与输出神经元o1有连接的输入神经元与第二个与该输出神经元o1有连接的输入神经元之间的距离为1,即第三个与输出神经元o1有连接的输入神经元为输入神经元i4。
上述输出神经元o2与输入神经元之间的连接关系数据为“11”。其中,该连接关系数据中的第一数字“1”表示第一个与输出神经元o2有连接的输入神经元与第一个输入神经元(即输入神经元i1)之间的距离为,即该第一个与输出神经元o2有连接关系的输入神经元为输出神经元i2;上述连接关系数据中的第二数字“1”表示第二个与输出神经元o2有连接的输入神经元与第一个与输出神经元o2有连接的输入神经元的距离为1,即第二个与输出神经元o2有连接的输入神经元为输入神经元i3。
对于上述输出神经元o1,上述映射单元401将上述i1、i3与i4,w11、w31和w41分别存储到上述第一输入缓存单元405和第二输入缓存单元406,或者分别存储到上述第二输入缓存单元406和第一输入缓存单元405中;对于输出神经元o2,上述映射单元401将上述i2与i3,和w22与w32,分别存储到上述第一输入缓存单元405和第二输入缓存单元406,或者分别存储到上述第二输入缓存单元406和第一输入缓存单元405中。
针对上述输出神经元o1,上述处理后的权值为w11,w31和w41;针对上述输出神经元o2,上述处理后的权值为w22和w32
当输入神经元i1、i2、i3和i4的值分别为1,0,3,5则上述输入神经元的连接关系数据为“021”,上述处理后的输入神经元为i1(1)、i3(3)和i4(5)。
上述连接关系处理单元4013对上述第一连接关系数据和上述第二连接关系数据进行处理,以得到第三连接关系数据。该第三连接关系数据可以直接索引或者步长索引的形式表示。
具体地,上述当上述第一连接关系数据和上述第二连接关系数据均以直接索引的形式表示时,上述连接关系处理单元4013对上述第一连接关系数据和上述第二连接关系数据进行与操作,以得到第三连接关系数据,该第三连接关系数据是以直接索引的形式表示的。
需要说明的是,表示上述第一连接关系数据和第二连接关系数据的字符串在内存中是按照物理地址高低的顺序存储的,可以是由高到低的顺序存储的,也可以是由低到高的顺序存储的。
当上述第一连接关系数据和上述第二连接关系数据均以步长索引的形式表示,且表示上述第一连接关系数据和第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时,上述连接关系处理单元4013将上述第一连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第四连接关系数据;同理,上述连接关系处理单元4013对上述第二连接关系数据的字符串进行同样的处理,得到第五连接关系数据。然后上述连接关系处理单元4013从上述第四连接关系数据的字符串和上述第五连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成一个新的字符串。上述连接关系处理单元4013将上述新的字符串中将每一个元素与其相邻且值小于该元素值的元素进行相减,以得到一个新的元素。按照该方法,对上述新的字串中的每个元素进行相应的操作,以得到上述第三连接关系数据。
举例说明,假设以步长索引的形式表示上述第一连接关系数据和上述第二连接关系数据,上述第一连接关系数据的字符串为“01111”,上述第二连接关系数据的字符串为“022”,上述连接关系处理单元4013将上述第一连接关系数据的字符串中的每个元素与其相邻的前一个元素相加,得到第四连接关系数据“01234”;同理,上述连接关系处理单元4013对上述第二连接关系数据的字符串进行相同的处理后得到的第五连接关系数据为“024”。上述连接关系处理单元4013从上述第四连接关系数据“01234”和上述第五连接关系数据“024”选组相同的元素,以得到新的字符串“024”。上述连接关系处理单元4013将该新的字符串中的每个元素与其相邻的前一个元素进行相减,即0,(2-0),(4-2),以得到上述第三连接数据“022”。
当上述第一连接关系数据和上述第二连接关系数据中的任意一个以步长索引的形式表示,另一个以直接索引的形式表示时,上述连接关系处理单元4013将上述以步长索引表示的连接关系数据转换成以直接索引的表示形式或者将以直接索引表示的连接关系数据转换成以步长索引表示的形式。然后上述连接关系处理单元4013按照上述方法进行处理,以得到上述第三连接关系数据(即上述第二输出数据)。
可选地,当上述第一连接关系数据和上述第二连接关系数据均以直接索引的形式表示时,上述连接关系处理单元4013将上述第一连接关系数据和上述第二连接关系数据均转换成以步长索引的形式表示的连接关系数据,然后按照上述方法对上述第一连接关系数据和上述第二连接关系数据进行处理,以得到上述第三连接关系数据。
具体地,上述第一输入数据可为输入神经元或者权值,第二输入数据可为输入神经元或者权值,且上述第一输入数据和第二输入数据不一致。上述数据处理单元4014根据上述第三连接关系数据从上述第一输入数据(即输入神经元或者权值)中选取与该第三连接关系数据相关的数据,作为第一输出数据;上述数据处理单元4014根据上述第三连接关系数据从上述第二输入数据中选取与该第三连接关系数据相关的数据,作为第二输出数据。
进一步地,上述数据处理单元4014将上述处理后的输入神经元中的每个处理后的输入神经元与其对应的处理后的权值作为一个数据集,将该数据集存储出上述存储单元402中。
举例说明,假设上述第一输入数据包括输入神经元i1,i2,i3和i4,上述第二输入数据包括权值w11,w21,w31和w41,上述第三连接关系数据以直接索引方式表示,为“1010”,则上述数据处理单元4014输出的第一输出数据为输入神经元i1和i3,输出的第二输出数据为权值w11和w31。对于上述输出神经元o1,上述数据处理单元4014将上述i1、i3与i4,w11、w31和w41分别存储到上述第一输入缓存单元405和第二输入缓存单元406,或者分别存储到上述第二输入缓存单元406和第一输入缓存单元405中;对于输出神经元o2,上述数据处理单元4014将上述i2与i3,和w22与w32,分别存储到上述第一输入缓存单元405和第二输入缓存单元406,或者分别存储到上述第二输入缓存单元406和第一输入缓存单元405中。
可选地,所述映射单元401对所述输入数据进行处理之前,所述映射单元401还用于:
对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;
判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;
当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;
对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;
判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;
当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
可选地,上述第三阈值可为0.5,0.2,0.1,0.05,0.025,0.01,0或者其他值。
其中,上述第四阈值与上述一组输入神经元中输入神经元的个数相关。可选地,该第四阈值=一组输入神经元中的输入神经元个数-1或者该第四阈值为其他值。
可选地,上述第五阈值可为0.5,0.2,0.1,0.05,0.025,0.01,0或者其他值。
其中,上述第六阈值与上述一组权值中的权值个数相关。可选地,该第六阈值=一组权值中的权值个数-1或者该第六阈值为其他值。
需要说明的是,上述第六阈值和上述第四阈值可相同或者不同,上述第三阈值和上述第五阈值可相同或者不同。
上述第一输入缓存单元405,用于缓存第一缓存数据,所述第一缓存数据为所述处理后的输入神经元或处理后的权值。
上述第二输入缓存单元406,用于缓存第二缓存数据,所述第二缓存数据为所述处理后的输入神经元或处理后的权值,且所述第二缓存数据与所述第一缓存数据不一致。
需要说明的是,当上述第一输入缓存单元405用于缓存处理后的输入神经元时,则上述第二输入缓存单元406用于缓存处理后的权值;当上述第二输入缓存单元405用于缓存处理后的权值时,则上述第一输入缓存单元406用于缓存处理后的输入神经元。
需要说明的是,第一阈值、第二阈值、第三阈值、第四阈值、第五阈值和第六阈值可均存储在上述存储单元402、第一输出缓存单元405或者第二输入缓存单元406中;上述第一阈值、第二阈值、第三阈值、第四阈值、第五阈值和第六阈值中部分阈值存储在上述存储单元402、部分阈值存储在上述第一输出缓存单元405中,部分阈值存储在上述第二输出缓存单元406中。
上述指令缓存单元404,用于缓存所述直接存储访问单元403读取神经网络指令。
上述指令控制单元407,用于从所述指令缓存单元404中获取所述神经网络指令,并将所述神经网络指令译码成运算单元408执行的微指令。
上述运算单元408,用于从所述第一输入缓存单元405和所述第二输入缓存单元406中获取所述处理后的输入神经元和所述处理后的权值后,根据所述微指令对所述处理后的输入神经元和所述处理后的权值进行人工神经网络运算,以得到所述运算结果。
上述输出缓存单元409,用于缓存所述运算结果。该输出缓存单元409通过上述直接存储访问单元403将上述运算结果存储到上述存储单元402中。
需要指出的是,上述指令缓存单元404、上述第一输入缓存单元405、上述第二输入缓存单元406和上述输出缓存单元409均可为片上缓存。
其中,片上缓存是位于神经网络运算模块和内存之间的临时存储器,它的容量比内存小,但是交换速度快。片上缓存中的数据是内存中数据的一小部分,这一小部分数据是神经网络运算模块即将要访问的数据,当神经网络运算模块需要读写数据时,就可以直接访问片上缓存,从而加快读写数据的速度。
进一步地,上述运算单元408包括但不限定于三个部分,分别为乘法器、一个或多个加法器(可选地,多个加法器组成加法树)和激活函数单元/激活函数运算器。上述乘法器将第一输入数据(in1)和第二输入数据(in2)相乘得到第一输出数据(out1),过程为:out1=in1*in2;上述加法树将第三输入数据(in3)通过加法树逐级相加得到第二输出数据(out2),其中in3是一个长度为N的向量,N大于1,过称为:out2=in3[1]+in3[2]+...+in3[N],和/或将第三输入数据(in3)通过加法树累加之后得到的结果和第四输入数据(in4)相加得到第二输出数据(out2),过程为:out2=in3[1]+in3[2]+...+in3[N]+in4,或者将第三输入数据(in3)和第四输入数据(in4)相加得到第二输出数据(out2),过称为:out2=in3+in4;上述激活函数单元将第五输入数据(in5)通过激活函数(active)运算得到第三输出数据(out3),过程为:out3=active(in5),激活函数active可以是sigmoid、tanh、relu、softmax等函数,除了做激活操作,激活函数单元可以实现其他的非线性函数运算,可将输入数据(in)通过函数(f)运算得到输出数据(out),过程为:out=f(in)。
上述运算单元408还可以包括池化单元,池化单元将输入数据(in)通过池化运算得到池化操作之后的输出数据(out),过程为out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。
需要说明的是,上述权值的连接关系数据和输入神经元的连接关系数据均可以采用高维动态数组,可以用链表等等表示。
可以看出,在本发明实施例的方案中,上述板卡的映射单元中的稀疏处理单元对输入神经元和权值进行处理,剔除绝对值小于或者等于上述阈值的输入神经元和权值,减少了输入神经元和权值的数量,减少了额外的开销,板卡的运算单元根据处理后的输入神经元和权值进行人工神经网络运算,提高了运算的效率。
需要说明的是,上述板卡不仅可以进行稀疏神经网络运算,还可以进行稠密神经网络运算。上述板卡特别适用于稀疏神经网络的运算,是因为稀疏神经网络里0值数据或者绝对值很小的数据非常多。通过映射单元可以提出这些数据,在保证运算精度的情况下,可提高运算的效率。
需要指出的是,本发明实施例中提到的输入神经元和输出神经元并非是指整个神经网络的输入层中的神经元和输出层中的神经元,而是对于神经网络中任意相邻的两层神经元,处于网络前馈运算下层中的神经元即为输入神经元,处于网络前馈运算上层中的神经元即为输出神经元。以卷积神经网络为例,假设一个卷积神经网络有L层,K=1,2,3…L-1,对于第K层和第K+1层来说,第K层被称为输入层,该层中的神经元为上述输入神经元,第K+1层被称为输入层,该层中的神经元为上述输出神经元,即除了顶层之外,每一层都可以作为输入层,其下一层为对应的输出层。
上述各单元可以是硬件电路包括数字电路,模拟电路等等。硬件电路的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。上述神经网络运算模块中的运算单元可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。上述存储单元、指令缓存单元,第一输入缓存单元、第二输入缓存单元和输出缓存单元均可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。
在一种可行的实施例中,上述神经网络芯片包括上述神经网络运算模块、上述神经网络运算装置或者上述组合处理装置。
在一种可行的实施例中,本发明实施例提供了一种电子装置,该电子装置包括上述板卡或者神经网络芯片。
其中,该电子装置包括:数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备交通工具、家用电器、和/或医疗设备。
上述交通工具包括飞机、轮船和/或车辆;上述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
参见图7,图7为本发明实施例提供的一种神经网络运算方法的流程示意图。如图7所示,该方法包括:
S701、板卡对输入数据进行处理,以得到处理后的输入数据。
其中,所述输入数据包括至少一个输入神经元和/或至少一个权值,所述对输入数据进行处理之前,所述方法还包括:
对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;
判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;
当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;
对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;
判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;
当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
可选地,所述输入数据包括输入神经元和权值,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,所述对输入数据进行处理,以得到处理后的输入数据,包括:
根据所述输入神经元和所述权值获取所述输入神经元的连接关系数据和所述权值的连接关系数据;
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,
根据所述第二连接关系数据对所述输入神经元和所述权值进行处理,以得到所述处理后的输入神经元和所述处理后的权值。
可选地,所述输入神经元的连接关系数据和所述权值的连接关系数据以直接索引的形式表示,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行与操作,以得到所述第三连接关系数据。
可选地,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
当所述输入神经元的连接关系数据以直接索引的形式表示,所述权值的连接关系数据以步长索引的形式表示时,将所述权值的连接关系数据转换成以直接索引的形式表示的连接关系数据;
当所述权值的连接关系数据以直接索引的形式表示,所述输入神经元的连接关系数据以步长索引的形式表示时,将所述输入神经元的连接关系数据转换成以直接索引的形式表示的连接关系数据;
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行与操作,以得到所述第三连接关系数据。
可选地,当所述输入神经元的连接关系数据和所述权值的连接关系数均以步长的形式表,且表示所述输入神经元的连接关系数据和所述权值的连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
将所述输入神经元的连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第三连接关系数据;同理,对所述权值的连接关系数据的字符串进行同样的处理,得到第四连接关系数据;
从所述第三连接关系数据的字符串和所述第四连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
可选地,当表示所述输入神经元的连接关系数据和所述权值的连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
当所述输入神经元的关系数据是以步长索引的形式表示,所述权值的连接关系数据是以直接索引的形式表示时,将所述权值的连接关系数据转换成以步长索引的形式表示的连接关系数据;
当所述权值的关系数据是以步长索引的形式表示,所述输入神经元的连接关系数据是以直接索引的形式表示时,将所述输入神经元的连接关系数据转换成以步长索引的形式表示的连接关系数据;
将所述输入神经元的连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第三连接关系数据;同理,对所述权值的连接关系数据的字符串进行同样的处理,得到第四连接关系数据;
从所述第三连接关系数据的字符串和所述第四连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
其中,所述输入神经元的连接关系数据和所述权值的连接关系数据以直接索引或者步长索引的形式表示;
当所述输入神经元的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述输入神经元的绝对值小于或者等于第一阈值,1表示所述输入神经元的绝对值大于所述第一阈值;
当所述输入神经元的连接关系数据以步长索引形式表示时,该连接关系数据为绝对值大于上述第一阈值的输入神经元与上一个绝对值大于上述第一阈值的输入神经元之间的距离值组成的字符串;
当所述权值的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述权值的绝对值小于或者等于第二阈值,即所述权值对应的输入神经元与输出神经元之间没有连接,1表示所述权值的绝对值大于所述第二阈值,即所述权值对应的输入神经元与输出神经元之间有连接;以直接索引形式表示权值的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;
当所述权值的连接关系数据以步长索引的形式表示时,该连接关系数据为与输出神经元有连接的输入神经元的与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串。
S702、板卡获取神经运算指令,将所述神经运算指令译码成微指令。
S703、板卡根据所述微指令对所述处理后的输入数据进行人工神经网络运算,以得到运算结果。
需要说明的是,上述步骤S701-S703的描述可参见上述神经网络运算模块的相关描述,在此不再叙述。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种神经网络运算方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种板卡,其特征在于,所述板卡包括:
神经网络芯片封装结构、第一电气及非电气连接装置和通过所述第一电气及非电气连接装置与所述神经网络芯片封装结构连接的第一基板;
所述第一基板,用于承载所述芯片封装结构;
其中,所述神经网络芯片封装结构包括:
神经网络芯片、第二电气及非电气连接装置和通过所述第二电气及非电气连接装置与所述神经网络芯片连接的第二基板;
所述第二基板,用于承载所述神经网络芯片;
所述神经网络芯片包括所述神经网络芯片包括用于进行神经网络运算的神经网络运算模块;
其中,所述神经网络运算模块包括:
存储单元,用于存储输入数据、神经网络指令和运算结果,所述输入数据包括至少一个输入神经元和至少一个权值;
映射单元,用于通过直接存储访问单元获取所述输入数据后,对所述输入数据进行处理,以得到处理后的输入数据,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,并将所述处理后的输入神经元和所述处理后的权值存储到第一输入缓存单元和第二输入缓存单元中;
指令控制单元,用于从指令缓存单元中获取所述神经网络指令,并将所述神经网络指令译码成运算单元执行的微指令;
所述运算单元,用于从所述第一输入缓存单元和所述第二输入缓存单元中获取所述处理后的输入神经元和所述处理后的权值后,根据所述微指令对所述处理后的输入神经元和所述处理后的权值进行人工神经网络运算,以得到所述运算结果;
输出缓存单元,用于缓存所述运算结果。
2.根据权利要求1所述的板卡,其特征在于,所述第一基板包括:
内存单元接口,用于扩展存储容量;
通信接口,用于所述神经网络芯片封装结构和外部电路之间的数据传输。
3.根据权利要求1或2所述的板卡,其特征在于,所述第二电气及非电气连接装置包括与所述神经网络芯片连接的焊盘、与所述焊盘和与所述第二基板上的连接点连接的焊球。
4.根据权利要求1-3任一项所述的板卡,其特征在于,所述神经网络芯片封装结构还包括:
置于所述焊盘、所述焊球和所述连接点之间的空隙中的绝缘填充物,用于防止相邻的所述焊球之间产生干扰;
散热装置,用于散发所述神经网络芯片运行时的热量。
5.根据权利要求4所述的板卡,其特征在于,所述神经网络芯片包括:
至少一个所述神经网络运算模块的神经网络运算装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的神经网络运算,将执行结果通过I/O接口传递给其他处理装置;当所述神经网络运算装置包含多个所述神经网络运算模块时,所述多个所述神经网络运算模块间可以通过特定的结构进行连接并传输数据;其中,多个所述神经网络运算模块通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算;多个所述神经网络运算模块共享同一控制系统或拥有各自的控制系统;多个所述神经网络运算模块共享内存或者拥有各自的内存;多个所述神经网络运算模块的互联方式是任意互联拓扑,或者;
所述神经网络运算装置、通用互联接口和其他处理装置,所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的操作。
6.根据权利要求1-5任一项所述的板卡,其特征在于,所述神经网络运算模块还包括:
所述直接内存访问单元,用于在所述存储单元与所述指令缓存单元、所述映射单元和所述输出缓存单元之间进行数据的读写;
所述第一输入缓存单元,用于缓存第一缓存数据,所述第一缓存数据为所述处理后的输入神经元或处理后的权值;
所述第二输入缓存单元,用于缓存第二缓存数据,所述第二缓存数据为所述处理后的输入神经元或处理后的权值,且所述第二缓存数据与所述第一缓存数据不一致;
所述指令缓存单元,用于缓存所述直接存储访问单元读取所述神经网络指令。
7.根据权利要求5或6所述的板卡,其特征在于,所述映射单元包括:
第一稀疏处理单元,用于接收到第一输入数据后,根据所述第一输入数据以得到第一连接关系数据,并将该第一关系数据传输至连接关系处理单元;
第二稀疏处理单元,用于接收到第二输入数据后,根据所述第二输入数据以得到第二连接关系数据,并将该第二关系数据传输至所述连接关系处理单元;
所述连接关系处理单元,用于根据所述第一连接关系数据和所述第二连接关系数据,以得到第三连接关系数据,并将该第三连接关系数据传输至数据处理单元;
所述数据处理单元,用于在接收到所述第一输入数据,所述第二输入数据和所述第三连接关系数据后,根据所述第三连接关系数据对所述第一输入数据和所述第二输入数据进行处理,以得到第一输出数据和第二输出数据;
其中,当所述第一输入数据包括至少一个输入神经元,第二输入数据包括至少一个权值时,所述第一连接关系数据为输入神经元的连接关系数据,所述第二连接关系数据为权值的连接关系数据,所述第一输出数据为处理后的输入神经元,所述第二输出数据为处理后的权值;当所述第一输入数据包括至少一个权值,所述第二输入数据包括至少一个输入神经元时,所述第一连接关系数据为权值的连接关系数据,所述第二连接关系数据为输入神经元的连接关系数据,所述第一输出数据为处理后的权值,所述第二输出数据为处理后的输入神经元。
8.根据权利要求7所述的板卡,其特征在于,所述输入神经元的连接关系数据和所述权值的连接关系数据均以直接索引或者步长索引的形式表示;
当所述输入神经元的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述输入神经元的绝对值小于或者等于第一阈值,1表示所述输入神经元的绝对值大于所述第一阈值;
当所述输入神经元的连接关系数据以步长索引形式表示时,该连接关系数据为绝对值大于所述第一阈值的输入神经元与上一个绝对值大于所述第一阈值的输入神经元之间的距离值组成的字符串;
当所述权值的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述权值的绝对值小于或者等于第二阈值,即该权值对应的输入神经元与输出神经元之间没有连接,1表示所述权值的绝对值大于所述第二阈值,即该权值对应的输入神经元与输出神经元之间有连接;以直接索引形式表示权值的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;
当所述权值的连接关系数据以步长索引的形式表示时,该连接关系数据为与输出神经元有连接的输入神经元的与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串。
9.根据权利要求8所述的板卡,其特征在于,当所述第一连接关系数据和所述第二连接关系数据均以步长索引的形式表示,且表示所述第一连接关系数据和所述第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述连接关系处理单元具体用于:
将所述第一连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第四连接关系数据;同理,对所述第二连接关系数据的字符串进行同样的处理,得到第五连接关系数据;
从所述第四连接关系数据的字符串和所述第五连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
10.根据权利要求8所述的板卡,其特征在于,所述第一连接关系数据和所述第二连接关系数据均以直接索引的形式表示,所述连接关系处理单元具体用于:
对所述第一连接关系数据和所述第二连接关系数据进行与操作,以得到第三连接关系数据。
11.根据权利要求8所述的板卡,其特征在于,所述第一连接关系数据与所述第二连接关系数据中任意一个以步长索引的形式表示,另一个以直接索引的形式表示,所述连接关系处理单元具体用于:
若所述第一关系数据是以步长索引的形式表示,将所述第一连接关系数据转换成以直接索引的形式表示的连接关系数据;
若所述第二关系数据是以步长索引的形式表示,将所述第二连接关系数据转换成以直接索引的形式表示的连接关系数据;
对所述第一连接关系数据和所述第二连接关系数据进行与操作,以得到所述第三连接关系数据。
12.根据权利要求11所述的板卡,其特征在于,所述第一连接关系数据与所述第二连接关系数据中任意一个以步长索引的形式表示,另一个以直接索引的形式表示,当表示所述第一连接关系数据和所述第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时所述连接关系处理单元还具体用于:
若所述第一关系数据是以步长索引的形式表示,将所述第二连接关系数据转换成以步长索引的形式表示的连接关系数据;
若所述第二关系数据是以步长索引的形式表示,将所述第一连接关系数据转换成以步长索引的形式表示的连接关系数据;
将所述输入神经元的连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第三连接关系数据;同理,对所述权值的连接关系数据的字符串进行同样的处理,得到第四连接关系数据;
从所述第三连接关系数据的字符串和所述第四连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
13.根据权利要求5或7所述的板卡,其特征在于,所述映射单元对所述输入数据进行处理之前,所述映射单元还用于:
对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;
判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;
当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;
对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;
判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;
当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
14.根据权利要求5-13任一项所述的板卡,其特征在于,所述板卡用于稀疏神经网络运算或者稠密神经网络运算。
CN201711371889.4A 2017-12-11 2017-12-11 板卡和神经网络运算方法 Active CN109902817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711371889.4A CN109902817B (zh) 2017-12-11 2017-12-11 板卡和神经网络运算方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201711371889.4A CN109902817B (zh) 2017-12-11 2017-12-11 板卡和神经网络运算方法
CN201711315639.9A CN109902810B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201711315639.9A Division CN109902810B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法

Publications (2)

Publication Number Publication Date
CN109902817A true CN109902817A (zh) 2019-06-18
CN109902817B CN109902817B (zh) 2021-02-09

Family

ID=66819989

Family Applications (9)

Application Number Title Priority Date Filing Date
CN201711343477.XA Active CN109902815B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法
CN201810042283.4A Active CN109902814B (zh) 2017-12-11 2017-12-11 神经网络运算模块和方法
CN201711371888.XA Active CN109902816B (zh) 2017-12-11 2017-12-11 板卡和神经网络运算方法
CN201711371887.5A Active CN109902812B (zh) 2017-12-11 2017-12-11 板卡和神经网络运算方法
CN201711343478.4A Active CN109902811B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法
CN202010526360.0A Active CN111738431B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法
CN201711371889.4A Active CN109902817B (zh) 2017-12-11 2017-12-11 板卡和神经网络运算方法
CN201810042043.4A Active CN109902813B (zh) 2017-12-11 2017-12-11 神经网络运算模块和方法
CN201711315639.9A Active CN109902810B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法

Family Applications Before (6)

Application Number Title Priority Date Filing Date
CN201711343477.XA Active CN109902815B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法
CN201810042283.4A Active CN109902814B (zh) 2017-12-11 2017-12-11 神经网络运算模块和方法
CN201711371888.XA Active CN109902816B (zh) 2017-12-11 2017-12-11 板卡和神经网络运算方法
CN201711371887.5A Active CN109902812B (zh) 2017-12-11 2017-12-11 板卡和神经网络运算方法
CN201711343478.4A Active CN109902811B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法
CN202010526360.0A Active CN111738431B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201810042043.4A Active CN109902813B (zh) 2017-12-11 2017-12-11 神经网络运算模块和方法
CN201711315639.9A Active CN109902810B (zh) 2017-12-11 2017-12-11 神经网络运算设备和方法

Country Status (5)

Country Link
US (4) US12099918B2 (zh)
EP (3) EP3633557B1 (zh)
CN (9) CN109902815B (zh)
TW (3) TWI791569B (zh)
WO (1) WO2019114649A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
WO2020014590A1 (en) * 2018-07-12 2020-01-16 Futurewei Technologies, Inc. Generating a compressed representation of a neural network with proficient inference speed and power consumption
US10963390B2 (en) * 2018-08-21 2021-03-30 Neuchips Corporation Memory-adaptive processing method for convolutional neural network and system thereof
JP6852141B2 (ja) * 2018-11-29 2021-03-31 キヤノン株式会社 情報処理装置、撮像装置、情報処理装置の制御方法、および、プログラム
CN110597756B (zh) * 2019-08-26 2023-07-25 光子算数(北京)科技有限责任公司 一种计算电路以及数据运算方法
CN112749782B (zh) * 2019-10-31 2024-10-29 上海商汤智能科技有限公司 数据处理方法及相关产品
KR102788804B1 (ko) * 2019-12-27 2025-03-31 삼성전자주식회사 전자 장치 및 그 제어 방법
CN111260051B (zh) * 2020-02-01 2024-05-14 上海寒武纪信息科技有限公司 神经网络运算方法及相关装置
US11803736B1 (en) 2020-06-30 2023-10-31 Amazon Technologies, Inc. Fine-grained sparsity computations in systolic array
US11500962B1 (en) 2020-06-30 2022-11-15 Amazon Technologies, Inc. Emulating fine-grained sparsity in a systolic array
CN111553471A (zh) * 2020-07-13 2020-08-18 北京欣奕华数字科技有限公司 一种数据分析处理方法及装置
CN111930672B (zh) * 2020-08-10 2024-03-01 中国科学院计算技术研究所 异构智能处理器及电子设备
CN111930674B (zh) * 2020-08-10 2024-03-05 中国科学院计算技术研究所 乘累加运算装置及方法、异构智能处理器及电子设备
CN111930671B (zh) * 2020-08-10 2024-05-14 中国科学院计算技术研究所 异构智能处理器、处理方法及电子设备
CN112272074B (zh) * 2020-10-27 2022-11-25 国网内蒙古东部电力有限公司电力科学研究院 一种基于神经网络的信息传输速率控制方法及系统
CN115150614B (zh) * 2021-03-30 2025-02-07 中国电信股份有限公司 图像特征的传输方法、装置和系统
US12254398B2 (en) * 2021-03-30 2025-03-18 Amazon Technologies, Inc. Sparse machine learning acceleration
CN119472299B (zh) * 2025-01-06 2025-03-14 南京信息工程大学 基于神经网络的光子引线键合参数预测方法及光子引线键合控制系统和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625759A (zh) * 2009-07-30 2010-01-13 重庆医科大学 图像质量评价方法
CN105512723A (zh) * 2016-01-20 2016-04-20 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法
US9460384B2 (en) * 2013-12-11 2016-10-04 Qualcomm Incorporated Effecting modulation by global scalar values in a spiking neural network
CN109993291A (zh) * 2017-12-30 2019-07-09 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278945A (en) 1992-01-10 1994-01-11 American Neuralogical, Inc. Neural processor apparatus
US7367503B2 (en) * 2002-11-13 2008-05-06 Sandisk Corporation Universal non-volatile memory card used with various different standard cards containing a memory controller
US8385192B2 (en) * 2009-08-11 2013-02-26 International Business Machines Corporation Deduplicated data processing rate control
US8700541B2 (en) * 2012-02-02 2014-04-15 I-Shou University Modeling method of neuro-fuzzy system
US8983885B1 (en) * 2012-09-10 2015-03-17 FEM, Inc. Prospective media content generation using neural network modeling
EP3090329A4 (en) * 2013-10-20 2017-10-11 Pneuron, Corp. Event-driven data processing system
JP6204168B2 (ja) * 2013-11-27 2017-09-27 株式会社日立製作所 転送装置、サーバ、および経路変更方法
US20150206050A1 (en) * 2014-01-23 2015-07-23 Qualcomm Incorporated Configuring neural network for low spiking rate
CN103929210B (zh) * 2014-04-25 2017-01-11 重庆邮电大学 一种基于遗传算法与神经网络的硬判决译码方法
US10394851B2 (en) * 2014-08-07 2019-08-27 Cortical.Io Ag Methods and systems for mapping data items to sparse distributed representations
CN104346607B (zh) * 2014-11-06 2017-12-22 上海电机学院 基于卷积神经网络的人脸识别方法
CN104598971A (zh) * 2015-01-15 2015-05-06 宁波大学 基于径向基函数神经网络的单位脉冲响应函数提取方法
CN104679868B (zh) * 2015-03-06 2017-09-26 四川深度信息技术有限责任公司 一种基于数据间关联关系的遗漏数据填补方法
US20160358075A1 (en) * 2015-06-08 2016-12-08 The Regents Of The University Of Michigan System for implementing a sparse coding algorithm
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN107316078B (zh) * 2016-04-27 2021-05-07 中科寒武纪科技股份有限公司 用于执行人工神经网络自学习运算的装置和方法
CN106250939B (zh) * 2016-07-30 2020-07-24 复旦大学 基于fpga+arm多层卷积神经网络的手写体字符识别方法
CN107239825B (zh) * 2016-08-22 2021-04-09 赛灵思电子科技(北京)有限公司 考虑负载均衡的深度神经网络压缩方法
CN109478139B (zh) * 2016-08-13 2024-01-23 英特尔公司 用于共享存储器中的访问同步的装置、方法和系统
US10360163B2 (en) * 2016-10-27 2019-07-23 Google Llc Exploiting input data sparsity in neural network compute units
TWI607387B (zh) * 2016-11-25 2017-12-01 財團法人工業技術研究院 字符辨識系統及其字符辨識方法
CN106779068A (zh) * 2016-12-05 2017-05-31 北京深鉴智能科技有限公司 调整人工神经网络的方法和装置
CN108734279B (zh) * 2017-04-20 2021-04-23 上海寒武纪信息科技有限公司 一种运算装置和方法
US20180330235A1 (en) * 2017-05-15 2018-11-15 National Taiwan University Apparatus and Method of Using Dual Indexing in Input Neurons and Corresponding Weights of Sparse Neural Network
CN107807819B (zh) * 2017-07-20 2021-06-25 上海寒武纪信息科技有限公司 一种支持离散数据表示的用于执行人工神经网络正向运算的装置及方法
CN109697507B (zh) 2017-10-24 2020-12-25 安徽寒武纪信息科技有限公司 处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625759A (zh) * 2009-07-30 2010-01-13 重庆医科大学 图像质量评价方法
US9460384B2 (en) * 2013-12-11 2016-10-04 Qualcomm Incorporated Effecting modulation by global scalar values in a spiking neural network
CN105512723A (zh) * 2016-01-20 2016-04-20 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法
CN109993291A (zh) * 2017-12-30 2019-07-09 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品

Also Published As

Publication number Publication date
CN109902810A (zh) 2019-06-18
TWI771539B (zh) 2022-07-21
EP3657400A1 (en) 2020-05-27
CN109902813B (zh) 2020-08-04
CN109902815B (zh) 2020-05-19
CN109902812A (zh) 2019-06-18
EP3671573B1 (en) 2025-04-02
TW201928792A (zh) 2019-07-16
EP3657400B1 (en) 2025-05-07
EP3633557A1 (en) 2020-04-08
EP3633557A4 (en) 2020-09-16
US11803735B2 (en) 2023-10-31
US12099917B2 (en) 2024-09-24
US20200097824A1 (en) 2020-03-26
CN109902814A (zh) 2019-06-18
TWI791569B (zh) 2023-02-11
CN109902811B (zh) 2020-03-10
CN111738431B (zh) 2024-03-05
US12099918B2 (en) 2024-09-24
US20200097834A1 (en) 2020-03-26
US20200097803A1 (en) 2020-03-26
CN109902811A (zh) 2019-06-18
WO2019114649A1 (zh) 2019-06-20
TWI775998B (zh) 2022-09-01
CN109902813A (zh) 2019-06-18
CN109902817B (zh) 2021-02-09
CN109902816A (zh) 2019-06-18
CN109902815A (zh) 2019-06-18
CN109902816B (zh) 2020-08-04
CN111738431A (zh) 2020-10-02
EP3633557B1 (en) 2025-04-02
TW201928790A (zh) 2019-07-16
CN109902812B (zh) 2020-10-09
US20200097825A1 (en) 2020-03-26
TW201928795A (zh) 2019-07-16
EP3671573A1 (en) 2020-06-24
US11657258B2 (en) 2023-05-23
CN109902814B (zh) 2020-01-17
CN109902810B (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN109902817A (zh) 板卡和神经网络运算方法
US11907844B2 (en) Processing method and accelerating device
TW201928794A (zh) 神經網絡訓練方法及相關產品
TWI791725B (zh) 神經網絡運算方法、集成電路芯片裝置及相關產品
CN110175673B (zh) 处理方法及加速装置
TW201928793A (zh) 神經網絡正向運算方法及相關產品
CN111382864B (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
CB02 Change of applicant information

Address after: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences

Applicant after: Zhongke Cambrian Technology Co., Ltd

Address before: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences

Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20201223

Address after: Room 611-194, R & D center building, China (Hefei) international intelligent voice Industrial Park, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province

Applicant after: Anhui Cambrian Information Technology Co., Ltd

Address before: 100000 room 644, research complex, 6 South Road, Haidian District Science Academy, Beijing.

Applicant before: Zhongke Cambrian Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant