一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据计算的装置、板卡、方法以及存储介质与流程

2022-12-09 22:56:05 来源:中国专利 TAG:


1.本发明一般地涉及计算机领域。更具体地,本发明涉及一种数据计算的装置、板卡以及基于计算装置的配置处理数据的方法和存储介质。


背景技术:

2.随着人工智能技术的发展和人们日益增长的需求,人们对数据处理的性能要求越来越高了。目前,硬件在对输入数据进行计算时,为了读取数据的效率,绝大多数运算操作都有数据对齐限制。通用的做法是首先利用stride-io模式(非连续读取数据的方式)将片外内存的数据读取至片上,并将其进行数据对齐,然后再与对齐后的数据进行计算,最后再通过stride-io模式将结果存储到片外内存。
3.在进行数据计算时使用通用的对齐方案,主要存在的问题有:需要利用stride-io模式进行片外数据访问,而非更高效的连续数据访问方式;由于对齐产生的额外数据导致片上计算存在大量的无效操作,且实际计算维度越小,无效操作占比越高。如何提高io带宽,减小无效操作,提高数据的计算性能成为当前亟待解决的问题之一。
4.为了解决上述问题,本发明提出了一种数据处理的方案。


技术实现要素:

5.为了至少部分地解决背景技术中提到的技术问题,本发明的方案提供了一种计算装置、集成电路装置、板卡、计算方法以及存储介质。
6.在一个方面中,本发明揭露一种计算装置,所述计算装置与片外内存相连,所述片外内存存储有多个输入数据,所述计算装置包括:处理器核,用于基于所述多个输入数据的计算维度和所述处理器核的计算资源,计算对齐单位;以及存储器,用于根据所述对齐单位排列存储所述多个输入数据;其中,所述处理器核根据所述对齐单位自所述存储器读取所述多个输入数据进行计算。
7.在另一个方面,本发明揭露一种基于计算装置的配置处理数据的方法,所述计算装置包括处理器核及存储器,并与片外内存相连,所述片外内存存储有多个输入数据,所述方法包括:基于所述多个输入数据的计算维度和所述处理器核的计算资源,计算对齐单位;以及根据所述对齐单位从所述片外内存中读取所述多个输入数据至所述存储器,其中,所述存储器依据所述对齐单位排列存储所述多个输入数据;根据所述对齐单位自所述存储器读取所述多个输入数据进行计算。
8.在另一个方面,本发明揭露一种计算机可读存储介质,其上存储有基于计算装置的配置处理数据的计算机程序指令,当所述计算机程序指令由处理装置运行时,执行前述的方法。
9.在另一个方面,本发明揭露集成电路装置,包括上述的计算装置。
10.在另一个方面,本发明揭露一种板卡,包括上述集成电路装置。
11.本发明基于输入数据的计算维度和处理器核的计算资源计算得到对齐单位,该对
齐单位既满足处理器核的对齐要求,同时也是输入数据中计算低维的整数倍。通过这种方式,不仅避免了数据的非连续访问,而且还减少了无效运算,可以最大化利用带宽以及处理器核的计算能力。
附图说明
12.通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
13.图1是示出现有技术中数据处理的方法示意图;
14.图2是示出本发明实施例的板卡的结构图;
15.图3是示出本发明实施例的集成电路装置的结构图;
16.图4是示出本发明实施例的计算装置的内部结构示意图;
17.图5是示出本发明实施例的计算装置的又一内部结构示意图;以及
18.图6是示出本发明实施例的数据处理的方法流程图。
具体实施方式
19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.应当理解,本发明的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本发明的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
21.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本发明。如在本发明说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
22.如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
23.在介绍本发明实施例之前,首先对数据计算过程中数据对齐的相关内容进行简单介绍。
24.数据对齐实际上是字节的对齐,现代计算机中内存空间都是按照字节划分的。从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
25.数据对齐运算是基于硬件处理器平台的结构所决定的一种读取效率高的数据运算方式。现在各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型
的数据只能从某些特定地址开始存取,或者只能以特定大小的地址进行读取,其他平台可能没有这种情况。但是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,一个int型(假设为32位)的数据如果存储在偶地址开始的地方,则符合平台的要求,因此所有读数据都是有效的,那么一个读周期就可以读出该int数据。而如果存放储奇地址开始的地方,则该奇地址存储的数据读出来是无效的,当读完一周期后,实际有效的数据不包括该基地址存储的数据,就可能会需要2个读周期,并对两次读出的结果的高低字节进行拼凑才能得到该int数据,显然在读取效率上下降很多。数据对齐并不是操作系统的内存结构的一部分,而是处理器核结构的一部分。当处理器核访问正确对齐的数据时,它的运行效率最高。数据对齐计算的优点是处理器核可以一次对数据对齐要求大小的数据进行并行处理。
26.在数据对齐的计算中,处理器核读取的输入数据应该为对齐要求的整数倍,这样才能保证每次计算时计算带宽是最大的(计算带宽是打满的)。举例来说,假设处理器核的对齐要求为64字节对齐,那么处理器核在计算时会将输入数据以64字节为一组并行计算。若输入数据只有60字节,而在计算时仍然会以64字节为一组并行计算。虽然在计算时以64字节并行计算,实际参与计算的只有60字节,后面的四个字节不存在有效数据,导致io带宽降低、存在大量冗余运算。若输入数据有80字节,处理器核在读取输入数据后,仍然按照以64字节为一组并行计算,则该输入数据会被分成两组,其中一组的有效数据为64字节,带宽达到了最大,而另一组的有效数据仅为16字节,同样存在48字节的无效数据。综上,在处理器核计算时,输入数据为对齐要求的整数倍,才能保证处理器核在读取数据进行计算时,io带宽达到最大,在计算时没有无效数据。
27.图1示出在现有技术中数据对齐处理的方法。假设输入数据为图像数据101,图像数据101的格式以nhwc四个维度表示,其中n代表批处理(batch)、h代表高度(height)、w代表宽度(width)、c代表通道(channel)。n表示这批图像共有几张,h表示图像在竖直方向有多少像素,w表示水平方向像素数,c表示通道数(例如黑白图像是由灰度来表示,只需要一个数值,因此黑白图像的通道数c为1,而rgb彩色图像需要rgb三种数值来描述,因此rgb图像的通道数c为3)。
28.假设图像数据101为float32类型的张量,在计算时,一般对数据的最低维度进行计算,最低维度c维度为3,即c维度为3个浮点数。假设硬件对齐最低要求是128字节对齐,即需要32个浮点数对齐(1个单精度浮点型数据占4个字节)。在现有技术中对数据的读取方式是stride-io模式,即以输入数据的计算维度(在本实施例中为数据的最低维度)为单位从源地址读到目的地址,并以对齐要求为单位在目的地址上计算。在计算过程中,处理器核在计算时需要以32个数为单位进行计算,而每个输入数据只有3个有效数据,每32个数为单位进行数据计算时只有3个有效数据102,存在大量的无效数据103,有效计算的占比仅为3/32。采用stride-io这种非连续的数据读取方式效率低下,远达不到硬件的标称带宽。
29.从上述可知,在现有技术中,在数据计算过程中针对硬件处理器核的数据对齐要求,首先需要利用stride-io模式进行片外数据访问,而不是更高效的连续数据访问方式。进一步,由于对齐产生的额外数据导致片上计算存在大量的无效操作,且实际计算维度越小,无效操作占比高。
30.下面结合附图来详细描述本发明的具体实施方式。
31.图2示出本公开实施例的一种板卡20的结构示意图。如图2所示,板卡20包括芯片201,其是一种系统级芯片(system on chip,soc),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡20适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
32.芯片201通过对外接口装置202与外部设备203相连接。外部设备203例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备203通过对外接口装置202传递至芯片201。芯片201的计算结果可以经由对外接口装置202传送回外部设备203。根据不同的应用场景,对外接口装置202可以具有不同的接口形式,例如pcie接口等。
33.板卡20还包括用于存储数据的存储器件204,其包括一个或多个存储单元205。存储器件204通过总线与控制器件206和芯片201进行连接和数据传输。板卡20中的控制器件206配置用于对芯片201的状态进行调控。为此,在一个应用场景中,控制器件206可以包括单片机(micro controller unit,mcu)。
34.图3是示出此实施例的芯片201中的组合处理装置的结构图。如图3中所示,组合处理装置30包括计算装置301、接口装置302、处理装置303和dram 304。
35.计算装置301配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置302与处理装置303进行交互,以共同完成用户指定的操作。
36.接口装置302用于在计算装置301与处理装置303间传输数据和控制指令。例如,计算装置301可以经由接口装置302从处理装置303中获取输入数据,写入计算装置301片上的存储装置。进一步,计算装置301可以经由接口装置302从处理装置303中获取控制指令,写入计算装置301片上的控制缓存中。替代地或可选地,接口装置302也可以读取计算装置301的存储装置中的数据并传输给处理装置303。
37.处理装置303作为通用的处理装置,执行包括但不限于数据搬运、对计算装置301的开启和/或停止等基本控制。根据实现方式的不同,处理装置303可以是中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本公开的计算装置301而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置301和处理装置303整合共同考虑时,二者视为形成异构多核结构。
38.dram 304用以存储待处理的数据,为ddr内存,大小通常为16g或更大,用于保存计算装置301和/或处理装置303所需的数据。
39.图4示出了计算装置301的内部结构示意图。计算装置301用以处理计算机视觉、语
音、自然语言、数据挖掘、图像处理等输入数据。图中的计算装置301作为一个片上系统,与片外内存相连,片外内存包括dram304或其他片外内存,其中,片外内存存储有多个输入数据。该计算装置301包括处理器核401以及存储器402。
40.处理器核401有一个或多个,图中示例性地展示1个,其用于基于多个输入数据的计算维度和处理器核的计算资源,计算对齐单位。
41.具体来说,图像数据、语音数据等输入数据一般为多维张量数据,而在对输入数据进行计算时一般是只对该多维张量数据的一个或多个维度进行计算。因此,输入数据的计算维度指的是输入数据中参与计算的一个或多个维度。一般情况,输入数据的计算维度指的是输入数据的最低维度。处理器核401的计算资源指的是由于处理器核401的结构限制,处理器核401对读取的输入数据要求数据对齐后在进行计算。因此,首先需要确定满足处理器核401对齐要求的对齐单位,且满足以该对齐单位进行计算时无效操作最小化。
42.在一个可选的实施例中,该对齐单位为输入数据的计算维度与处理器核401的数据对齐要求的最小公倍数。由上文描述可知,在计算时输入数据为对齐要求的整数倍,因此处理器核401在计算时的对齐单位首先满足是数据对齐要求的倍数,且数据对齐的单位为字节。其次,由于输入数据为多维数据,处理器核401在读取输入数据时是以每个多维数据作为一个整体进行读取,该多维数据的维度包括一个或多个字节。因此,该对齐单位必须为输入数据的计算维度的整数倍,才能保证读取到的输入数据全部用于计算。因此,该对齐单位为输入数据的计算维度与处理器核的数据对齐要求的最小公倍数,既能满足处理器核的对齐要求,又能满足读取的数据全部用于计算,减少冗余或无效的输入数据。
43.存储器402用于从dram 304或其他片外内存中获取多个输入数据,并根据对齐单位排列存储多个输入数据。在数据对齐的计算中,处理器核401访问数据的地址要满足一定的条件,即数据存储的地址能被数据对齐的长度所整除。例如,1字节数据肯定是对齐的,2字节的数据对齐需要其数据存储的地址要被2整除,4字节的数据对齐需要其数据存储的地址要被4整除。也就是输入数据在存储器402中要根据对齐单位排列存储。进一步,处理器核401根据对齐单位自存储器402读取多个输入数据进行计算。处理器核401还包括控制模块411,用于当对齐单位大于存储器402的最大计算资源大小时,基于存储器402的最大计算资源大小和数据对齐要求对输入数据的计算维度进行切分。存储器402不仅用于存储输入数据,还用于存储输出数据以及中间结果数据等其他数据。存储器402的最大计算资源大小指的是存储器402中用于计算的存储空间的大小。当对齐单位大于存储器402的最大计算资源大小时,会导致无法完成计算。
44.当输入数据的计算维度过大时,其与处理器核401的对齐要求的最小公倍数超过了存储器402的存储空间,无法有效存储并计算,控制模块411将计算维度切分为多个子维度。处理器核401基于切分后的子维度调整对齐单位,使得调整后的对齐单位满足存储器402的存储大小,同时调整后的对齐单位既满足处理器核401的对齐要求,也满足以对齐单位进行计算。
45.更详细来说,对输入数据的计算维度切分的方式多种多样,只要切分后的子维度满足存储器402的存储大小即可。
46.在一个可选地实施例中,对切分后的子维度按照上文中的方法计算对齐单位,其切分后计算得到的对齐单位只要满足存储器402的存储大小即可,也就是切分后计算得到
的对齐单位最大为存储器402的最大计算资源大小,同时按照这种切分方式和计算方式,都能保证在计算时没有无效数据(详见上文描述,不再赘述)。而对齐单位是计算维度(对切分后的计算维度来说就是子维度)与数据对齐要求的最小公倍数,其中数据对齐要求是由处理器核401的结构决定的,是不变的,对齐单位最大为存储器402的最大计算资源大小。所以,最大子维度为最大计算资源大小除以所述数据对齐要求得到的商。
47.举例来说,假设输入数据的计算维度为16字节,处理器核401的对齐要求为3字节,而存储器402的存储大小(指的是最大计算资源大小)为33字节。处理器核401根据输入数据的计算维度与处理器核401的对齐要求计算其最小公倍数得到对齐单位为48字节,大于存储器402的最大计算资源大小。在这种情况下,处理器核401首先计算存储器402中能承受的最大计算子维度,具体计算过程为存储器402的最大计算资源大小33字节除以处理器核的对齐要求3字节得到11字节,即切分后得到的子维度只要小于或等于11字节,根据切分后的子维度与处理器核401的对齐要求计算得到的对齐单位均满足存储器402的大小。
48.处理器核401中的控制模块411对输入数据的计算维度进行切分,切分的最大子维度为11字节,最小子维度为1字节。进一步,根据切分的子维度大小可以确定切分的份数,得到切分的方式。比如,可以将输入数据的计算维度(16字节)切分为11字节和5字节;11字节、2字节以及3字节;8字节、4字节、4字节;16份其中每份为1字节等等。对切分的份数不作要求,只要满足每个子维度小于或等于最大子维度即可。
49.优选地,处理器核401基于最大子维度对输入数据的计算维度进行切分。当切分得到的子维度为最大子维度时,切分的份数最少,计算效率最高。也就是在切分时,优先以最大子维度为单位进行切分,切分得到的每个子维度都为最大子维度时,计算效率最高。
50.进一步,处理器核401将最大计算资源大小除以数据对齐要求,以获得商数和余数,当所述余数不为0时,最后一个子维度为所述余数对应的值。余数不为0说明最后一个子维度小于最大子维度,此时最后一个子维度为该余数对应的值。
51.回到上述的例子,若按照以切分得到的子维度与对齐要求的最小公倍数为对齐单位来计算,最大子维度为11字节,较优选的切分方式为以每个子维度都为最大子维度进行切分,因此将输入数据的计算维度16字节,切分为两份,分别为11字节和5字节(余数)的计算效率最高。
52.若输入数据的计算维度没有被切分,按照以对齐要求与计算维度的最小公倍数计算得到的对齐单位进行读取计算时,该对齐单位既能保证满足处理器核401的对齐要求,又能保证读取到存储器402中的输入数据都能用于计算,同时读取的方式为更高效的连续读取方式。但是在对输入数据的计算维度进行切分后,读取数据的方式不再是连续数据的读取方式,而是非连续的数据读取方式,也就是切分后必定会引入stride-io模式。例如输入数据的计算维度为16字节,将其切分得到的一个子维度为3字节,那么在读取数据的时候就是读3字节后跳16个字节,然后在读3个字节,以此类推,切分后的读取方式必然是非连续的读取方式。
53.在另一个可选的实施例中,当对齐单位大于存储器402中最大计算资源大小时,控制模块411用于基于最大计算资源大小和数据对齐要求对计算维度进行切分;其中,处理器核401基于切分后的子维度调整对齐单位,也就是控制模块411切分后得到的子维度即为对齐单位。具体来说,在对输入数据的计算维度切分时,为了保证在计算时没有无效数据,只
要保证切分后的子维度为处理器核401对齐要求的整数倍,且小于或等于最大计算资源的大小即可。仍以输入数据的计算维度为16字节,处理器核401的对齐要求为3字节,而存储器402的存储大小(指的是最大计算资源大小)为33字节为例。切分后的子维度只要是3的倍数,且小于33即可保证切分后的子维度在计算时没有无效数据,对计算维度进行切分,其切分得到的子维度肯定也是小于或等于其本身的,因此,切分后的子维度可以为3、6、9、12、15。
54.更优选地,处理器核401基于最大子维度对计算维度进行切分,其中最大子维度小于计算维度。在非连续的读取方式(stride-io)下,每次处理的数据量越大带宽越高,也就是切分的子维度越大,计算效率越高,在上面的例子中,更优选的方案是按照15字节对输入数据的计算维度进行切分。
55.进一步,处理器核401还用于将计算维度除以最大子维度,以获得商数和余数。当余数为0时,商即为切分得到的份数,且每个子维度的大小均为最大子维度,当余数不为0时,切分得到的份数为商加一,其中最后一个子维度为余数对应的值,而其他子维度都是最大子维度。在上述的例子中,计算维度为16字节,最大子维度为15字节,相除得到商为1且余数为1,因此将输入数据的计算维度切分了1 1=2(商数加一)个子维度,其中最后一个子维度为余数对应的值,即1字节,其他子维度(第一个子维度)为最大子维度15字节。
56.在上述实施例中,由于切分在读取数据时一定会引入非连续的读取方式,因此在切分时较佳地切分得到的子维度为最大子维度,才能保证计算的带宽最大,计算效率最高。
57.图5示出本发明实施例中计算装置301另一种结构的示意图。计算装置301包括处理器核401、存储器402,其中处理器核401包括控制模块411、运算模块501和存储模块502。其中,存储模块502用于存储从存储器402中读取的多个输入数据;运算模块501用于根据对齐单位从存储模块502读取多个输入数据进行计算。其他模块与图4对应的模块相同,不再赘述。
58.在此实施例中,存储器402从dram 304或其他片外内存中获取输入数据,并存储在存储器402中。处理器核401中的存储模块502从存储器402中获取的多个输入数据并存储。运算模块501从存储模块502中读取多个输入数据(图中未标注),并基于多个输入数据的计算维度和处理器核401的计算资源,计算对齐单位。控制模块411从运算模块501中获取计算得到的对齐单位,用于判断对齐单位是否大于存储模块502的最大计算资源大小。当控制模块411判断对齐单位大于存储器402的最大计算资源大小时,控制处理器核401(或者处理器核401中的运算模块501)计算输入数据的计算维度的最大子维度,控制模块411基于最大子维度对计算维度进行切分。
59.本发明提出一种基于计算装置301的配置处理数据的方法。图6示出本发明实施例的一种数据处理的方法流程图,该方法是通过计算装置301运行来实现,数据处理方法包括:
60.步骤s601:基于多个输入数据的计算维度和处理器核的计算资源,计算对齐单位。其中,对齐单位为计算维度与处理器核的数据对齐要求的最小公倍数。
61.步骤s602:根据对齐单位从片外内存中读取多个输入数据至存储器,其中,存储器依据对齐单位排列存储多个输入数据。
62.步骤s603:根据对齐单位自存储器读取多个输入数据进行计算。
63.在一个可选地的实施例中,该数据处理方法还包括:判断对齐单位是否大于存储器的最大计算资源大小,若对齐单位大于存储器的最大计算资源大小时,基于最大计算资源大小和数据对齐要求对计算维度进行切分,并根据切分后的子维度调整对齐单位。其中,切分后的子维度为最小对齐要求的整数倍,且小于或等于最大计算资源的大小。切分步骤包括:基于最大子维度对计算维度进行切分,其中最大子维度小于计算维度。将计算维度除以最大子维度,以获得商数和余数,基于商数和余数计算切分得到的子维度的份数。具体来说,判断上述余数是否为0,若余数为0,则切分得到的子维度的份数为商数,且每个子维度的大小均为最大子维度对应的大小;若余数不为0,则切分得到的子维度的份数为商数加一,最后一个子维度的大小为余数对应的值,其他子维度为最大子维度的大小。
64.本发明另一个实施例为一种计算机可读存储介质,其上存储有基于计算装置的配置处理数据的计算机程序指令,当所述计算机程序指令被服务器执行时,服务器包括处理器和存储器,存储器中存有前述的计算机程序指令,处理器运行存储器中的计算机程序指令。在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本发明的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本发明实施例所述方法的部分或全部步骤。当本发明的方案以电子设备的形式体现时,该设备包括处理器和存储器,该存储器用于存储处理器可执行指令,处理器被配置为调用所述存储器存储的指令,以执行上述编解码视频图像的方法。前述的存储器可以包括但不限于u盘、闪存盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
65.本发明基于输入数据的计算维度和处理器核的计算资源计算得到对齐单位,该对齐单位既满足处理器核的对齐要求,同时也是输入数据中计算低维的整数倍。通过这种方式,不仅避免了数据的非连续访问,而且还减少了无效运算,可以最大化利用带宽以及处理器核的计算能力。
66.根据不同的应用场景,本发明的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、pc设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。本发明的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本发明的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本发明方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件
信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
67.需要说明的是,为了简明的目的,本发明将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本发明的方案并不受所描述的动作的顺序限制。因此,依据本发明的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本发明所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本发明某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本发明对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本发明某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
68.在具体实现方面,基于本发明的公开和教导,本领域技术人员可以理解本发明所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
69.在本发明中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本发明实施例所述方案的目的。另外,在一些场景中,本发明实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
70.在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、gpu、fpga、dsp和asic等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(resistive random access memory,rram)、动态随机存取存储器(dynamic random access memory,dram)、静态随机存取存储器(static random access memory,sram)、增强动态随机存取存储器(enhanced dynamic random access memory,edram)、高带宽存储器(high bandwidth memory,hbm)、混合存储器立方体(hybrid memory cube,hmc)、rom和ram等。
71.依据以下条款可更好地理解前述内容:
72.条款a1.一种计算装置,所述计算装置与片外内存相连,所述片外内存存储有多个输入数据,所述计算装置包括:处理器核,用于基于所述多个输入数据的计算维度和所述处理器核的计算资源,计算对齐单位;以及存储器,用于根据所述对齐单位排列存储所述多个输入数据;其中,所述处理器核根据所述对齐单位自所述存储器读取所述多个输入数据进
行计算。
73.条款a2.根据条款a1所述的计算装置,所述处理器核包括:存储模块,用于存储从所述存储器中读取的多个输入数据;以及运算模块,用于根据所述对齐单位从所述存储模块读取所述多个输入数据进行计算。
74.条款a3.根据条款a1所述的计算装置,所述对齐单位为所述计算维度与所述处理器核的数据对齐要求的最小公倍数。
75.条款a4.根据条款a3所述的计算装置,所述处理器核还包括:控制模块,用于当所述对齐单位大于所述存储器的最大计算资源大小时,基于所述最大计算资源大小和所述数据对齐要求对所述计算维度进行切分;其中,所述处理器核基于切分后的子维度调整所述对齐单位。
76.条款a5.根据条款a4所述的计算装置,所述处切分后的子维度为所述对齐要求的整数倍,且小于或等于所述最大计算资源的大小。
77.条款a6.根据条款a5所述的计算装置,所述处理器核基于所述最大子维度对所述计算维度进行切分,其中所述最大子维度小于所述计算维度。
78.条款a7.根据条款a6所述的计算装置,所述处理器核还用于将所述计算维度除以所述最大子维度,以获得商数和余数,当所述余数不为0时,最后一个子维度为所述余数对应的值。
79.条款a8.一种基于计算装置的配置处理数据的方法,所述计算装置包括处理器核及存储器,并与片外内存相连,所述片外内存存储有多个输入数据,所述方法包括:基于所述多个输入数据的计算维度和所述处理器核的计算资源,计算对齐单位;以及根据所述对齐单位从所述片外内存中读取所述多个输入数据至所述存储器,其中,所述存储器依据所述对齐单位排列存储所述多个输入数据;根据所述对齐单位自所述存储器读取所述多个输入数据进行计算。
80.条款a9.根据条款a8所述的方法,所述对齐单位为所述计算维度与所述处理器核的数据对齐要求的最小公倍数。
81.条款a10.根据条款a8所述的方法,所述方法还包括:判断所述对齐单位是否大于所述存储器的最大计算资源大小;如是,基于所述最大计算资源大小和所述数据对齐要求对所述计算维度进行切分;以及根据切分后的子维度和所述数据对齐调整所述对齐单位。
82.条款a11.根据条款a10所述的方法,所述切分后的子维度为所述最小对齐要求的整数倍,且小于或等于最大所述计算资源的大小。
83.条款a12.根据条款a11所述的方法,所述切分步骤包括基于最大子维度对所述计算维度进行切分,其中所述最大子维度小于所述计算维度。
84.条款a13.根据条款a12所述的方法,所述切分步骤包括:将所述计算维度除以所述最大子维度,以获得商数和余数;基于所述商数和余数计算切分得到的子维度的份数。
85.条款a14.根据条款a13所述的方法,所述切分步骤好包括:判断所述余数是否为0;以及如所述余数不为0,设定最后一个子维度为所述余数对应的值。
86.条款a15.一种计算机可读存储介质,其上存储有基于计算装置的配置处理数据的计算机程序指令,其特征在于,所述计算机程序指令被服务器执行时实现条款a8至a14中任意一项所述的方法。
87.条款a16.一种集成电路装置,包括根据条款a1-a7的任意一项所述的计算装置。
88.条款a17.一种板卡,包括根据条款a16所述的集成电路装置。
89.以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献