CN111027690B - 执行确定性推理的组合处理装置、芯片和方法 - Google Patents

执行确定性推理的组合处理装置、芯片和方法 Download PDF

Info

Publication number
CN111027690B
CN111027690B CN201911176119.3A CN201911176119A CN111027690B CN 111027690 B CN111027690 B CN 111027690B CN 201911176119 A CN201911176119 A CN 201911176119A CN 111027690 B CN111027690 B CN 111027690B
Authority
CN
China
Prior art keywords
instruction
module
vector
neural network
execution
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
CN201911176119.3A
Other languages
English (en)
Other versions
CN111027690A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201911176119.3A priority Critical patent/CN111027690B/zh
Publication of CN111027690A publication Critical patent/CN111027690A/zh
Application granted granted Critical
Publication of CN111027690B publication Critical patent/CN111027690B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请涉及执行确定性推理的组合处理装置,包括指令提取模块、指令预解码模块、指令解码模块、指令执行模块、存储器访问模块和寄存器回写模块;指令提取模块从指令存储器中读取指令,并更新程序计数器以指向下一条指令;指令预解码模块会将压缩指令解码为本机指令,指令解码模块访问寄存器堆并确定分支控制;指令执行模块将为指令执行向量计算或标量计算得到结果,为Load/Store指令访问已访问的内存,并计算分支和跳转并根据其预期结果进行检查;在存储器访问模块中,流水线的内存访问完成;寄存器回写模块将执行阶段的结果写入寄存器堆。本申请还涉及包含上述组合处理装置的确定性神经网络算法的运算装置、计算芯片及其应用。

Description

