处理器实施的神经网络方法和神经网络设备
1.本技术要求于2020年9月8日在韩国知识产权局提交的第10-2020-0114564号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
2.下面的描述涉及具有神经网络剖析的方法和设备。
背景技术:
3.在仿真器推断的情况下,可通过将神经处理单元(npu)的寄存器传输级(register-transfer level,rtl)上传到仿真器和执行仿真器并执行推断的板(board)中,并且通过在推断完成之后下载日志,然后通过使用剖析数据进行解析而执行剖析(profiling),来对npu执行剖析。
4.在目标推断的情况下,可通过在移动电话内核驱动器端连接npu的硬件事件信号和arm系统跟踪宏单元(stm)来在推断期间获得事件信息。
5.这样的方法可需要数据后处理过程,并且由于大容量的日志文件而使用大量时间执行剖析。此外,可能不容易确定在当前执行推断的神经网络中执行的部分,并且当事件日志丢失时,剖析数据可能不准确。
技术实现要素:
6.提供本发明内容以简要的形式介绍在在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求保护的主题的关键特征或必要特征,也不意在用于帮助确定要求保护的主题的范围。
7.在一个总体方面,一种处理器实施的神经网络方法包括:接收与神经网络操作对应的事件和用于执行神经网络操作的控制程序;基于所述事件和控制程序来检测丢失事件;和基于检测的结果来生成神经网络操作的配置文件。
8.所述事件可包括:神经网络操作的开始事件和结束事件。
9.控制程序可包括:神经网络操作的执行序列。
10.检测的步骤可包括:确定所述事件是否与控制程序中包括的执行序列匹配;和基于确定的结果来检测丢失事件。
11.生成的步骤可包括:确定丢失事件的类型;和通过基于确定的类型补偿丢失事件来生成配置文件。
12.通过基于类型补偿丢失事件来生成配置文件的步骤可包括:响应于丢失事件的类型为开始事件,在通过从丢失事件的后一事件减去第一时间量而确定的时间处将开始事件插入配置文件中。
13.后一事件可以是结束事件。
14.通过基于类型补偿丢失事件来生成配置文件的步骤可包括:响应于丢失事件的类型为结束事件,确定神经网络操作是否与对应于另一操作的事件重叠;和基于确定的结果
将结束事件插入配置文件中。
15.将结束事件插入的步骤可包括:响应于确定神经网络操作与对应于所述另一操作的事件重叠,在重叠开始的部分中插入结束事件。
16.将结束事件插入的步骤可包括:响应于确定神经网络操作不与对应于所述另一操作的事件重叠,在通过从丢失事件的后一事件减去第二时间量而确定的时间处插入结束事件。
17.所述方法可包括:基于生成的配置文件来优化神经网络操作;和使用优化的神经网络操作来执行推断,其中,神经网络操作可包括卷积、填充、池化和重新格式化中的任何一个。
18.一种非暂时性计算机可读存储介质可存储指令,所述指令在由处理器执行时,配置处理器执行所述方法。
19.在另一总体方面,一种神经网络设备包括:接收器,被配置为:接收与神经网络操作对应的事件和用于执行神经网络操作的控制程序;和处理器,被配置为:基于所述事件和控制程序来检测丢失事件;和基于检测的结果来生成神经网络操作的配置文件。
20.所述事件可包括:神经网络操作的开始事件和结束事件。
21.控制程序可包括:神经网络操作的执行序列。
22.为了所述检测,处理器可被配置为:确定所述事件是否与控制程序中包括的执行序列匹配;和基于确定的结果来检测丢失事件。
23.为了所述生成,处理器可被配置为:确定丢失事件的类型;和通过基于确定的类型补偿丢失事件来生成配置文件。
24.为了通过基于类型补偿丢失事件来生成配置文件,处理器可被配置为:响应于丢失事件的类型为开始事件,在通过从丢失事件的后一事件减去第一时间量而确定的时间处将开始事件插入配置文件中。
25.为了通过基于类型补偿丢失事件来生成配置文件,处理器可被配置为:响应于丢失事件的类型为结束事件,确定神经网络操作是否与对应于另一操作的事件重叠;和基于确定的结果将结束事件插入配置文件中。
26.为了将结束事件插入,处理器可被配置为:响应于确定神经网络操作与对应于所述另一操作的事件重叠,在重叠开始的部分中插入结束事件。
27.为了将结束事件插入,处理器可被配置为:响应于确定神经网络操作不与对应于所述另一操作的事件重叠,在通过从丢失事件的后一事件减去第二时间量而确定的时间处插入结束事件。
28.在另一总体方面,一种处理器实施的神经网络方法包括:通过确定与神经网络操作对应的事件不与用于执行神经网络操作的控制程序中包括的执行序列匹配,来检测丢失事件;和通过基于丢失事件的类型插入配置文件的丢失事件来生成神经网络操作的配置文件。
29.从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
30.图1示出剖析(profiling)设备的示例。
31.图2示出神经网络处理系统的示例。
32.图3示出剖析设备的操作的示例。
33.图4示出由剖析设备执行以补偿丢失事件的操作的示例。
34.图5示出由剖析设备执行的可视化的示例。
35.图6示出由剖析设备执行的剖析方法的示例。
36.贯穿附图和具体实施例,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
37.提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本技术的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,除了必须以特定次序发生的操作之外,在此描述的操作顺序仅是示例,并不限于在此阐述的那些顺序,而是可如在理解本技术的公开之后将是清楚地那样被改变。此外,为了更加清楚和简明,在理解本技术的公开之后已知的特征的描述可被省略。
38.在此描述的特征可以以不同的形式被实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出实现在理解本技术的公开之后将是清楚的在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
39.贯穿说明书,当组件被描述为“在”另一组件“上”、“连接到”或“结合到”另一组件时,它可直接“连接到”或“结合到”所述另一组件,或者可存在介于它们之间的一个或多个其他组件。相反,当元件被描述为“直接在”另一元件“上”、“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其他元件。同样地,类似的表达(例如,“在
……
之间”和“紧接在
……
之间”以及“与
……
邻近”和“与
……
紧邻”)也以相同的方式被解释。如在此所使用的,术语“和/或”包括相关所列项中的任何一个和任何两个或更多个的任何组合。
40.尽管在此可使用术语(诸如,“第一”、“第二”和“第三”)来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
41.在此使用的术语仅用于描述各种实施例,而不应用于限制公开。除非上下文另外清楚地指示,否则单数也意在包括复数形式。术语“包括”、“包含”和“具有”表明存在陈述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
42.除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的以及基于本技术的公开的理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的那些术语)应被解释为具有与它们在相关领域和本技术的公开的上下文中的含义一致的含义,并且将不以理想化或过于形式化的含义进行解释。在此针对示例或实施例的术语“可”的使用(例如,关于示例或
实施例可包括或实现什么)表明存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
43.此外,在示例实施例的描述中,当认为在理解本技术的公开之后已知的结构或功能的详细描述将导致示例实施例的模糊解释时,将省略这样的描述。
44.在下文中,将参照附图详细描述示例,并且附图中的相同的参考标号始终表示相同的元件。
45.图1示出剖析(profiling)设备的示例。
46.剖析设备10可执行神经网络剖析。剖析设备10可执行与在神经网络中执行的操作相关联的剖析。
47.剖析可以是或包括测量程序的时间复杂度和空间(例如,存储器)、特定指令的使用、函数调用的周期和频率等的动态程序分析。剖析信息可用于辅助神经网络的优化。剖析设备10可通过分析程序源代码或二进制执行文件来执行剖析。
48.配置文件(profile)可以是或包括通过剖析生成的数据。配置文件可指示与基于时间执行的神经网络的操作(或下文中的神经网络操作)相关联的事件。
49.神经网络可包括用在机器学习中的统计学习算法。神经网络可指示由于经由突触连接构成网络的节点通过学习改变突触连接的强度而具有问题解决能力的整体模型。
50.神经网络可包括深度神经网络(dnn)。例如,神经网络可包括卷积神经网络(cnn)、循环神经网络(rnn)、感知器、前馈(ff)网络、径向基函数(rbf)网络、深度ff(dff)网络、长短期记忆(lstm)、门控循环单元(gru)、自编码器(ae)、变分ae(vae)、去噪ae(dae)、稀疏ae(sae)、马尔可夫链(mc)、霍普菲尔德网络(hn)、玻尔兹曼机(bm)、受限bm(rbm)、深度信念网络(dbn)、深度卷积网络(dcn)、解卷积网络(dn)、深度卷积逆图形网络(dcign)、生成式对抗网络(gan)、液体状态机(lsm)、极端学习机(elm)、回声状态网络(esn)、深度残差网络(drn)、可微神经计算机(dnc)、神经图灵机(ntm)、胶囊网络(cn)、kohonen网络(kn)和/或注意力网络(an)。
51.剖析设备10可基于与神经网络操作相关联的事件来生成配置文件,并且对生成的配置文件进行可视化。
52.通过生成神经网络操作的配置文件,剖析设备10可验证或确定是否使用适合于在神经网络模型的推断处理中预测或确定的硬件规范的计算时间,以及是否根据预测周期执行神经网络操作。此外,剖析设备10可使用生成的配置文件来检测神经网络的优化点。
53.剖析设备10可通过处理与神经网络操作相关联的信息来生成神经网络操作的配置文件。与神经网络操作相关联的信息可包括与神经网络操作相关联的事件和用于执行神经网络操作的控制程序。
54.事件可基于神经网络操作的类型来指示开始和结束。事件可包括神经网络操作的开始事件和结束事件。
55.控制程序可包括由编译器生成的用于使用神经网络执行推断的程序。控制程序可包括神经网络操作器本征序列(intrinsic sequence)(例如,本征)。这里,术语“本征”可指示执行神经网络操作的神经处理单元(npu)(例如,神经处理器)的内置功能。例如,控制程序可包括神经网络操作的执行序列。
56.参照图1,剖析设备10可包括接收器100、处理器200(例如,一个或多个处理器)和
存储器300。
57.接收器100可接收与神经网络操作相关联的事件和用于执行神经网络操作的控制程序。
58.接收器100可将接收到的事件和接收到的控制程序输出到处理器200。接收器100可包括接收接口。
59.处理器200可处理存储在存储器300中的数据。处理器200可执行存储在存储器300中的配置处理器200执行操作的计算机可读指令。
60.处理器200可以是具有用于执行期望操作的物理结构的电路的硬件数据处理装置。例如,期望操作可包括包含在程序中的代码或指令。
61.数据处理装置可包括例如微处理器、中央处理器(cpu)、处理器内核、多核处理器、多处理器、专用集成电路(asic)和/或现场可编程门阵列(fpga)。
62.处理器200可基于事件和控制程序来检测丢失事件。丢失事件可以是被假定或意图包括在控制程序的本征中并且在神经网络的处理过程中执行但不包括在接收的事件中的事件。
63.处理器200可确定事件是否与控制程序中包括的执行序列匹配,并且可基于确定的结果来检测丢失事件。
64.处理器200可基于检测丢失事件的结果来生成神经网络操作的配置文件。处理器200可确定丢失事件的类型。处理器200可通过基于确定的类型补偿丢失事件来生成配置文件。
65.当丢失事件的类型对应于(或被确定为对应于)开始事件时,处理器200可在配置文件的通过从与丢失事件的后一事件对应的时间减去第一时间量而获得的时间处插入开始事件。
66.当丢失事件的类型对应于(或被确定为对应于)结束事件时,处理器200可确定神经网络操作是否与和另一操作相关联的事件重叠,并且可基于确定的结果插入结束事件。
67.当神经网络操作与和另一操作相关联的事件重叠(或被确定为重叠)时,处理器200可在重叠开始的部分插入结束事件。当神经网络操作与另一操作相关联的事件不重叠(或被确定不重叠)时,处理器200可在通过从与丢失事件的后一事件对应的时间减去第二时间量而获得的时间处插入结束事件。
68.存储器300可存储可由处理器200执行的指令(或程序)。例如,指令可包括用于执行处理器200的操作和/或处理器200的每个组件的操作的指令。
69.存储器300可以是易失性或非易失性存储器装置。
70.易失性存储器装置可以是例如动态随机存取存储器(dram)、静态ram(sram)、晶闸管ram(t-ram)、零电容器ram(z-ram)和/或双晶体管ram(ttram)。
71.非易失性存储器装置可以是例如电可擦除可编程只读存储器(eeprom)、闪存、磁性ram(mram)、自旋转转移扭矩(stt)mram(stt-mram)、导电桥接式ram(cbram)、铁电ram(feram)、相变ram(pram)、电阻式ram(rram)、纳米管rram、聚合物ram(poram)、纳米浮栅存储器(nfgm)、全息存储器、分子电子存储器装置(molecular electronic memory device)和/或绝缘体电阻变化存储器(insulator resistance change memory)。
72.图2示出神经网络处理系统的示例。
73.参照图2,在神经网络处理系统中,剖析设备10和系统组件可彼此发送和接收与神经网络操作相关联的信息。系统组件可执行调试和性能测量。例如,系统组件可包括coresight。例如,coresight可以是用于从npu提取跟踪数据的常规系统,并可包括各种组件(例如,etf、etr、amba跟踪总线、聚合器(funnel)等)。
74.剖析设备10可包括处理器200和存储器300,并且还可包括操作器400。存储器300可以是dram。存储器300可存储跟踪数据。
75.操作器400可设置在剖析设备10的内部或外部。
76.操作器400可包括npu或数字信号处理器(dsp)。操作器400可包括组合器。组合器可预先定义事件。组合器可基于预定义集之一来组合事件。此外,npuc(例如,npuc0和npuc1)可以是npu内部的核模块,并且可以是实运算器。
77.处理器200可从操作器400接收与神经网络操作相关联的事件。处理器200可通过经由比较接收到的事件和控制程序补偿丢失事件,来生成神经网络配置文件。cssys_stm_mux_selection可表示使用复用器选择npu stm事件。
78.图3示出剖析设备(例如,图1中示出的剖析设备10)的操作的示例。
79.参照图3,剖析设备10可包括在主机设备中。主机设备可以是例如个人计算机(pc)或服务器。剖析设备10可接收与在目标装置中执行的操作相关联的事件信息,并且对神经网络操作执行剖析。
80.主机设备可包括编译器。在操作310中,编译器可构建神经网络。在操作320中,编译器可生成控制程序。例如,编译器可生成作为npu的执行文件的网络控制程序(ncp)。
81.目标装置可以是或包括使用神经网络执行推断的装置。目标装置可以是例如物联网(iot)装置、机器型通信装置和便携式电子装置。
82.便携式电子装置可包括例如膝上型计算机、移动电话、智能电话、平板pc、移动互联网装置(mid)、个人数字助理(pda)、企业数字助理(eda)、数码相机、数字视频相机、便携式多媒体播放器(pmp)、个人或便携式导航装置(pnd)、手持游戏机、电子书、智能装置等。智能装置可包括例如智能手表和智能手环。
83.目标装置可包括npu。在操作330中,目标装置可使用被配置为执行包括在神经网络中的操作的npu来执行推断。在操作340中,目标装置可在执行推断的同时生成事件信息。在一个或多个非限制性示例中,目标装置可包括主机设备。
84.接收器100可接收事件信息和控制程序。在操作350中,处理器200可基于事件信息和控制程序来执行神经网络剖析。以下将参照图4进一步详细描述执行剖析的非限制性示例。
85.在操作360中,处理器200可基于生成的配置文件执行可视化。
86.图4示出通过剖析设备(例如,图1中示出的剖析设备10)执行的用于补偿丢失事件的操作的示例。
87.参照图4,处理器200可基于事件和控制程序来检测丢失事件。编译器可生成控制程序并且传送生成的控制程序。控制程序可包括例如ncp。
88.ncp可具有作为执行单元的组。通过该组,网络执行点可被估计。
89.在图4的示例中,由编译器生成的ncp(或本征)可包括神经网络操作的执行序列。事件信息可通过npu生成并发送。事件信息可以以数据文件的形式被接收。
90.事件信息和控制程序(例如,ncp(或本征))可包括神经网络操作和与神经网络操作相关联的事件。例如,在图4中,“file”可指示卷积操作,“pu”可指示填充/池化操作,并且“ru”可指示重新格式化操作。每个操作可具有开始事件和结束事件。
91.处理器200可确定事件是否与控制程序中包括的执行序列匹配,并且可基于确定的结果来检测丢失事件。
92.例如,处理器200可通过确定未同时执行file操作、pu操作和ru操作来检测丢失事件。
93.处理器200可基于检测丢失事件的结果来生成神经网络操作的配置文件。处理器200可确定丢失事件的类型。处理器200可通过基于确定的类型补偿丢失事件来生成配置文件。
94.例如,当丢失事件的类型是开始事件时,处理器200可在通过从与丢失事件的后一事件(例如,结束事件)对应的时间减去第一时间量而获得的时间处插入开始事件。
95.这里,当丢失事件的类型是开始事件时,因为是在开始事件之前正在执行直接存储器访问(dma)的同时发生开始事件还是在另一操作器的事件完成之后紧接着进行开始事件可能是未知的,所以处理器200可在通过从与结束事件对应的时间减去第一时间量而获得的时间处插入开始事件。
96.第一时间量可根据操作类型和硬件而不同。例如,第一时间量可以是10纳秒(ns)。例如,第一时间量可基于操作类型和/或硬件被预先确定。
97.当丢失事件的类型是结束事件时,处理器200可确定神经网络操作是否与和另一操作相关联的事件重叠。处理器200可基于确定的结果来插入结束事件。
98.例如,当神经网络操作与和另一操作相关联的事件重叠时,处理器200可在重叠开始的部分中插入结束事件。当神经网络操作与和另一操作相关联的事件不重叠时,处理器200可在通过从与丢失事件的后一事件对应的时间减去第二时间量而获得的时间处插入结束事件。第二时间量可根据操作类型和硬件而不同。例如,第二时间量可以是10ns。例如,第二时间量可基于操作类型和/或硬件被预先确定。
99.当事件重叠时,处理器200可确定重叠部分中的操作无效。处理器200可补偿丢失事件以不具有这样的重叠部分。
100.例如,在开始事件和结束事件二者均丢失、或者三个或更多个事件丢失的情况下,处理器200可通过在从丢失事件之后发生初始接收到的事件的时间减去计算的时间量而获得的时间处插入丢失事件来执行补偿。计算的时间量可通过将第三时间量与预定索引相乘而被获得。例如,第三时间量和预定索引可试验确定。
101.第三时间量可根据操作类型和硬件而不同。例如,第三时间量可以是10ns。
102.图5示出由剖析设备(例如,图1中示出的剖析设备10)执行的可视化的示例。
103.参照图5,在操作510中,处理器200可对接收到的事件进行解析。处理器200可通过验证事件信息(例如,事件文件)中记录的事件包(packet)来执行事件解析。事件包可包括事件的时间戳、事件标识(id)和事件类型。事件id可包括如以上参照图4所描述的file、pu和ru,并且事件类型可包括开始事件和结束事件。
104.在操作520中,处理器200可确定事件是否与执行序列匹配。例如,处理器200可通过根据控制程序中包括的执行序列确定是否接收到神经网络操作的开始事件和结束事件
来确定事件是否与执行序列匹配。
105.在操作530中,当事件与神经网络操作的执行序列匹配时,处理器200可输出事件日志。在操作540中,当事件与执行序列不匹配时,处理器200可输出丢失事件日志。
106.处理器200可通过输出事件日志或丢失事件日志来生成配置文件。在操作550中,在事件日志或丢失事件日志的输出完成之后,处理器200可结束控制程序。在操作560中,处理器200可在控制程序结束之后对生成的配置文件进行可视化。如果控制程序未结束,则返回操作510,处理器200可继续对接收到的事件进行解析。
107.图6示出通过剖析设备(例如,图1中示出的剖析设备10)执行的剖析方法的示例。
108.参照图6,在操作610中,接收器100可接收与神经网络操作相关联的事件和用于执行神经网络操作的控制程序。
109.在操作630中,处理器200可基于事件和控制程序来检测丢失事件。例如,处理器200可确定事件是否与控制程序中包括的执行序列匹配。处理器200可基于确定的结果来检测丢失事件(例如,处理器200可响应于事件与执行序列不匹配而检测到丢失事件)。
110.在操作650中,处理器200可基于检测丢失事件的结果来生成神经网络操作的配置文件。例如,处理器200可确定丢失事件的类型。处理器200可通过基于确定的类型补偿丢失事件来生成配置文件。
111.例如,当丢失事件的类型是开始事件时,处理器200可在通过从与丢失事件的后一事件对应的时间减去第一时间量而获得的时间处插入开始事件。
112.当丢失事件的类型是结束事件时,处理器200可确定神经网络操作是否与和另一操作相关联的事件重叠。处理器200可基于确定的结果来插入结束事件。
113.当神经网络操作与和另一操作相关联的事件重叠时,处理器200可在重叠开始的部分插入结束事件。当神经网络操作与和其他操作相关联的事件不重叠时,处理器200可在通过从与丢失事件的后一事件对应的时间减去第二时间量而获得的时间处插入结束事件。
114.在此针对图1至图6描述的剖析设备、接收器、处理器、存储器、神经网络处理系统、操作器、系统组件、剖析设备10、接收器100、处理器200、存储器300、操作器400和其他设备、装置、单元、模块和组件由硬件组件实现或表示硬件组件。可用于执行在本技术中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器、以及被配置为执行在本技术中描述的操作的任何其他电子组件。在其他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本技术中描述的操作的硬件组件中的一个或多个硬件组件。处理器或计算机可由一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器、或者被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或者连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本技术中描述的操作的指令或软件(诸如,操作系统(os)和在os上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于在本技术中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件、或
多种类型的处理元件、或两者。例如,单个硬件组件、或者两个或更多个硬件组件可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可由一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可由一个或多个其他处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件、或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(sisd)多处理、单指令多数据(simd)多处理、多指令单数据(misd)多处理和多指令多数据(mimd)多处理。
115.执行在本技术中描述的操作的图1至图6中示出的方法由计算硬件(例如,由一个或多个处理器或计算机)来执行,计算硬件被实现为如上所述执行指令或软件以执行在本技术中描述的由该方法执行的操作。例如,单个操作、或者两个或更多个操作可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可由一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可由一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作、或者两个或更多个操作。
116.用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机作为机器或专用计算机进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。指令或软件可基于附图中示出的框图和流程图以及在此使用的相应的描述使用任何编程语言被编写,附图中示出的框图和流程图以及在此使用的相应的描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
117.用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(rom)、可编程随机存取只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、蓝光或光盘存储装置、硬盘驱动器(hdd)、固态驱动器(ssd)、卡式存储器(诸如,多媒体卡或微型卡(例如,安全数字(sd)或极限数字(xd)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘和任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机能够执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构以分布式方式由一个或多个处理器或计算机
存储、访问和执行。
118.虽然本公开包括特定示例,但是在理解本技术的公开之后将清楚,在不脱离权利要求和它们的等同物的精神和范围的情况下,可在这些示例中做出形式和细节上的各种改变。在此描述的示例应仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述应被认为可适用于其他示例中的相似的特征或方面。如果描述的技术以不同的次序被执行、和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合、和/或由其他组件或它们的等同物替代或补充,则可实现合适的结果。
技术特征:
1.一种处理器实施的神经网络方法,包括:接收与神经网络操作对应的事件和用于执行神经网络操作的控制程序;基于所述事件和控制程序来检测丢失事件;和基于检测的结果来生成神经网络操作的配置文件。2.根据权利要求1所述的方法,其中,所述事件包括:神经网络操作的开始事件和结束事件。3.根据权利要求1所述的方法,其中,控制程序包括:神经网络操作的执行序列。4.根据权利要求1所述的方法,其中,检测的步骤包括:确定所述事件是否与控制程序中包括的执行序列匹配;和基于确定的结果来检测丢失事件。5.根据权利要求1至4中的任一项所述的方法,其中,生成的步骤包括:确定丢失事件的类型;和通过基于确定的类型补偿丢失事件来生成配置文件。6.根据权利要求5所述的方法,其中,通过基于类型补偿丢失事件来生成配置文件的步骤包括:响应于丢失事件的类型为开始事件,在通过从与丢失事件的后一事件对应的时间减去第一时间量而确定的时间处将开始事件插入配置文件中。7.根据权利要求6所述的方法,其中,后一事件是结束事件。8.根据权利要求5所述的方法,其中,通过基于类型补偿丢失事件来生成配置文件的步骤包括:响应于丢失事件的类型为结束事件,确定神经网络操作是否与对应于另一操作的事件重叠;和基于确定的结果将结束事件插入配置文件中。9.根据权利要求8所述的方法,其中,将结束事件插入的步骤包括:响应于确定神经网络操作与对应于所述另一操作的事件重叠,在重叠开始的部分中插入结束事件。10.根据权利要求8所述的方法,其中,将结束事件插入的步骤包括:响应于确定神经网络操作不与对应于所述另一操作的事件重叠,在通过从与丢失事件的后一事件对应的时间减去第二时间量而确定的时间处插入结束事件。11.根据权利要求1至4中的任一项所述的方法,还包括:基于生成的配置文件来优化神经网络操作;和使用优化的神经网络操作来执行推断,其中,神经网络操作包括卷积、填充、池化和重新格式化中的任何一个。12.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,配置处理器执行根据权利要求1至11中的任一项所述的方法。13.一种神经网络设备,包括:接收器,被配置为:接收与神经网络操作对应的事件和用于执行神经网络操作的控制程序;和处理器,被配置为:
基于所述事件和控制程序来检测丢失事件;和基于检测的结果来生成神经网络操作的配置文件。14.根据权利要求13所述的设备,其中,所述事件包括:神经网络操作的开始事件和结束事件。15.根据权利要求13所述的设备,其中,控制程序包括:神经网络操作的执行序列。16.根据权利要求13所述的设备,其中,为了所述检测,处理器被配置为:确定所述事件是否与控制程序中包括的执行序列匹配;和基于确定的结果来检测丢失事件。17.根据权利要求13至16中的任一项所述的设备,其中,为了所述生成,处理器被配置为:确定丢失事件的类型;和通过基于确定的类型补偿丢失事件来生成配置文件。18.根据权利要求17所述的设备,其中,为了通过基于类型补偿丢失事件来生成配置文件,处理器被配置为:响应于丢失事件的类型为开始事件,在通过与从丢失事件的后一事件对应的时间减去第一时间量而确定的时间处将开始事件插入配置文件中。19.根据权利要求17所述的设备,其中,为了通过基于类型补偿丢失事件来生成配置文件,处理器被配置为:响应于丢失事件的类型为结束事件,确定神经网络操作是否与对应于另一操作的事件重叠;和基于确定的结果将结束事件插入配置文件中。20.根据权利要求19所述的设备,其中,为了将结束事件插入,处理器被配置为:响应于确定神经网络操作与对应于所述另一操作的事件重叠,在重叠开始的部分中插入结束事件。21.根据权利要求19所述的设备,其中,为了将结束事件插入,处理器被配置为:响应于确定神经网络操作不与对应于所述另一操作的事件重叠,在通过从与丢失事件的后一事件对应的时间减去第二时间量而确定的时间处插入结束事件。22.一种处理器实施的神经网络方法,包括:通过确定与神经网络操作对应的事件不与用于执行神经网络操作的控制程序中包括的执行序列匹配,来检测丢失事件;和通过基于丢失事件的类型插入配置文件的丢失事件来生成神经网络操作的配置文件。
技术总结
公开了处理器实施的神经网络方法和神经网络设备。一种处理器实施的神经网络方法包括:接收与神经网络操作对应的事件和用于执行神经网络操作的控制程序;基于所述事件和控制程序来检测丢失事件;和基于检测的结果来生成神经网络操作的配置文件。神经网络操作的配置文件。神经网络操作的配置文件。
技术研发人员:池炯卓
受保护的技术使用者:三星电子株式会社
技术研发日:2021.04.01
技术公布日:2022/3/8