CN117539823A - 芯片算力控制方法、芯片及存储介质 - Google Patents
芯片算力控制方法、芯片及存储介质 Download PDFInfo
- Publication number
- CN117539823A CN117539823A CN202210915068.7A CN202210915068A CN117539823A CN 117539823 A CN117539823 A CN 117539823A CN 202210915068 A CN202210915068 A CN 202210915068A CN 117539823 A CN117539823 A CN 117539823A
- Authority
- CN
- China
- Prior art keywords
- data
- multiplexing times
- multiplexing
- minimum value
- chip
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004364 calculation method Methods 0.000 title abstract description 25
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 86
- 230000015654 memory Effects 0.000 description 41
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 102100025297 Mannose-P-dolichol utilization defect 1 protein Human genes 0.000 description 1
- 101710089919 Mannose-P-dolichol utilization defect 1 protein Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures of general purpose stored program computers data or demand driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
Abstract
本申请提供一种芯片算力控制方法、芯片及存储介质,涉及芯片技术领域。该方法包括:获得计算装置中至少一个运算电路在一个运算周期所使用的总数据量;根据总数据量及预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量;按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算。本申请按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算后,能够使芯片的算力得到有效保证,有效提高芯片的数据处理效率。
Description
技术领域
本申请涉及芯片技术领域,尤其涉及一种芯片算力控制方法、芯片及存储介质。
背景技术
随着人工智能技术的发展,待处理数据的规模越来越大,随之而来的是芯片计算能力(以下简称为芯片的算力)的需求的越来越高。
而现有技术中,在芯片的设计和控制芯片进行数据处理时,并没有充分地考虑芯片的算力情况,导致芯片的算力无法有效保证,进而导致芯片的数据处理效率较低。
发明内容
本申请实施例提供一种芯片算力控制方法、芯片及存储介质,用以解决现有技术中芯片的算力无法有效保证,进而导致芯片的数据处理效率较低的技术问题。
第一方面,本申请提供一种芯片算力控制方法,所述芯片具有预设的带宽,所述芯片包括计算装置,所述方法包括:
获得所述计算装置中至少一个运算电路在一个运算周期所使用的总数据量;
根据所述总数据量及所述预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量;
按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算。
第二方面,本申请提供一种芯片,所述芯片具有预设的带宽,所述芯片包括计算装置,所述计算装置包括:至少一个运算电路及控制器单元;所述运算电路与所述控制器单元连接,运算电路位于计算装置中;
所述控制器单元,被配置为实现如第一方面所述的方法。
第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被至少一个处理器执行时,实现如第一方面任一项所述的方法。
本申请实施例提供的芯片算力控制方法、芯片及存储介质,通过获得芯片的计算装置中至少一个运算电路在一个运算周期所使用的总数据量;根据总数据量及预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量;按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算。由于所有运算电路一个运算周期所使用的总数据量是运算电路获得充足的数据的基本标准,而目标运算电路中能使用的数据量与芯片所具有的预设带宽及数据复用次数有关,所以基于所有运算电路一个运算周期所使用的总数据量及预设带宽对数据复用次数进行配置时,能够满足数据充足的基本标准,进而按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算后,能够使芯片的算力得到有效保证,有效提高芯片的数据处理效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是示出根据本申请实施例的板卡的结构图;
图2是示出根据本申请实施例的组合处理装置的结构图;
图3是示出根据本申请实施例的一种单核计算装置的内部结构示意图;
图4为本申请实施例提供的主从运算电路的结构示意图;
图5为本申请一实施例提供的基于芯片的算力控制方法的流程图;
图6为本申请再一实施例提供的基于芯片的算力控制方法的流程图;
图7为本申请再一实施例提供的基于芯片的算力控制方法的流程图;
图8为本申请还一实施例提供的基于芯片的算力控制方法的流程图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。
现有技术中,在控制芯片进行数据处理时,并没有考虑芯片的算力情况,在未考虑芯片的算力情况时,会有一种情况发生,即运算电路在进行数据的运算时,写入到运算电路中的数据是不充足的,进而导致芯片的算力无法有效保证,进而导致芯片的数据处理效率较低。
针对现有技术中的技术问题,本申请提供的芯片算力控制方法、芯片及存储介质,为了能够使芯片的算力得到有效保证,需要为芯片的运算电路提供充足的数据。而运算电路获得充足的数据的基本标准是所有运算电路一个运算周期所使用的总数据量。所以为了能够使芯片的算力得到最大发挥,需要在参与运算的目标运算电路进行数据的运算前,目标运算电路中能使用的数据量满足充足数据的基本标准。而在目标运算电路中能使用的数据量与芯片所具有的预设带宽及数据复用次数有关。由于在芯片设计完后,芯片的带宽就是固定的,所以为了能够保证目标运算电路中能使用的数据量,就需要对数据复用次数进行配置,那么在按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算,是能够满足充足数据的基本标准,进而使芯片的算力得到有效保证,有效提高芯片的数据处理效率。同时,通过数据复用能够充分地利用芯片的带宽,在保证芯片算力的同时兼顾芯片的带宽瓶颈,从而减少IO功耗。
需要说明的是,本申请提供的芯片算力控制方法、芯片及存储介质可应用在各种采用芯片进行数据处理的应用场景中。如人工智能领域各种机器学习模型、深度学习模型的训练过程、推理过程等,本实施例中对应用场景不作限定。
下面通过实施例对本申请提供的方案的具体硬件进行介绍。
本实施例中,图1是示出根据本申请实施例的板卡的结构图,本实施例中的基于芯片的算力控制装置可以位于板卡中。具体可以位于芯片中。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和大量的计算能力。
芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和DRAM 204。
计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。
接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。
处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。
DRAM 204用以存储待处理的数据,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。
在图3中,是计算装置为单核的内部结构示意图。单核计算装置300用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,单核计算装置300包括三大模块:控制模块301、运算模块302及存储模块303。
控制模块301用以协调并控制运算模块302和存储模块303的工作,以完成深度学习的任务,其包括取指单元(instruction fetch unit,IFU)3011及指令译码单元(instruction decode unit,IDU)3012。取指单元3011用以获取来自处理装置的指令,指令译码单元3012则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块302和存储模块303。
运算模块302包括向量运算单元3021及矩阵运算单元3022。向量运算单元3021用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元3022负责深度学习算法的核心计算,即矩阵乘及卷积。
存储模块303用来存储或搬运相关数据,包括神经元存储单元(neuron RAM,NRAM)3031、参数存储单元(weight RAM,WRAM)3032、直接内存访问模块(direct memory access,DMA)3033。NRAM 3031用以存储输入神经元、输出神经元和计算后的中间结果;WRAM 3032则用以存储深度学习网络的卷积核,即权值;DMA 3033通过总线304连接DRAM604,负责单核计算装置300与DRAM 204间的数据搬运。
可选地,向量运算单元3021或矩阵运算单元3022可以采用图4所示的主从运算电路实现。
可选地,本实施例中,计算装置包括主处理电路及从处理电路,所述运算电路位于所述从处理电路中。
如图4所示,本申请实施例的主从运算电路400可以包括主处理电路(MA)410和多个从处理电路(SL)420,图中示出了16个从处理电路SL0~SL15。本领域技术人员可以理解,从处理电路的数量可以更多或更少,取决于具体的硬件配置,本申请实施例在此方面没有限制。
主处理电路和从处理电路之间以及多个从处理电路之间可以通过各种连接相互通信。在不同的应用场景中,多个从处理电路之间的连接方式既可以是通过硬线布置的硬连接方式,也可以是根据例如微指令进行配置的逻辑连接方式,以形成多种从处理电路阵列的拓扑结构。本申请实施例在此方面没有限制。主处理电路和从处理电路可以相互配合,由此实现并行运算处理。
为了支持运算功能,主处理电路和从处理电路可以包括各种计算电路,例如可以包括向量运算单元及矩阵运算单元。向量运算单元用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元负责深度学习算法的核心计算,例如矩阵乘和卷积。
在运算过程中,主处理电路可以将部分输入数据(例如神经元数据)广播给各个从处理电路,从处理电路可以根据其中存储的另一部分输入数据(例如权值数据)和从主处理电路中获得的部分输入数据进行运算,从而获得运算结果。例如,从处理电路可以用于根据运算指令,对其获得的相应的数据并行执行中间运算得到多个中间结果,并将多个中间结果传输回主处理电路,主处理电路可以对各个从处理电路返回的中间结果进行拼接累加,从而获得最终的运算结果。
通过将计算装置400设置成主从结构(例如一主多从结构,或者多主多从结构,本申请在此方面没有限制),可以根据运算指令将数据进行拆分,从而通过多个从处理电路对计算量较大的部分进行并行运算以提高运算速度,节省运算时间,进而降低功耗。
具体地,计算装置400中还可以包括第一存储电路430和第二存储电路440,用于分别存储经由不同数据通道传输的数据。可选地,该第一存储电路430和第二存储电路440可以是同一存储器划分形成的两个存储块,也可以是两个独立的存储器,此处不做具体限定。
第一存储电路430可以用于存储多播数据,也即第一存储电路中的数据将通过广播总线传输给多个从处理电路,这些从处理电路接收到相同的数据。可以理解,通过广播总线可以实现广播和多播。多播是指将一份数据传输到多个从处理电路的通信方式;而广播是将一份数据传输到所有从处理电路的通信方式,是多播的一个特例。由于多播和广播都对应一对多的传输方式,本文中未对二者特意区分,广播和多播可以统称为多播,本领域技术人员根据上下文可以明确其含义。
第二存储电路440可以用于存储分发数据,也即第二存储电路中的数据将分别传输给不同的从处理电路,每个从处理电路接收到不同的数据。在一些实施例中,可以将输入特征图和卷积核中之一确定为多播数据并存储在第一存储电路中,以在运算期间通过广播方式将数据传输给调度的多个从处理电路。对应地,可以将输入特征图和卷积核中另一确定为分发数据并存储在第二存储电路中。这些分发数据可以在运算前分发给对应的从处理电路。
通过分别提供第一存储电路和第二存储电路,可以支持针对待运算的数据以不同传输方式进行传输,从而通过在多个从处理电路之间复用多播数据来降低数据访存量。
图4还示出了根据本申请实施例的从处理电路SL的内部结构示意图。如图所示,每个从处理电路420可以包括多个运算电路CU 421、第一缓冲电路422和第二缓冲电路423。图中示出了4个运算电路CU0~CU3。本领域技术人员可以理解,运算电路的数量可以更多或更少,取决于具体的硬件配置,本申请实施例在此方面没有限制。
在一些实施例中,第一缓冲电路422可以用于缓存分配给该从处理电路的权值或输入特征图。相应地,第二缓冲电路423则可以用于缓存分配给该从处理电路的输入特征图或权值。这两个缓冲电路均用于选取参与运算的数据。第一缓冲电路422的数据可以是来自例如第一存储电路430或第二存储电路440,对应地,第二缓冲电路423的数据可以来自例如第二存储电路440或第一存储电路430。第一缓冲电路422和第二缓冲电路423中的数据在运算期间被分发给对应的运算电路CU 421或广播给该从处理电路420内的所有CU 421。每个运算电路CU 421用于在每个运算周期内,针对分别从第一缓冲电路中选取的数据行和从第二缓冲电路中选取的数据行执行对位乘累加运算。从处理电路420中还可以包括第三缓冲电路424,用于缓存各个运算电路CU 421的运算结果。
通过分别提供第一缓冲电路和第二缓冲电路,可以支持针对待运算的数据以不同传输方式进行传输,从而通过在单个从处理电路内的多个运算电路之间尽可能复用数据来降低数据访存量。
可以理解,虽然在图4中将各个处理电路与存储电路示出为分立的模块,但是根据不同的配置,存储电路与处理电路也可以合并成一个模块。例如,第一存储电路430可以与主处理电路410合并在一起,第二存储电路440则可以由多个从处理电路420共享,并为每个从处理电路分配独立的存储区域,加速访问。本申请实施例在此方面没有限制。此外,在该计算装置中,主处理电路和从处理电路可以属于同一处理器或芯片的不同模块,也可以属于不同处理器,本申请在此方面也没有限制。
为了充分地利用上述计算装置的计算能力,本实施例的芯片能够实现一种芯片算力控制方法。具体地,该计算装置包括控制器单元(图3中所示的控制模块,具体可参见上文)和至少一个运算电路,具体参见上文所述。
其中,控制器单元,被配置为:
获得所述计算装置中至少一个运算电路在一个运算周期所使用的总数据量;根据所述总数据量及所述预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量;按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算。
可选地,控制器单元,在根据所述总数据量及所述预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量时,被配置为:
根据所述总数据量及所述预设的带宽确定需要配置的数据复用次数的最小值;根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值。
可选地,数据复用次数包括:空间复用次数;所述空间复用次数为使用同一数据的目标运算电路的个数,控制器单元,在根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值时,被配置为:
获取默认的时间复用次数;根据所述数据复用次数的最小值及所述默认的时间复用次数计算所述空间复用次数的最小值;根据所述空间复用次数的最小值对所述空间复用次数进行配置,以使配置后的空间复用次数大于或等于所述空间复用次数的最小值。
可选地,控制器单元,在根据所述数据复用次数的最小值及所述默认的时间复用次数计算所述空间复用次数的最小值时,被配置为:
计算所述数据复用次数的最小值与所述默认的时间复用次数的商值;将所述商值确定为所述空间复用次数的最小值。
可选地,数据复用次数包括:时间复用次数;所述时间复用次数为所述目标运算电路对同一数据使用的运算周期数;
相应地,控制器单元,在根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值时,被配置为:
获取默认的空间复用次数;根据所述数据复用次数的最小值及所述默认的空间复用次数计算所述时间复用次数的最小值;根据所述时间复用次数的最小值对所述时间复用次数进行配置,以使配置后的时间复用次数大于或等于所述时间复用次数的最小值。
可选地,所述数据复用次数包括时间复用次数和所述空间复用次数;
相应地,控制器单元,在根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值时,被配置为:
根据所述数据复用次数的最小值对所述时间复用次数和所述空间复用次数进行配置,以使配置后的时间复用次数与所述空间复用次数的乘积大于或等于所述数据复用次数的最小值。
可选地,所述计算装置处理的数据包括对齐数据,所述对齐数据的数据类型包括但不限于以下类型的任意一种:BF16、FP16、FP32;
所述预设的带宽为对齐数据的数据类型数据表示位数的整数倍。
可选地,所述计算装置处理的数据包括非对齐数据,所述非对齐数据的数据类型包括但不限于TF32类型;所述预设的带宽为非对齐数据的数据类型表示位数的整数倍。
本实施例提供的芯片可以执行下述任意一个实施例提供的芯片算力控制方法,具体的原理及效果,将在下述实施例中进行一一阐述。
图5为本申请一实施例提供的芯片算力控制方法的流程图,如图5所示,本实施例提供的芯片算力控制方法的执行主体为例如图1-图4实施例中所示的芯片。该芯片具有预设的带宽。芯片包括计算装置,在计算装置中包括至少一个运算电路。则本实施例提供的芯片的算力控制方法包括以下步骤:
步骤501,获得计算装置中至少一个运算电路在一个运算周期所使用的总数据量。
本实施例中,确定在计算装置中包括的运算电路的数量,并确定一个运算电路在一个运算周期(英文为:Cycle)中需要的数据量,并根据运算电路的数量及一个运算电路在一个运算周期中需要的数据量计算计算装置中所有运算电路在一个运算周期所使用的总数据量。
其中,计算装置中所有运算电路在一个运算周期所使用的总数据量可表示为T,计算装置中包括的运算电路的数量可表示为N,一个运算电路在一个运算周期中需要的数据量可表示为t。则T=N*t。
示例性的,若计算装置中运算电路的数量N=64,一个运算电路在一个运算周期中需要的数据量t=256Byte,则T=64*256Byte。
可以理解是,计算装置中所有运算电路在一个运算周期所使用的总数据量是运算电路获得充足的数据的基本标准。
步骤502,根据总数据量及预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量。
其中,预设的带宽是芯片在设计完成后所具有的带宽,该带宽可以是主处理电路或从处理电路与其他功能模块进行数据交互时单位时间内的最大数据传输量。例如,该带宽可以是指主处理电路或从处理电路(或其中的运算电路)与相应存储器之间的数据读写带宽,也可以是主处理电路与从处理电路(或其中的运算电路)之间进行数据传输带宽。
本实施例中,首先可基于芯片的预设带宽及计算装置中包括的运算电路的数量,计算单个运算电路的带宽。其中,单个运算电路的带宽可表示为:w。
那么本实施例中,根据总数据量及预设的带宽对数据复用次数进行配置时,可根据总数据量及单个运算电路的带宽对数据复用次数进行配置。其中,在对数据复用次数进行配置时,需要满足配置后的数据复用次数与单个运算电路的带宽的乘积大于等于所有运算电路的在一个运算周期所使用的总数据量,以使配置后的数据复用次数满足对所有运算电路的在一个运算周期所使用的总数据量。
其中,数据复用次数可表示为M,那么配置后的数据复用次数满足如下公式:
M*w>=N*t 式(1)
步骤503,按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算。
例如,配置后的数据复用次数为M,则可以控制参与运算的目标运算电路进行数据的读取,进而循环利用M次已读取数据的运算,每次读取的数据的量等于单个运算电路的带宽所允许的最大数据量。
本实施例提供的芯片算力控制方法,通过获得计算装置中至少一个运算电路在一个运算周期所使用的总数据量;根据总数据量及预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量;按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算。由于所有运算电路一个运算周期所使用的总数据量是运算电路获得充足的数据的基本标准,而目标运算电路中能使用的数据量与芯片所具有的预设带宽及数据复用次数有关,所以基于所有运算电路一个运算周期所使用的总数据量及预设带宽对数据复用次数进行配置时,能够满足数据充足的基本标准,进而按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算后,能够使芯片的算力得到有效保证,有效提高芯片的数据处理效率。
作为一种可选方式,如图6所示,本实施例中,步骤502包括以下步骤:
步骤5021,根据总数据量及预设的带宽确定需要配置的数据复用次数的最小值。
本实施例中,根据式(1)可确定需要配置的数据复用次数的最小值Mmin可表示为式(2)所示:
Mmin=N*t/w 式(2)
具体地,采用所有运算电路的在一个运算周期所使用的总数据量T=N*t除以单个运算电路的带宽w,即为需要配置的数据复用次数的最小值Mmin。
步骤5022,根据数据复用次数的最小值对数据复用次数进行配置,以使配置后的数据复用次数大于或等于数据复用次数的最小值。
本实施例中,在数据复用次数配置等于数据复用次数的最小值Mmin时,能够保证目标运算电路中能使用的数据量等于所有运算电路的在一个运算周期所使用的总数据量,这时能够为运算电路提供充足的数据。若配置后的数据复用次数大于数据复用次数的最小值,那么更加能够保证为运算电路提供充足的数据,所以将数据复用次数配置为大于或等于数据复用次数的最小值。
本实施例提供的基于芯片的算力控制方法,在根据总数据量及预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量时,根据总数据量及预设的带宽确定需要配置的数据复用次数的最小值;根据数据复用次数的最小值对数据复用次数进行配置,以使配置后的数据复用次数大于或等于数据复用次数的最小值,能够在配置后的数据复用次数等于数据复用次数的最小值时,保证为运算电路提供充足的数据,在配置后的数据复用次数大于数据复用次数的最小值时,不仅能够保证为运算电路提供充足的数据,而且若数据复用次数中包括的时间复用次数较大,还能够有效减少功耗。
本实施例中,需要进行配置的数据复用次数可包括以下次数的至少一种:空间复用次数、时间复用次数。
其中,空间复用次数为使用同一数据的目标运算电路的个数。时间复用次数为目标运算电路对同一数据使用的运算周期数。
那么在本实施例中,若需要进行配置的数据复用次数只包括空间复用次数,则按照配置后的空间复用次数控制参与运算的目标运算电路的数据读取,完成数据加载之后按照默认的时间复用次数开始执行相应的运算。若数据复用次数只包括时间复用次数,则按照默认的空间复用次数控制参与运算的目标运算电路的数据读取,完成数据加载之后按照配置后的时间复用次数开始执行相应的运算。若需要进行配置的数据复用次数既包括空间复用次数,又包括时间复用次数,则按照配置后的空间复用次数控制参与运算的目标运算电路的数据读取,完成数据加载之后按照配置后的时间复用次数开始执行相应的运算。
作为一种可选实施方式,如图7所示,本实施例中,数据复用次数包括:空间复用次数;空间复用次数为使用同一数据的目标运算电路的个数。相应地,步骤5022包括以下步骤:
步骤5022a,获取默认的时间复用次数。
其中,默认的时间复用次数是预先存储且并不需要配置的时间复用次数。默认的时间复用次数可表示为Mt’。
其中,默认的时间复用次数可存储在预设存储区域,从预设存储区域中获取默认的时间复用次数。默认的时间复用次数表示目标运算电路对同一数据使用的默认运算周期数。示例性的,默认的时间复用次数Mt’=1,表示目标运算电路对同一数据使用的运算周期数为1。
步骤5022b,根据数据复用次数的最小值及默认的时间复用次数计算空间复用次数的最小值。
作为一种可选实施方式,本实施例中,步骤5022b包括以下方案:
计算数据复用次数的最小值与默认的时间复用次数的商值;将商值确定为空间复用次数的最小值。
具体地,空间复用次数的最小值可表示为Msmin,那么Msmin可表示为式(3)所示:
Msmin=Mmin/Mt’ 式(3)
步骤5022c,根据空间复用次数的最小值对空间复用次数进行配置,以使配置后的空间复用次数大于或等于空间复用次数的最小值。
本实施例中,将配置后的空间复用次数表示为Ms,则Ms大于或等于空间复用次数的最小值Msmin时,Ms与默认的时间复用次数的乘积Mt’满足式(4)
Ms*Mt’>=N*t/w 式(4)
在Ms=Msmin时,能够保证目标运算电路中能使用的数据量等于所有运算电路的在一个运算周期所使用的总数据量,这时能够为运算电路提供充足的数据。在Ms>Msmin时,那么更加能够保证为运算电路提供充足的数据,所以将配置后的空间复用次数配置为大于或等于空间复用次数的最小值。
本实施例提供的芯片算力控制方法,为数据复用次数的配置提供了一种配置方式。本实施例在根据数据复用次数的最小值对数据复用次数进行配置,以使配置后的数据复用次数大于或等于数据复用次数的最小值时,获取默认的时间复用次数;根据数据复用次数的最小值及默认的时间复用次数计算空间复用次数的最小值;根据空间复用次数的最小值对空间复用次数进行配置,以使配置后的空间复用次数大于或等于空间复用次数的最小值,只对空间复用次数进行配置,采用默认的时间复用次数,有效减少了对数据复用次数的配置量。
作为又一种可选实施方式,如图8所示,本实施例中,数据复用次数包括:时间复用次数;时间复用次数为目标运算电路对同一数据使用的运算周期数。相应地,步骤5022包括以下步骤:
步骤50221,获取默认的空间复用次数。
其中,默认的空间复用次数是预先存储且并不需要配置的空间复用次数。默认的空间复用次数可表示为Ms’。
其中,默认的空间复用次数可存储在预设存储区域,从预设存储区域中获取默认的空间复用次数。默认的空间复用次数表示为使用同一数据的目标运算电路的默认个数。示例性的,默认的空间复用次数Ms’可以为计算装置中包括的所有运算电路个数,如Ms’=64,表示使用同一数据的目标运算电路的默认个数为64。
步骤50222,根据数据复用次数的最小值及默认的空间复用次数计算时间复用次数的最小值。
作为一种可选实施方式,本实施例中,步骤50222包括以下方案:
计算数据复用次数的最小值与默认的空间复用次数的商值;将商值确定为时间复用次数的最小值。
具体地,时间复用次数的最小值可表示为Mtmin,那么Mtmin可表示为式(5)所示:
Mtmin=Mmin/Ms’ 式(5)
步骤50223,根据时间复用次数的最小值对时间复用次数进行配置,以使配置后的时间复用次数大于或等于时间复用次数的最小值。
本实施例中,将配置后的时间复用次数表示为Mt,则Mt大于或等于时间复用次数的最小值Mtmin时,Mt与默认的空间复用次数的乘积Ms’满足式(6)
Mt*Ms’>=N*t/w 式(6)
在Mt=Mtmin时,能够保证目标运算电路中能使用的数据量等于所有运算电路的在一个运算周期所使用的总数据量,这时能够为运算电路提供充足的数据。在Mt>Mtmin时,那么更加能够保证为运算电路提供充足的数据,所以将配置后的时间复用次数配置为大于或等于时间复用次数的最小值。
本实施例提供的芯片算力控制方法,为数据复用次数的配置提供了另一种配置方式。本实施例在根据数据复用次数的最小值对数据复用次数进行配置,以使配置后的数据复用次数大于或等于数据复用次数的最小值时,获取默认的空间复用次数;根据数据复用次数的最小值及默认的空间复用次数计算时间复用次数的最小值;根据时间复用次数的最小值对时间复用次数进行配置,以使配置后的时间复用次数大于或等于时间复用次数的最小值。只对时间复用次数进行配置,采用默认的空间复用次数,有效减少了对数据复用次数的配置量。
作为再一种可选实施方式,本实施例中,数据复用次数包括时间复用次数和空间复用次数;相应地,步骤5022包括方案:
根据数据复用次数的最小值对时间复用次数和空间复用次数进行配置,以使配置后的时间复用次数与空间复用次数的乘积大于或等于数据复用次数的最小值。
其中,配置的时间复用次数可表示为Mt,配置的空间复用次数可表示为Ms。那么数据复用次数的最小值Mmin与Mt及Ms的关系可表示为式(7)所示:
Mt*Ms>=Mmin 式(7)
那么Mt及Ms的乘积还满足式(8)所示:
Mt*Ms>=N*t/w 式(8)
其中,在Mt*Ms=Mmin时,能够保证目标运算电路中能使用的数据量等于所有运算电路的在一个运算周期所使用的总数据量,这时能够为运算电路提供充足的数据。在Mt*Ms>Mmin时,那么更加能够保证为运算电路提供充足的数据,所以将配置后的时间复用次数配置为大于或等于时间复用次数的最小值。
本实施例提供的芯片算力控制方法,能够对时间复用次数和空间复用次数进行灵活配置,为数据复用次数的配置提供了再一种配置方式。本实施例在根据数据复用次数的最小值对数据复用次数进行配置,以使配置后的数据复用次数大于或等于数据复用次数的最小值时,根据数据复用次数的最小值对时间复用次数和空间复用次数进行配置,以使配置后的时间复用次数与空间复用次数的乘积大于或等于数据复用次数的最小值。
在上述任意一个实施例的基础上,作为一种可选实施方式,本实施例中,所述计算装置处理的数据包括对齐数据,对齐数据的数据类型包括但不限于以下类型的任意一种:BF16、FP16、FP32。
本实施例计算装置处理的数据类型还可以是FP64、FP8等数据浮点数据类型。当然,本实施例计算装置处理的数据类型还可以是整型数据,例如Int8、Int16等,此处不一一列举。
预设的带宽为对应数据类型数据表示位数的整数倍。
其中,FP32的数据类型具有数据表示位数为32位。BF16和FP16的数据类型具有数据表示位数为16位。
其中,FP32的数据表示中,符号位数为1位,指数位数为8位,尾数位数为23位。BF16的数据表示中,符号位数为1位,指数位数为8位,尾数位数为7位。BF16的数据类型能够降低存储成本及处理成本,并且能够满足一定的精度要求。FP16的数据表示中,符号位数为1位,指数位数为5位,尾数位数为10位。FP16的数据类型能够降低存储成本及处理成本,被广泛应用在模型训练中。FP64的数据表示中,符号位为1位,指数位为11位,尾数位为52位。FP8的数据表示中,符号位为1位,指数位为4位,尾数位为3位,或者符号位为1位,指数位为5位,尾数位为2位。
本实施例中,将设计芯片时,基于计算装置处理的数据类型,将预设的带宽设置为对应数据类型数据表示位数的整数倍,能够保证传输的数据的完整性。可选地,计算装置处理的数据可以为对齐数据,该对齐数据可以是其数据类型对齐到2的整次幂。此时,预设的带宽可以为K*2n,其中,K为大于或等于1的整数,n为大于或等于1的整数。这样使得预设的带宽能够满足对齐数据的传输。示例性的,若数据类型为FP32,则预设的带宽可以设置为K*2n。其中,K为大于等于1的整数,n为大于5的整数。例如,K=1,n=5。
作为一种可选实施方式,本实施例的计算装置还可以支持非对齐数据的存储和运算,非对齐数据是指其数据类型未对齐到2的整次幂的数据。例如,数据的数据类型为TF32。TF32的数据表示中,符号位为1位,指数位位数为8位,尾数数位为10位。TF32的数据类型相对于FP16的数据类型具有更低的存储成本和更高的计算精度,能够更好地支持神经网络运算。当数据为TF32类型时,其表示位数为19位,并非对齐数据。为了满足不同数据类型的传输要求,预设的带宽还需要为其他数据类型的整数倍,特别地,该预设的带宽需要是非对齐数据的表示位数的整数倍。本实施例中,非对齐数据的数据类型为TF32类型,预设的带宽为非对齐数据的数据类型表示位数的整数倍。
本实施例中,TF32数据类型具有19位有效位,那么预设的带宽为TF32类型有效位数的整数倍。因而,当该带宽同时支持对齐数据和非对齐数据的传输时,预设的带宽可以为K*L*2n,其中,L为非对齐数据的表示位数,L为大于等于1的整数,K为大于等于1的整数,n为大于或等于1的整数。例如,当数据类型为TF32类型时,该预设的带宽可以是19的整数倍。当芯片同时支持TF32类型和FP16类型时,该预设的带宽可以是19*24。
进一步地,由于预设的数据带宽能够支持非对齐数据的传输,本实施例的计算装置能够支持非对齐数据的读写。如上文所述,在运算期间,数据从第一存储电路或第二存储电路搬运至计算装置的第一缓存电路或第二缓存电路中。为了保证数据的精度和完整性,非对齐数据在第一存储电路和第二存储电路中可以以对齐数据的方式进行存储,例如TF32类型数据在第一存储电路或第二存储电路中将占用32bit的存储空间,其中,19bit为有效位,其余13bit无效。这样,上层软件用户在分配存储电路的资源时,无需感知非对齐数据的特殊对齐要求,从而方便编程和使用。在运算期间,非对齐数据从第一存储电路或第二存储电路被读取至计算装置的缓存电路中,以送到运算电路中进行相应的运算。此时,非对齐数据可以以非对齐的方式存储在第一缓存电路或第二缓存电路中,从而可以降低运算器(其可以由上述的主处理电路和从处理电路形成)的存储成本。例如,TF32数据搬运至运算器后,仅存储其有效位数。之后,运算电路从第一缓存电路或第二缓存电路中读取其有效位数进行运算,获得相应的运算结果,该运算结果可首先存储至第三缓存电路中。进一步地,本实施例还可以将运算结果搬运至第一存储电路或第二存储电路,此时计算装置中的非对齐数据又被转换为对齐数据进行存储。
本实施例提供的芯片算力控制方法,由于在进行TF32类型的数据存储时,仍然采用对齐数据进行存储,从而方便用户使用。而在计算装置读取数据时,只读取非对齐数据的有效位;并采用非对齐有效位进行数据的运算,可有效减少运算量和数据的读取量。
在一种可能的实现方式中,还公开了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被至少一个处理器执行时,实现任意一个实施例提供的非线性层数据处理方法。
依据以下条款可更好地理解前述内容(The foregoing may be betterunderstood in view of the following clauses):
条款1、一种基于芯片的算力控制方法,所述芯片具有预设的带宽,所述芯片包括计算装置,所述方法包括:
获得所述计算装置中至少一个运算电路在一个运算周期所使用的总数据量;
根据所述总数据量及所述预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量;
按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算。
条款2、根据条款1所述的方法,所述根据所述总数据量及所述预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量,包括:
根据所述总数据量及所述预设的带宽确定需要配置的数据复用次数的最小值;
根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值。
条款3、根据条款2所述的方法,所述数据复用次数包括:空间复用次数;所述空间复用次数为使用同一数据的目标运算电路的个数;
所述根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值,包括:
获取默认的时间复用次数;
根据所述数据复用次数的最小值及所述默认的时间复用次数计算所述空间复用次数的最小值;
根据所述空间复用次数的最小值对所述空间复用次数进行配置,以使配置后的空间复用次数大于或等于所述空间复用次数的最小值。
条款4、根据条款3所述的方法,所述根据所述数据复用次数的最小值及所述默认的时间复用次数计算所述空间复用次数的最小值,包括:
计算所述数据复用次数的最小值与所述默认的时间复用次数的商值;
将所述商值确定为所述空间复用次数的最小值。
条款5、根据条款3所述的方法,所述数据复用次数包括:时间复用次数;所述时间复用次数为所述目标运算电路对同一数据使用的运算周期数;
所述根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值,包括:
获取默认的空间复用次数;
根据所述数据复用次数的最小值及所述默认的空间复用次数计算所述时间复用次数的最小值;
根据所述时间复用次数的最小值对所述时间复用次数进行配置,以使配置后的时间复用次数大于或等于所述时间复用次数的最小值。
条款6、根据条款3所述的方法,所述数据复用次数包括时间复用次数和所述空间复用次数;
所述根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值,包括:
根据所述数据复用次数的最小值对所述时间复用次数和所述空间复用次数进行配置,以使配置后的时间复用次数与所述空间复用次数的乘积大于或等于所述数据复用次数的最小值。
条款7、根据条款1-6任一项所述的方法,所述计算装置处理的数据包括对齐数据,所述对齐数据的数据类型包括但不限于以下类型的任意一种:BF16、FP16、FP32;
所述预设的带宽为对齐数据的数据类型数据表示位数的整数倍。
条款8、根据条款7所述的方法,所述计算装置处理的数据包括非对齐数据,所述非对齐数据的数据类型包括但不限于TF32;
所述预设的带宽为非对齐数据的数据类型表示位数的整数倍。
条款9、一种芯片,所述芯片具有预设的带宽,所述芯片包括计算装置,所述计算装置包括:至少一个运算电路及控制器单元;所述运算电路与所述控制器单元连接,运算电路位于计算装置中;
所述控制器单元,被配置为:实现条款1-8任一项所述的方法。
条款10、一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被至少一个处理器执行时,实现如条款1-8任一项所述的方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本申请的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本申请各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random AccessMemory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
Claims (10)
1.一种芯片算力控制方法,所述芯片具有预设的带宽,所述芯片包括计算装置,其特征在于,所述方法包括:
获得所述计算装置中至少一个运算电路在一个运算周期所使用的总数据量;
根据所述总数据量及所述预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量;
按照配置后的数据复用次数控制参与运算的目标运算电路的数据读取和/或运算。
2.根据权利要求1所述的方法,其特征在于,所述根据所述总数据量及所述预设的带宽对数据复用次数进行配置,以使配置后的数据复用次数满足对至少一个运算电路的在一个运算周期所使用的总数据量,包括:
根据所述总数据量及所述预设的带宽确定需要配置的数据复用次数的最小值;
根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值。
3.根据权利要求2所述的方法,其特征在于,所述数据复用次数包括:空间复用次数;所述空间复用次数为使用同一数据的目标运算电路的个数;
所述根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值,包括:
获取默认的时间复用次数;
根据所述数据复用次数的最小值及所述默认的时间复用次数计算所述空间复用次数的最小值;
根据所述空间复用次数的最小值对所述空间复用次数进行配置,以使配置后的空间复用次数大于或等于所述空间复用次数的最小值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据复用次数的最小值及所述默认的时间复用次数计算所述空间复用次数的最小值,包括:
计算所述数据复用次数的最小值与所述默认的时间复用次数的商值;
将所述商值确定为所述空间复用次数的最小值。
5.根据权利要求3所述的方法,其特征在于,所述数据复用次数包括:时间复用次数;所述时间复用次数为所述目标运算电路对同一数据使用的运算周期数;
所述根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值,包括:
获取默认的空间复用次数;
根据所述数据复用次数的最小值及所述默认的空间复用次数计算所述时间复用次数的最小值;
根据所述时间复用次数的最小值对所述时间复用次数进行配置,以使配置后的时间复用次数大于或等于所述时间复用次数的最小值。
6.根据权利要求3所述的方法,其特征在于,所述数据复用次数包括时间复用次数和所述空间复用次数;
所述根据所述数据复用次数的最小值对所述数据复用次数进行配置,以使配置后的数据复用次数大于或等于所述数据复用次数的最小值,包括:
根据所述数据复用次数的最小值对所述时间复用次数和所述空间复用次数进行配置,以使配置后的时间复用次数与所述空间复用次数的乘积大于或等于所述数据复用次数的最小值。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述计算装置处理的数据包括对齐数据,所述对齐数据的数据类型包括但不限于以下类型的任意一种:BF16、FP16、FP32;
所述预设的带宽为对齐数据的数据类型数据表示位数的整数倍。
8.根据权利要求7所述的方法,其特征在于,所述计算装置处理的数据包括非对齐数据,所述非对齐数据的数据类型包括但不限于TF32;
所述预设的带宽为非对齐数据的数据类型表示位数的整数倍。
9.一种芯片,所述芯片具有预设的带宽,所述芯片包括计算装置,其特征在于,所述计算装置包括:至少一个运算电路及控制器单元;所述运算电路与所述控制器单元连接,运算电路位于计算装置中;
所述控制器单元,被配置为实现如权利要求1-8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被至少一个处理器执行时,实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210915068.7A CN117539823A (zh) | 2022-08-01 | 2022-08-01 | 芯片算力控制方法、芯片及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210915068.7A CN117539823A (zh) | 2022-08-01 | 2022-08-01 | 芯片算力控制方法、芯片及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117539823A true CN117539823A (zh) | 2024-02-09 |
Family
ID=89782827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210915068.7A Pending CN117539823A (zh) | 2022-08-01 | 2022-08-01 | 芯片算力控制方法、芯片及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539823A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118210554A (zh) * | 2024-05-21 | 2024-06-18 | 北京壁仞科技开发有限公司 | 处理器、服务器、数据处理方法与装置、存储介质和产品 |
-
2022
- 2022-08-01 CN CN202210915068.7A patent/CN117539823A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118210554A (zh) * | 2024-05-21 | 2024-06-18 | 北京壁仞科技开发有限公司 | 处理器、服务器、数据处理方法与装置、存储介质和产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
CN109685201B (zh) | 运算方法、装置及相关产品 | |
CN112799726B (zh) | 数据处理装置、方法及相关产品 | |
WO2019118363A1 (en) | On-chip computational network | |
US20220391128A1 (en) | Techniques to repurpose static random access memory rows to store a look-up-table for processor-in-memory operations | |
CN114580606A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2021142713A1 (zh) | 神经网络处理的方法、装置与系统 | |
CN117539823A (zh) | 芯片算力控制方法、芯片及存储介质 | |
CN116185942A (zh) | 数据处理方法、装置、存储介质以及电子设备 | |
CN113010845A (zh) | 执行矩阵乘法的计算装置、方法及相关产品 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
CN115904681A (zh) | 任务调度方法、装置及相关产品 | |
CN113704156B (zh) | 感知数据处理装置、板卡、系统及方法 | |
CN113434814B (zh) | 一种基于神经网络的矩阵乘运算方法及相关装置 | |
CN113434813B (zh) | 一种基于神经网络的矩阵乘运算方法及相关装置 | |
CN111209230B (zh) | 数据处理装置、方法及相关产品 | |
CN116097273A (zh) | 由深度学习加速器与集成随机存取存储器进行的协作式传感器数据处理 | |
CN115904682A (zh) | 图任务调度方法、装置及存储介质 | |
CN118210552A (zh) | 指令生成方法、装置及存储介质 | |
CN117950624A (zh) | 基于计算装置的数据计算方法、装置及相关产品 | |
CN114565075A (zh) | 支援多种访问模式的设备、方法及可读存储介质 | |
US11836082B2 (en) | Neural processing device and load/store method of neural processing device | |
CN113792867B (zh) | 运算电路、芯片和板卡 | |
US20230385622A1 (en) | Neural processing unit including internal memory having scalable bandwidth and driving method thereof | |
CN115878299A (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 |