执行确定性推理的组合处理装置、芯片和方法
技术领域
本申请涉及一种执行确定性推理的组合处理装置、芯片和方法,适用于计算机技术领域。
背景技术
人工神经网络,简称神经网络,在机器学习和认知科学领域,是一种模仿生物神经网络的结构和功能的数学模型或计算模型,用于对函数进行估计和近似。神经网络由大量的节点(或称神经元)之间相互连接构成。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性,推动了信息技术和人工智能领域不断的发展。
神经网络虽然已经在诸多领域取得广泛的成功,然而在现阶段,大部分神经网络算法在设计时并没有考虑到数据安全和计算可验证性等问题。第一,现有神经网络算法没有考虑运算的可重现性和一致性,其运算结果在不同的架构甚至相同的计算环境下存在不一致的可能。这种不确定性是多因素的,包括浮点数运算的舍入误差和并行计算中的竞争等。第二,现有算法不具备对训练数据和推理结果的安全保护的功能。受此影响,神经网络算法在金融、可信计算、区块链、智能合约等安全需求更高的领域的应用受到了很大的限制。实现确定性的神经网络计算,确保神经网络模型的计算的数据安全、可重现、可信任,已经成为了行业内外的迫切需求
发明内容
本发明的目的是提供一种能够以确定顺序执行神经网络计算的计算芯片的运算装置和方法,能够消除神经网络计算过程中的运算舍入误差和并行竞争等因素,避免神经网络计算出现不一致性的情况,解决深度神经网络计算的可验证性问题。
根据本申请的一种执行确定性推理的组合处理装置,包括指令提取模块、指令预解码模块、指令解码模块、指令执行模块、存储器访问模块和寄存器回写模块;其中,指令提取模块从指令存储器中读取指令,并更新程序计数器以指向下一条指令;指令预解码模块会将压缩指令解码为本机指令,指令解码模块访问寄存器堆并确定分支控制;指令执行模块将为指令执行向量计算或标量计算得到结果,为Load/Store指令访问已访问的内存,并计算分支和跳转并根据其预期结果进行检查;在存储器访问模块中,流水线的内存访问完成;寄存器回写模块将执行阶段的结果写入寄存器堆。
根据本申请的一种确定性神经网络算法的计算芯片的运算装置,包括:
整型向量运算器,用于进行整数向量的运算;
执行管道,用于通用运算和指令的读取、译码和执行;
存储单元,用于提供所述执行管道访问的存储单元,以及存储所述整型向量运算器执行各指令所用之输入值、输出值和临时值;
所述执行管道是如上所述的组合处理装置。
优选地,所述整型向量运算器中设置有临时值存储单元,用于存储依照指令计算的临时值,并对存储单元进行读取和写入操作。所述整型向量运算器和所述存储单元被配置为随机存储器,所述整型向量运算器和所述存储单元中的输入值和临时值将在每次运算指令完成后被丢弃。所述整型向量运算器执行整型向量加法、整型向量乘加和整型向量非线性函数值计算。
优选地,所述整型向量运算器通过地址索引访问所述存储单元,读取和写入输入值、输出值和临时值;在执行管道的指令执行阶段中调用执行,获取存储单元中对应输入值、输出值和临时值之地址索引,通过指令执行管道分配的地址索引,完成对相应地址索引的存储单元的读取和写入操作。更优选地,整型向量运算指令从寄存器堆读取输入向量在内存中的对应地址索引,并连同输出向量的占位符的地址索引,提供给整型向量运算器完成计算。
根据本申请的一种确定性深度神经网络计算芯片,包括:执行管道、整型向量运算器、数据接口、指令接口、分支预测模块、数据缓存模块和可信计算协处理器;
所述执行管道与指令缓存单元、寄存器堆、控制和状态寄存器进行交互以完成指令执行,分支预测模块、数据缓存模块和可信计算协处理器作为执行管道的附加模块提供分支预测、安全计算相关函数、指令缓存相关功能;所述执行管道是如上所述的组合处理装置。
优选地,所述可信计算协处理器通过数据接口和通信总线接收外部指令和进行通信,安全算法在指令执行阶段由安全引擎进行加速,所述安全引擎包含对称加密算法、非对称加密算法和随机数发生器。优选地,所述可信计算协处理器包括加解密协处理器,所述加解密协处理器包括加密运算单元、解密运算单元、随机数发生器、加解密模块和安全防护模块。
本申请还涉及一种利用如上所述的确定性深度神经网络计算芯片进行计算的方法,包括以下步骤:
步骤1:神经网络编译器将神经网络计算图通过确定性拓扑排序算法,转换为向量运算表达式列表;通过存储规划算法,获取向量运算表达式列表中所有向量对应占位符的存储索引;将所有输入向量存入对应占位符的存储索引,以用于神经网络推理运算;
步骤2:指令接口从指令高速缓存读入向量运算表达式列表的指令;
步骤3:控制器将指令解码为每个功能组件的微指令;
步骤4:运算单元从寄存器堆获得输入向量或标量,并根据操作码和操作数类型确定是否由整型向量运算器完成运算,并将结果回写到寄存器堆;
步骤5:整型向量运算指令从寄存器堆读取输入向量在内存中的对应地址索引,并连同输出向量的占位符的地址索引,提供给整型向量运算器完成计算;
步骤6:根据操作码执行存储器访问和寄存器回写;
迭代执行上述步骤,直到得到神经网络计算图的运算结果。
其中,步骤3中,所述控制器访问寄存器堆,计算立即值,设置分支,并检查非法的操作码和操作码组合,对于低频算子和超出向量运算器算子定义域范围的向量指令,通过向量展开,拆分为多个通用标量指令并进行解码。
本申请还涉及一种电子设备,所述电子设备包括如上所述的确定性深度神经网络计算芯片。
本申请还涉及一种板卡,所述板卡包括存储器件、通信装置和控制器件以及如上所述的确定性深度神经网络计算芯片;其中,所述计算芯片与所述存储器件、所述控制器件以及所述通信装置分别连接。
优选地,板卡还包括用于连接所述存储器件、通信装置和控制器件的主板总线,所述主板总线包括数据总线、地址总线和控制总线;
所述主板总线的主控为所述确定性神经网络计算芯片,计算芯片通过控制总线,向各个部件发送控制信号,通过地址总线用地址信号指定需要访问的部件,通过数据总线传送数据信息。
根据本申请提供的一种确定性深度神经网络数据处理器、芯片及电子设备,具有以下有益技术效果:
(1)通过执行管道的调度,神经网络计算图的指令严格依照图的拓扑序执行,消除了并行计算中竞争带来的不确定性。
(2)通过整型向量运算器和非线性向量运算的等价变换,消除了传统浮点向量运算的舍入误差带来的不确定性。
(3)运算模块生成输出值后,存储于存储单元的输入值和临时值将被丢弃,增加了计算可使用存储单元,提高了存储单元的利用率。
(4)本申请的运算装置和运算方法提供了确定性的神经网络计算。
(5)本申请的可信计算协处理器从底层保证了数据的安全性,不但满足了高性能、高集成度、小型化的需求,还具备对数据传输安全保护的功能。
附图说明
图1示出了本发明的确定性深度神经网络计算芯片的一种实施例。
图2示出了本发明的可信计算协处理器的一种实施例。
图3描绘了根据本公开的实施例的神经网络的计算流程。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
根据本发明的确定性神经网络算法的计算芯片的运算装置,包括:
整型向量运算器,用于进行整数向量的例如加法、减法、乘加和非线性求值运算;
执行管道,用于通用运算和指令读取、译码、执行;
存储单元,用于提供上述执行管道访问的存储单元,以及存储上述整型向量运算器执行各指令所用之输入值、输出值和临时值;
所述整型向量运算器中设置有临时值存储单元,用于存储依照指令计算的临时值,并对存储单元进行读取和写入操作。
优选地,所述整型向量运算器、所述存储单元被配置为随机存储器;所述整型向量运算器通过地址索引访问所述存储单元,读取和写入输入值、输出值和临时值;所述整型向量运算器、所述存储单元中的所述输入值和临时值将在每次运算指令完成后被丢弃。
优选地,在执行管道的指令执行阶段中调用执行,获取存储单元中对应输入值、输出值和临时值之地址索引,通过指令执行管道分配的地址索引,完成对相应地址索引的存储单元的读取和写入操作。
图1示出了根据本发明的具有隐私保护的确定性深度神经网络计算芯片100的一种实施例。如图所示,确定性深度神经网络计算芯片100包括执行管道101、整型向量运算器102、数据接口103、指令接口104、分支预测模块105、数据缓存模块106、可信计算协处理器200。所述确定性深度神经网络计算芯片100实现了哈佛结构,用于同时访问指令和数据存储器。执行管道101是一种执行确定性人工智能推理的组合处理装置。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。
本申请的确定性深度神经网络计算芯片100具有优化的折叠式6级流水线,可优化执行和内存访问之间的重叠,从而减少停顿并提高效率。具体地,确定性深度神经网络计算芯片100具有优化的折叠式6级执行管道101,其中包括指令提取模块110,指令预解码模块111,指令解码模块112,指令执行模块113,存储器访问模块114和寄存器回写模块115。通过重叠执行阶段,执行管道101能够在每个时钟周期执行一条指令。
执行管道101可以与指令缓存单元120、寄存器堆121、控制和状态寄存器122进行交互以完成指令执行,分支预测模块105、数据缓存模块106和可信计算协处理器200可以作为执行管道101的附加模块提供分支预测、安全计算相关函数、指令缓存相关功能。
指令缓存单元120用于通过缓存最近获取的指令来加速指令的获取。指令高速缓存能够在任何16位边界上每个周期获取一个包,但不能跨块边界获取。在缓存未命中期间,将从指令存储器中加载完整块。可以根据用户需要配置指令缓存。缓存大小,块长度,关联性和替换算法是可配置的。寄存器堆121可以由32个寄存器单元(X0-X31)组成。寄存器X0始终为零。寄存器堆具有两个读取端口和一个写入端口。确定性深度神经网络计算芯片100的状态由控制和状态寄存器122(CSR)维护。控制和状态寄存器122确定功能集,设置中断和中断掩码,并确定特权级别。CSR映射到内部12位地址空间,并且可以使用特殊命令进行访问。
本发明中确定性深度神经网络计算芯片100可以在每个时钟周期执行一条指令。但是由于流水线体系结构,每个指令需要几个时钟周期才能完成。当分支指令被解码时,其条件和结果是未知的,在继续获取新指令之前等待分支结果会导致过多的处理器停顿,从而影响处理器的性能。本申请通过设置分支预测模块105,使得处理器无需等待就可以预测分支的结果,并继续从预测的地址获取指令。当预测到分支错误时,处理器必须刷新其管道并重新开始从计算出的分支地址进行提取。处理器的状态不受影响,因为流水线已刷新,因此实际上没有执行任何错误提取的指令。但是,分支预测可能已迫使指令缓存加载新指令。指令高速缓存状态未恢复,这意味着预测的指令保留在指令高速缓存中。
数据缓存模块106用于通过缓冲最近访问的内存位置来加速数据内存访问。数据缓存可以处理字节,半字和字访问,只要它们位于各自的边界上即可。访问非自然边界上的存储位置(例如,地址0x003上的字访问)会导致数据加载陷阱。在高速缓存未命中期间,如果需要,会将完整的块写回到内存中,然后将新加载的块加载到高速缓存中。
可信计算协处理器200通过数据接口202和通信总线203接收外部指令和进行通信,安全算法在指令执行阶段由安全引擎204进行加速。所述安全引擎,包含了常用对称加密算法、非对称加密算法、随机数发生器,具体包括:硬件随机数发生器210,AES、3DES算法运算器211,HASH和HMAC算法运算器212,公钥私钥算法运算器213。所述HASH和HMAC算法运算器,支持SHA1、SHA256等常用杂凑函数算法的计算加速;所述公钥私钥算法运算器,支持RSA,Diffie-Hellman,ECC等常用公钥私钥算法的计算加速。本申请的可信计算协处理器基于边缘可信密码学技术的芯片计算方法,其配合神经网络计算处理器能够实现高功效、低成本的边缘可信计算,功能上实现数字签名技术、数字认证技术和数字鉴权技术。
优选地,本申请的可信计算协处理器包括支持上述ECC、AES、SHA256等密码学算法的加解密协处理器,具体包括加密运算单元、解密运算单元、数据接口、通信总线,加解密协处理器还包括随机数发生器、加解密模块和安全防护模块。加密运算单元和解密运算单元用于对密码芯片接收到的目标数据根据随机数发生器产生的随机数进行加解密运算。安全防护模块用于获取密码芯片的实时环境数据,并对密码芯片进行安全控制。
指令提取模块110从指令存储器121中读取一条指令,并更新程序计数器以指向下一条指令。指令预解码模块111会将16位压缩指令解码为本机32位指令,指令解码模块112访问寄存器堆并确定分支控制。指令执行模块113将为ALU,MUL,DIV指令执行向量计算或标量计算得到结果,为Load/Store指令访问已访问的内存,并计算分支和跳转并根据其预期结果进行检查。在存储器访问模块114中,流水线的内存访问完成,包含此阶段可确保管道的高性能。寄存器回写模块115将执行阶段的结果写入寄存器堆。
其中,指令提取模块110中的指令提取单元从程序存储器中加载新的包裹。包裹是包含一个或多个指令的代码字段。要装载的包裹的地址由程序计数器(PC)保留。程序计数器的宽度为32位或64位。只要指令流水线没有停止,程序计数器就会更新。如果刷新了管道,则程序计数器将从给定的地址重新启动。
其中,指令预解码模块111中的预解码单元将16位压缩指令转换为基本的32位指令,然后处理程序计数器修改指令,例如“跳转并链接”和“分支”。这避免了等待执行阶段触发更新,并减少了对管道刷新的需求。分支的目标地址是根据可选的分支预测单元提供的数据进行预测的,或者是根据偏移量静态确定的。
其中,指令解码模块112中的指令解码单元确保执行单元的操作数可用。它访问寄存器堆,计算立即值,设置分支,并检查非法的操作码和操作码组合。
其中,指令执行模块113对指令解码模块112提供的数据执行所需的操作。执行阶段具有多个执行单元,每个执行单元具有唯一的功能。整型向量运算器102执行整型向量加法、整型向量乘加和整型向量非线性函数值计算。ALU执行逻辑和算术运算。乘法器单元计算有符号/无符号乘法。除法器单元计算有符号/无符号除法和余数。加载存储单元访问数据存储器。分支单元计算跳转和分支地址,并验证预测的分支。每个时钟周期只能执行一次操作。除除法指令和整型向量运算指令外,大多数操作都在一个时钟周期内完成,除法指令和整型向量运算指令总是需要多个时钟周期才能完成。乘法器支持可配置的延迟,以提高性能。
另外,指令执行模块113还可以对整型向量运算器102提供的数据执行所需的操作。整型向量运算指令从寄存器堆读取输入向量在内存中的对应地址索引,并连同输出向量的占位符的地址索引,提供给整型向量运算器完成相关向量计算。
其中,存储器访问模块114中,内存访问阶段等待内存读取访问完成。当访问存储器时,在执行阶段将计算地址、数据和控制信号。存储器锁存这些信号,然后执行实际访问。这意味着直到1个时钟周期后,读取数据才可用。寄存器回写模块115中,回写阶段将来自执行单元和存储器读取操作的结果写入寄存器堆。
优选地,整型向量运算器102,提供了加法运算器130,乘加运算器131和函数值运算器132。整型向量运算器的输入为长度不超过V_LEN的一维向量,输出为存储对应结果的一维向量,其长度也不应超过V_LEN。在本实施例中,V_LEN为216,即整型向量运算器的输入向量长度不超过216。整型向量运算器从内存的地址索引中获取向量,并将结果写回到对应地址索引的输出占位符向量中。整型向量运算器通过不同的组件可以对加法、减法、乘加三种算子进行整数数值运算;对tanh、sigmoid、exp等常用非线性算子通过查表法进行计算,其定义域不应超过8位无符号整数的限制;对激活(ReLU)、最大值池化(max pooling)、转置(transpose)、矩阵极值(max、min)等转换算子通过内置硬件排序网络进行计算;对于其他低频算子和超出上述算子定义域范围的向量计算,通过向量展开,对向量各元素通过流水线逐一计算。
神经网络计算图是一个有向图,图的每个节点表示神经网络中的一层神经元,每条边表示层级间的连接关系,通常可分为有向无环图和有向有环图。本发明所述神经网络计算图特定为无环有向图。于本发明所述确定性神经网络计算芯片100上进行神经网络推理运算,应提供约定执行格式的神经网络计算图和计算图中各占位符对应的输入数据。神经网络计算图以确定性的拓扑排序以决定所有向量运算符的计算先后顺序,并按照拓扑序逐一执行所有向量运算指令。
图3描绘了根据本公开的实施例的神经网络的计算流程。
步骤1:神经网络编译器将神经网络计算图300通过确定性拓扑排序算法,转换为向量运算表达式列表301,以用于本发明中的计算芯片;通过存储规划算法,获取向量运算表达式列表中所有向量对应占位符的存储索引;将所有输入向量存入对应占位符的存储索引302,以用于神经网络推理运算。
步骤2:指令接口104从指令高速缓存读入向量运算表达式列表301的指令,例如向量加指令,向量乘加指令,向量激活函数指令等适用于执行神经网络操作的通用向量指令,或者适用于整型计算的通用标量指令。
步骤3:控制器将指令解码为每个功能组件的微指令。它访问寄存器堆,计算立即值,设置分支,并检查非法的操作码和操作码组合。对于低频算子和超出向量运算器算子定义域范围的向量指令,通过向量展开,拆分为多个通用标量指令并进行解码。
步骤4:运算单元从寄存器堆获得输入向量/标量,并根据操作码和操作数类型确定是否由整型向量运算器完成运算,并将结果回写到寄存器堆。整型向量运算指令从寄存器堆读取输入向量在内存中的对应地址索引,并连同输出向量的占位符的地址索引,提供给整型向量运算器完成相关向量计算。整型标量运算指令、浮点数标量运算指令和已经被拆分的向量运算指令,由运算单元内置的运算器执行运算。
步骤5:根据操作码执行存储器访问和寄存器回写。
迭代执行上述五个步骤,直到得到神经网络计算图的运算结果。
本申请还涉及一种搭载上述计算芯片的计算板卡,所述计算板卡还搭载了以随机存取存储器为介质的存储单元模块,用于连接外部存储器的SATA总线模块,用于连接外部通信的以太网总线模块,用于连接上述模块的主板总线。
本发明的搭载所述计算芯片的计算板卡,其中,主板总线包括数据总线、地址总线和控制总线。所述主板总线的主控为所述确定性神经网络算法的计算芯片,计算芯片通过控制总线,向各个部件发送控制信号,通过地址总线用地址信号指定其需要访问的部件,通过数据总线传送数据信息。
本申请还涉及一种电子设备,所述电子设备包括如上所述的确定性深度神经网络计算芯片。
本申请还涉及一种板卡,所述板卡包括存储器件、通信装置和控制器件以及如上所述的确定性深度神经网络计算芯片;其中,所述计算芯片与所述存储器件、所述控制器件以及所述通信装置分别连接。所述存储器件用于存储数据,所述通信装置用于实现芯片与外部设备之间的数据传输,所述控制器件用于对所述芯片的状态进行监控。
优选地,板卡还包括用于连接所述存储器件、通信装置和控制器件的主板总线,所述主板总线包括数据总线、地址总线和控制总线;所述主板总线的主控为所述确定性神经网络计算芯片,计算芯片通过控制总线,向各个部件发送控制信号,通过地址总线用地址信号指定需要访问的部件,通过数据总线传送数据信息。
虽然本申请所揭露的实施方式如上,但所述的内容只是为了便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属技术领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (15)

1.一种执行确定性推理的组合处理装置,其特征在于,包括指令提取模块、指令预解码模块、指令解码模块、指令执行模块、存储器访问模块和寄存器回写模块;其中,指令提取模块从指令存储器中读取指令,并更新程序计数器以指向下一条指令;指令预解码模块会将压缩指令解码为本机指令,指令解码模块中的指令解码单元确保执行单元的操作数可用,指令解码模块访问寄存器堆并确定分支控制;指令执行模块将为指令执行整型向量计算或标量计算得到整型结果,为Load/Store指令访问已访问的内存,并计算分支和跳转并根据其预期结果进行检查;在存储器访问模块中,流水线的内存访问完成;寄存器回写模块将执行阶段的结果写入寄存器堆。
2.一种确定性神经网络算法的计算芯片的运算装置,其特征在于,包括:
整型向量运算器,用于进行整数向量的运算;
执行管道,用于通用运算和指令的读取、译码和执行;
存储单元,用于提供所述执行管道访问的存储单元,以及存储所述整型向量运算器执行各指令所用之输入值、输出值和临时值;
所述执行管道是根据权利要求1所述的组合处理装置。
3.根据权利要求2所述的运算装置,其特征在于,所述整型向量运算器中设置有临时值存储单元,用于存储依照指令计算的临时值,并对存储单元进行读取和写入操作。
4.根据权利要求2所述的运算装置,其特征在于,所述整型向量运算器和所述存储单元被配置为随机存储器,所述整型向量运算器和所述存储单元中的输入值和临时值将在每次运算指令完成后被丢弃。
5.根据权利要求2或3或4所述的运算装置,其特征在于,所述整型向量运算器执行整型向量加法、整型向量乘加和整型向量非线性函数值计算。
6.根据权利要求2或3或4所述的运算装置,其特征在于,所述整型向量运算器通过地址索引访问所述存储单元,读取和写入输入值、输出值和临时值;在执行管道的指令执行阶段中调用执行,获取存储单元中对应输入值、输出值和临时值之地址索引,通过指令执行管道分配的地址索引,完成对相应地址索引的存储单元的读取和写入操作。
7.根据权利要求6所述的运算装置,其特征在于,整型向量运算指令从寄存器堆读取输入向量在内存中的对应地址索引,并连同输出向量的占位符的地址索引,提供给整型向量运算器完成计算。
8.一种确定性深度神经网络计算芯片,其特征在于,包括:执行管道、整型向量运算器、数据接口、指令接口、分支预测模块、数据缓存模块和可信计算协处理器;
所述执行管道与指令缓存单元、寄存器堆、控制和状态寄存器进行交互以完成指令执行,分支预测模块、数据缓存模块和可信计算协处理器作为执行管道的附加模块提供分支预测、安全计算相关函数、指令缓存相关功能;
所述执行管道是根据权利要求1所述的组合处理装置。
9.根据权利要求8所述的确定性深度神经网络计算芯片,其特征在于,所述可信计算协处理器通过数据接口和通信总线接收外部指令和进行通信,安全算法在指令执行阶段由安全引擎进行加速,所述安全引擎包含对称加密算法、非对称加密算法和随机数发生器。
10.根据权利要求8或9所述的确定性深度神经网络计算芯片,其特征在于,所述可信计算协处理器包括加解密协处理器,所述加解密协处理器包括加密运算单元、解密运算单元、随机数发生器、加解密模块和安全防护模块。
11.一种利用权利要求8-10任一项所述的确定性深度神经网络计算芯片进行计算的方法,其特征在于:包括以下步骤:
步骤1:神经网络编译器将神经网络计算图通过确定性拓扑排序算法,转换为向量运算表达式列表;通过存储规划算法,获取向量运算表达式列表中所有向量对应占位符的存储索引;将所有输入向量存入对应占位符的存储索引,以用于神经网络推理运算;
步骤2:指令接口从指令高速缓存读入向量运算表达式列表的指令;
步骤3:控制器将指令解码为每个功能组件的微指令;
步骤4:运算单元从寄存器堆获得输入向量或标量,并根据操作码和操作数类型确定是否由整型向量运算器完成运算,并将结果回写到寄存器堆;
步骤5:整型向量运算指令从寄存器堆读取输入向量在内存中的对应地址索引,并连同输出向量的占位符的地址索引,提供给整型向量运算器完成计算;
步骤6:根据操作码执行存储器访问和寄存器回写;
迭代执行上述步骤,直到得到神经网络计算图的运算结果。
12.根据权利要求11所述的方法,其特征在于:在步骤3中,所述控制器访问寄存器堆,计算立即值,设置分支,并检查非法的操作码和操作码组合,对于低频算子和超出向量运算器算子定义域范围的向量指令,通过向量展开,拆分为多个通用标量指令并进行解码。
13.一种电子设备,其特征在于,所述电子设备包括根据权利要求8-10任一项所述的确定性深度神经网络计算芯片。
14.一种板卡,其特征在于,所述板卡包括存储器件、通信装置和控制器件以及权利要求8-10任一项所述的确定性深度神经网络计算芯片;
其中,所述计算芯片与所述存储器件、所述控制器件以及所述通信装置分别连接。
15.根据权利要求14所述的板卡,其特征在于,还包括用于连接所述存储器件、通信装置和控制器件的主板总线,所述主板总线包括数据总线、地址总线和控制总线;
所述主板总线的主控为所述确定性深度神经网络计算芯片,计算芯片通过控制总线,向各个部件发送控制信号,通过地址总线用地址信号指定需要访问的部件,通过数据总线传送数据信息。
CN201911176119.3A 2019-11-26 2019-11-26 执行确定性推理的组合处理装置、芯片和方法 Active CN111027690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911176119.3A CN111027690B (zh) 2019-11-26 2019-11-26 执行确定性推理的组合处理装置、芯片和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911176119.3A CN111027690B (zh) 2019-11-26 2019-11-26 执行确定性推理的组合处理装置、芯片和方法

Publications (2)

Publication Number Publication Date
CN111027690A CN111027690A (zh) 2020-04-17
CN111027690B true CN111027690B (zh) 2023-08-04

Family

ID=70202282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911176119.3A Active CN111027690B (zh) 2019-11-26 2019-11-26 执行确定性推理的组合处理装置、芯片和方法

Country Status (1)

Country Link
CN (1) CN111027690B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117688623A (zh) * 2020-07-01 2024-03-12 陈子祺 一种基于区块链的可信计算芯片
CN112633505B (zh) 2020-12-24 2022-05-27 苏州浪潮智能科技有限公司 一种基于risc-v的人工智能推理方法和***
CN113010213B (zh) * 2021-04-15 2022-12-09 清华大学 基于阻变忆阻器的精简指令集存算一体神经网络协处理器
CN115421788B (zh) * 2022-08-31 2024-05-03 苏州发芯微电子有限公司 寄存器堆***、方法及使用该寄存器堆的汽车控制处理器
CN115686635B (zh) * 2023-01-03 2023-04-18 杭州米芯微电子有限公司 一种无时钟电路的mcu结构以及相应的电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529668A (zh) * 2015-11-17 2017-03-22 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN107329936A (zh) * 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法
CN108197705A (zh) * 2017-12-29 2018-06-22 国民技术股份有限公司 卷积神经网络硬件加速装置及卷积计算方法及存储介质
CN109523020A (zh) * 2017-10-30 2019-03-26 上海寒武纪信息科技有限公司 一种运算装置和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259737A1 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Vector processor with special purpose registers and high speed memory access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529668A (zh) * 2015-11-17 2017-03-22 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN107329936A (zh) * 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法
CN109523020A (zh) * 2017-10-30 2019-03-26 上海寒武纪信息科技有限公司 一种运算装置和方法
CN110084361A (zh) * 2017-10-30 2019-08-02 上海寒武纪信息科技有限公司 一种运算装置和方法
CN108197705A (zh) * 2017-12-29 2018-06-22 国民技术股份有限公司 卷积神经网络硬件加速装置及卷积计算方法及存储介质

Also Published As

Publication number Publication date
CN111027690A (zh) 2020-04-17

Similar Documents

Publication Publication Date Title
CN111027690B (zh) 执行确定性推理的组合处理装置、芯片和方法
CN109661647B (zh) 数据处理装置和方法
EP3391195B1 (en) Instructions and logic for lane-based strided store operations
US10031765B2 (en) Instruction and logic for programmable fabric hierarchy and cache
BR102020019657A2 (pt) aparelhos, métodos e sistemas para instruções de um acelerador de operações de matriz
US20200210516A1 (en) Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions
US20170286122A1 (en) Instruction, Circuits, and Logic for Graph Analytics Acceleration
US10157059B2 (en) Instruction and logic for early underflow detection and rounder bypass
WO2017112176A1 (en) Instructions and logic for load-indices-and-prefetch-gathers operations
US20170177363A1 (en) Instructions and Logic for Load-Indices-and-Gather Operations
WO2017112177A1 (en) Instructions and logic for lane-based strided scatter operations
WO2017112193A1 (en) Instruction and logic for reoccurring adjacent gathers
US20170177353A1 (en) Instructions and Logic for Get-Multiple-Vector-Elements Operations
WO2017112175A1 (en) Instructions and logic for load-indices-and-scatter operations
WO2017172172A1 (en) Instruction, circuits, and logic for piecewise linear approximation
JP2019511056A (ja) 複素数乗算命令
US20160092400A1 (en) Instruction and Logic for a Vector Format for Processing Computations
TW201729077A (zh) 用於設置多重向量元素操作之指令及邏輯
WO2017105716A1 (en) Instructions and logic for even and odd vector get operations
TW201732556A (zh) 用於集合運算之加速的硬體內容關聯之資料結構
US10467006B2 (en) Permutating vector data scattered in a temporary destination into elements of a destination register based on a permutation factor
US9588765B2 (en) Instruction and logic for multiplier selectors for merging math functions
Stepchenkov et al. Recurrent data-flow architecture: features and realization problems
JP2021507348A (ja) ベクトル・キャリー付き加算命令
Glossner et al. HSA-enabled DSPs and accelerators

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