CN111045732A - 数据处理方法、芯片、设备及存储介质 - Google Patents
数据处理方法、芯片、设备及存储介质 Download PDFInfo
- Publication number
- CN111045732A CN111045732A CN201911235760.XA CN201911235760A CN111045732A CN 111045732 A CN111045732 A CN 111045732A CN 201911235760 A CN201911235760 A CN 201911235760A CN 111045732 A CN111045732 A CN 111045732A
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- unit
- parallel control
- processing
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 433
- 238000013500 data storage Methods 0.000 claims abstract description 108
- 238000000034 method Methods 0.000 claims abstract description 93
- 230000008569 process Effects 0.000 claims description 70
- 238000013473 artificial intelligence Methods 0.000 claims description 19
- 238000003062 neural network model Methods 0.000 claims description 17
- 238000011176 pooling Methods 0.000 description 26
- 230000015654 memory Effects 0.000 description 23
- 238000012546 transfer Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 108010001267 Protein Subunits Proteins 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004148 unit process Methods 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/454—Vector or matrix data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法、芯片、设备及存储介质,属于计算机技术领域。方法包括:读取并行控制指令;根据所述并行控制指令,读取数据缓存空间中已缓存的第一数据,并对读取的所述第一数据进行处理,将处理后的第一数据输出至所述数据缓存空间;同时,根据所述并行控制指令,将第二数据从数据存储空间搬移到所述数据缓存空间,所述第二数据为所述第一数据的下一条数据。通过读取并行控制指令,根据并行控制指令,同时进行数据处理和数据搬移,减少了数据处理等待数据搬移的时间,加快了处理速度和处理效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据处理方法、芯片、设备及存储介质。
背景技术
计算机设备中的处理器可以处理大量的计算任务,例如,处理器中的数据搬移单元将图片数据从处理器之外搬移至处理器中,由处理器中的处理单元对该图片数据进行处理。
目前,随着计算机设备的不断发展,处理性能的不断提高,数据也越来越大,数据搬移过程会耗时较多,且数据处理过程依赖于数据搬移过程,从而导致处理器的处理速度较慢,处理效率较低。
发明内容
本申请实施例提供了一种数据处理方法、芯片、设备及存储介质,解决了相关技术存在的处理器的处理速度较慢,处理效率较低问题。所述技术方案如下:
一方面,提供了一种数据处理方法,所述方法包括:
读取并行控制指令;
根据所述并行控制指令,读取数据缓存空间中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存空间;
同时,根据所述并行控制指令,将第二数据从所述数据存储空间搬移到所述数据缓存空间,所述第二数据为所述第一数据的下一条数据。
另一方面,提供了一种数据处理芯片,所述芯片包括:指令处理单元、数据处理单元、数据搬移单元和数据缓存单元;
所述指令处理单元,用于提取并行控制指令,同时向所述数据处理单元和所述数据搬移单元发送所述并行控制指令;
所述数据处理单元,用于根据所述并行控制指令,读取所述数据缓存单元已缓存的第一数据,对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存单元;
所述数据搬移单元,用于同时根据所述并行控制指令,将待处理的第二数据从位于所述芯片之外的数据存储单元搬移至所述数据缓存单元,所述第二数据为所述第一数据的下一条数据。
在一种可能实现方式中,所述数据处理单元包括卷积引擎或池化引擎中的至少一项。
另一方面,提供了一种计算机设备,所述计算机设备包括:处理器和数据存储单元,所述处理器包括:指令处理单元、数据处理单元、数据搬移单元和数据缓存单元;
所述指令处理单元,用于读取并行控制指令;
所述数据处理单元,用于根据所述并行控制指令,读取所述数据缓存单元已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存单元;
所述数据搬移单元,用于同时,根据所述控制指令,将第二数据从所述数据存储单元搬移至所述数据缓存单元,所述第二数据为所述第一数据的下一条数据。
在一种可能实现方式中,所述计算机设备包括指令存储单元,所述处理器包括指令缓存单元,所述指令处理单元,用于读取指令存储单元中的并行控制指令;按照读取顺序将读取到的并行控制指令搬移到所述指令缓存单元进行缓存,得到指令缓存队列;按照指令缓存顺序从所述指令缓存队列中读取并行控制指令。
在一种可能实现方式中,所述并行控制指令中包括数据处理指令和数据搬移指令;所述指令处理单元,用于提取所述并行控制指令中的数据处理指令和数据搬移指令;
所述指令处理单元,还用于向所述数据处理单元发送数据处理指令,同时向所述数据搬移单元发送数据搬移指令;
所述数据处理单元,用于根据所述数据处理指令,读取所述数据缓存单元中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存单元;
所述数据搬移单元,用于根据所述数据搬移指令,将所述第二数据从数据存储单元搬移到所述数据缓存单元。
在一种可能实现方式中,所述指令处理单元,用于提取所述并行控制指令中的有效字段指示信息;根据所述有效字段指示信息,确定所述并行控制指令中第一有效字段和第二有效字段;从所述并行控制指令中读取所述第一有效字段和所述第二有效字段,得到数据处理指令和数据搬移指令。
在一种可能实现方式中,所述计算机设备还包括拆分单元,所述拆分单元,用于获取待处理数据;根据所述数据缓存单元的缓存容量对所述待处理数据进行拆分,得到拆分后的多条数据;将所述多条数据组成的数据序列存储在数据存储单元。
在一种可能实现方式中,所述待处理数据为图片数据;所述数据处理单元,用于根据所述并行控制指令,基于神经网络模型,读取所述数据缓存单元已缓存的所述第一数据;并对读取的所述第一数据进行处理,将处理后的第一数据输出至所述数据缓存单元。
在一种可能实现方式中,所述数据处理单元,用于根据所述神经网络模型中各层分别对应的数据处理指令,并行进行数据处理。
再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如所述的数据处理方法中所执行的操作。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过读取并行控制指令,从而根据并行控制指令同时执行数据处理操作和数据搬移操作,尽可能地减少了数据处理操作等待数据搬移操作的时长,从而提高了数据处理的速度和效率。并且,本次处理的是数据搬移单元上一次搬移的数据,无需等待数据搬移过程,即可进行处理,减少了数据处理过程对数据搬移过程的依赖,提高了处理速度和处理效率。
另外相关技术中,为了避免在搬移较大的待处理数据时,耗时较久,会将待处理的数据进行压缩、裁剪等处理,来减小待处理数据的数据量,但是压缩、裁剪等处理会导致图片中的某些信息丢失,而本申请实施例并未对待处理数据进行压缩、裁剪等处理,因此,并未丢失待处理数据中的信息,保证了处理器处理结果的准确性。
另外,相关技术中,为了避免在搬移较大的待处理数据耗时较久,会设置更大缓存容量的数据缓存空间,这样在进行数据处理时,可以加快搬移速度;或者,使用更高的总线带宽,如采用HBM(High Bandwidth Memory,高带宽存储器),也即是通过提高数据传输效率来减小数据搬移的耗时。但是设置更大缓存容量的缓存空间,会导致成本显著增加;采用高带宽存储器带来的成本增加也比较明显。
而本申请实施例提供的数据处理方法,是将待处理数据拆分为多条数据,对该拆分后的多条数据进行处理,并且通过将数据搬移过程和数据处理过程并行执行,尽可能地避免数据处理过程对数据搬移过程的等待时间,从而减少数据搬移对处理速度的影响。因此,本申请实施例对数据缓存空间和带宽有没有较高的要求,不会增加成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种计算机设备的示意图;
图2是本申请实施例提供的另一种计算机设备的示意图;
图3是本申请实施例提供的另一种计算机设备的示意图;
图4是本申请实施例提供的另一种计算机设备的示意图;
图5是本申请实施例提供的另一种计算机设备的示意图;
图6是本申请实施例提供的一种数据处理方法的流程图;
图7是本申请实施例提供的一种卷积处理的示意图;
图8是本申请实施例提供的一种拆分后的多条数据的示意图;
图9是本申请实施例提供的一种数据处理方法的流程图;
图10是本申请实施例提供的一种控制指令的示意图;
图11是本申请实施例提供的一种控制指令的示意图;
图12是本申请实施例提供的一种指令缓存单元的示意图;
图13是本申请实施例提供的一种数据处理方法的流程图;
图14是本申请实施例提供的一种数据处理方法的流程图;
图15是本申请实施例提供的一种处理器的示意图;
图16是本申请实施例提供的一种数据处理方法的流程图;
图17是本申请实施例提供的一种数据处理方法的流程图;
图18是本申请实施例提供的一种数据处理方法的流程图;
图19是本申请实施例提供的一种芯片的示意图;
图20是本申请实施例提供的一种芯片的示意图;
图21是本申请实施例提供的一种终端的结构框图;
图22是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一数据称为第二数据,且类似地,可将第二数据称为第一数据。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例可以采用上述的人工智能技术进行数据处理,并使用本申请提供的数据处理方法来提高处理速度和处理效率,通过如下实施例对本申请的数据处理方法进行详细说明。
本申请实施例提供的数据处理方法可以应用于计算机设备,该计算机设备可以为手机、平板电脑、智能终端、机器人、电脑、打印机、扫描仪、电话、行车记录仪、导航仪、摄像头、摄像机、手表、耳机、可穿戴设备等各类电子产品;还可以为飞机、轮船、车辆等各类交通工具;还可以为电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;还可以为核磁共振仪、心电图仪等各类医疗设备;还可以为服务器,例如,该计算机设备可以是一台服务器,也可以是若干台服务器组成的服务器集群,或者是一个云计算服务中心。
以应用于心电图仪为例进行说明:
心电图仪可以拍摄用户的心电图图像,并采用训练好的神经网络对获取的心电图图像进行分析,确定用户是否存在心脏问题,采用本申请实施例提供的数据处理方法,在获取到心电图图像之后,可以采用处理器来执行神经网络需要执行的运算步骤,处理器中的指令处理单元同时向数据处理单元和数据搬移单元发送控制指令,数据处理单元和数据搬移单元并行运行,也即是同时进行将心电图图像搬移至处理器的过程和对搬移至处理器的上一心电图图像进行处理的过程,尽可能地避免了数据处理单元等待数据搬移单元搬移心电图图像,提高了处理速度和处理效率。
本申请实施例提供的数据处理方法可以应用于任一对数据进行处理的场景中,本申请实施例对此不做限定。
如图1所示,该计算机设备可以包括处理器1和数据存储单元201、处理器1可以包括指令处理单元101、数据处理单元102、数据搬移单元103和数据缓存单元104。其中,指令处理单元101可以分别与数据处理单元102和数据搬移单元103连接,数据缓存单元104可以分别与数据处理单元102和数据搬移单元103连接,数据存储单元201可以分别与数据处理单元102和数据缓存单元103连接。其中,指令处理单元101可以同时向数据处理单元102和数据搬移单元103发送控制指令。数据存储单元201可以存储多条数据。
在另一种可能实现方式中,如图2所示,计算机设备还可以包括指令存储单元202,处理器1还可以包括指令缓存单元105,指令处理单元101可以将指令存储单元202中存储的至少一个控制指令搬移至指令缓存单元105。
在另一种可能实现方式中,如图3所示,计算机设备还可以包括拆分单元203,该拆分单元位于处理器1之外,可以将待处理数据拆分为多条数据,还可以将拆分后的多条数据存储于数据存储单元201中。
在另一种可能实现方式中,如图4所示,数据处理单元102包括至少一个数据处理子单元,每个数据处理子单元用于对数据进行不同的处理,数据搬移单元可以包括至少一个数据搬移子单元,每个数据搬移子单元的数据搬移过程不同。以数据搬移单元包括三个数据搬移子单元为例进行说明,其中,第一数据搬移子单元可以用于将数据从数据存储单元201搬移至数据缓存单元104;第二数据搬移子单元可以用于将数据从数据缓存单元104搬移至数据存储单元201;第三数据搬移子单元可以用于将数据从数据缓存单元104的第一位置搬移至数据缓存单元104的第二位置。其中,数据处理子单元可以为计算引擎,例如,卷积引擎、池化引擎等,数据搬移子单元可以为搬移引擎,例如,load引擎、store引擎、move引擎等。
例如,如图5所示,计算机设备可以包括指令处理单元101、数据处理单元102、数据搬移单元103、数据缓存单元104、指令缓存单元105、数据存储单元201、指令存储单元202和拆分单元203。其中,数据处理单元102包括至少一个数据处理子单元,数据搬移单元包括至少一个数据搬移子单元。
图6是本申请实施例提供的一种数据处理方法的流程图,本申请实施例的执行主体为如图1至5任一所示的计算机设备,参见图6,该方法包括:
601、拆分单元将待处理数据拆分为多条数据,将拆分后的多条数据存储于数据存储单元。
其中,待处理数据为处理器需要进行处理的数据,该待处理数据可以包括图片数据,音频数据、文本数据等任一形式的数据,本申请实施例对待处理数据不做限制。
当待处理数据的数据量较大时,搬移该待处理数据的过程会较为耗时,因此本申请实施例将待处理数据切分为多条数据,分别对拆分后的多条数据中的每条数据进行处理,这样由于每次搬移数据的数据量变小,搬移的速度也会变快。
在一种可能实现方式中,拆分单元将待处理数据拆分为多条数据可以包括:当待处理数据为图片数据时,可以按照待处理数据的大小,将待处理数据平均拆分为多条数据,例如,图片数据的大小为128*128*3,将图片数据进行拆分,得到的多条数据为16个32*32*3的图片数据。
当待处理数据为音频数据时,可以按照预设时长进行划分,例如,待处理数据为时长为1分钟的音频数据,当预设时长为10秒时,按照该预设时长对待处理数据进行拆分,得到的多条数据为6条时长为10秒的音频数据。当待处理数据为音频数据时,还可以按照语句进行划分,得到的多条数据中的每条数据包括至少一个语句。例如,两个相邻语句之间是存在一定时间间隔的,因此,可以根据待处理数据中存在的空白间隔,将待处理数据中的多个语句拆分开来,得到多条数据,多条数据中的每条数据中包括一个语句。
当待处理数据为文本数据时,可以按照数据量大小,将待处理数据均分为多条数据;还可以按照段、句等划分方式,将待处理数据中拆分为多条数据。例如,将待处理数据中的每段文字划分为一条数据,从而得到多条数据;或者,将待处理数据中的每个语句划分为一条数据,从而得到多条数据。
由于将待处理数据拆分成多条数据,是将多条数据是输入至处理器,由处理器对该多条数据依次进行处理的,因此还可以根据处理器的情况,对待处理数据进行拆分。在一种可能实现方式中,拆分单元按照拆分规则,将待处理数据拆分为多条数据,拆分规则指示拆分得到的任一条数据的数据量不大于数据缓存单元的缓存容量。可选地,计算机设备可以获取待处理数据,根据数据缓存单元的缓存容量对待处理数据进行拆分,得到拆分后的多条数据。
其中,数据缓存单元的缓存容量可以为数据缓存单元的总缓存容量,在一种可能实现方实现中,拆分单元按照拆分规则,将待处理数据拆分为多条数据,可以包括:拆分单元按照数据缓存单元的总缓存容量,将待处理数据拆分为多条数据,每条数据的数据量不大于数据缓存单元的总缓存容量。例如,数据缓存单元的总缓存容量为15KB,待处理数据的数据量为85KB,可以将待处理数据拆分为6条数据量相同的数据,也可以将待处理数据拆分为数据量不同的6条数据。例如,该6条数据的数据量可以分别为15KB、15KB、15KB、15KB、15KB和10KB。
另外,数据缓存单元除了需要缓存输入处理器的数据之外,可能还需要缓存其他数据,因此,数据缓存单元的缓存容量还可以是当前数据缓存单元的剩余缓存容量,在一种可能实现方式中,拆分单元按照拆分规则,将待处理数据拆分为多条数据,可以包括:拆分单元按照数据缓存单元的剩余缓存容量,将待处理数据拆分为多条数据,每条数据的数据量不大于数据缓存单元的剩余缓存容量。
另外,数据缓存单元可以缓存数据处理单元需要进行处理的数据,还可以缓存数据处理单元输出的处理后的数据,并且,本申请实施例中指令控制单元会同时向数据处理单元和数据搬移单元发送并行控制指令,使得数据处理单元在对数据缓存单元已存储的数据进行处理时,数据搬移单元能够同时将待处理的数据搬移至数据缓存单元,因此,数据缓存单元至少需要缓存数据搬移单元将要搬移的数据,数据处理单元将要处理的数据和数据处理单元将要输出的数据。
因此,在一种可能实现方式中,拆分单元按照拆分规则,将待处理数据拆分为多条数据,可以包括:拆分单元按照处理单元的输入数据的数据量和相应的输出数据的数据量,将待处理数据拆分为多条数据,以使数据缓存单元能够至少缓存数据处理单元的两条输入数据和一条输出数据。
例如,当数据缓存单元的缓存容量为30KB时,若将数据量为10KB的数据输入至数据处理单元,由数据处理单元对该数据进行处理之后,输出的数据为10KB时,可以将待处理数据拆分为多条数据,每条数据的数据量不超过10KB。
另外,数据缓存单元中在缓存数据时,可以将不同种类的数据存储在不同的存储空间,以便对数据进行区分管理。例如,将数据处理单元待处理的数据存储在第一存储空间,将处理后的数据存储在第二存储空间。在一种可能实现方式中,拆分单元按照拆分规则,将待处理数据拆分为多条数据,可以包括:根据第一存储空间和第二存储空间的大小,确定每条数据的最大数据量,将待处理数据拆分为多条数据,每条数据的数据量不大于该最大数据量。其中,第一存储空间可以为数据处理单元的输入存储空间,第二存储空间可以为数据处理单元的输出存储空间。
例如,数据处理单元处理前的数据和处理后的数据的数据量可能会发生变化。第一存储空间的容量为16KB,第二存储空间的容量为8KB,假设处理后的数据量会变为待处理数据的两倍,若要使第二存储空间能够容纳处理后的数据,那么拆分得到的数据的数据量最大为4KB。
又如,第一存储空间的容量为16KB,第二存储空间的容量为16KB,由于数据处理和数据搬移的并行执行,因此第一存储空间需要存储数据处理单元即将处理的数据,还需要为数据搬移单元即将搬移的数据预留空间,因此,第一存储空间需要至少容纳两条数据,那么拆分得到的数据的数据量最大为8KB。
在一种可能实现方式中,处理器可以是用于执行神经网络的各种计算过程的一个AI芯片,以数据处理单元为进行卷积运算的单元为例,对将待处理数据拆分为多条数据进行说明:
例如,待处理数据为2048*2048*64(width*height*channel,宽*长*通道)的图片数据,pad(扩展)为1,在AI芯片中通过32组3*3(width*height,宽*长)的卷积核进行stride(步长)为1的卷积运算。AI芯片内输入数据的存储空间的容量为16KB*32,输出数据的存储空间的容量为16KB*32。由于数据处理和数据搬移的并行执行,将输入数据的存储空间分成两部分。如图7所示,该卷积计算输出数据的数据量和输入数据的数据量相同,那么可以以输入数据的存储空间的大小作为数据拆分的依据,即8KB*32可以为拆分得到的数据的最大数据量。数据拆分可以按照60*60*64的规格进行拆分,其中每个60*60*64的数据消耗7.2KB*32的容量。这样拆分得到的两条数据的数据量小于输入数据的存储空间的总容量。
在一种可能实现方式中,将待处理数据拆分为多条数据可以是将书拆分为多条Tile(瓦片数据),其中,将待处理数据拆分为多条Tile的过程可以如图8所示,图8为拆分后的多条Tile的示意图,以图8的第一行为例,总共拆分为36个Tile;以整个待处理数据为例,总共拆分为36*36=1296个Tile。
以第一行的Tile为例,其中,第1个Tile的大小为60*60*64;第2至35个Tile的大小为60*60*64,考虑到卷积的滑窗特点,第2个至第35个中的每个Tile与前一个Tile可以有2列交叠,每个Tile中新的区域大小为60*58。第36个Tile的大小为60*20*64,考虑到卷积的滑窗特点,每个Tile和前一个Tile有2列交叠,该Tile中新的区域大小为60*18。
需要说明的是,本申请实施例中的拆分规则,可以由开发人员在配置处理器的时候,根据处理器中数据缓存单元的容量、数据处理和数据搬移对缓存的要求以及数据处理前后数据量的大小变化确定,由于处理器配置好之后,该处理器需要处理的数据也确定了,即待处理数据的类型和大小确定了,因此拆分单元可以根据开发人员配置的拆分规则将待处理数据拆分为多条数据。
另外,在将待处理数据进行拆分,得到拆分后的多条数据之后,可以将该多条数据组成的数据序列存储的数据存储空间中,该数据序列可以如图8所示,也可以按照其他方式进行排列,本申请实施例对数据序列的具体形式不做限定。
602、指令处理单元将指令存储单元中存储的至少一个并行控制指令搬移至指令缓存单元。
其中,指令存储单元位于处理器之外,指令存储单元可以为存储器,也可以为存储介质,或者还可以为其他类型的存储单元。指令存储单元用于存储对一条待处理数据拆分得到的多条数据进行处理所需的多个并行控制指令,其中,该多条并行控制指令可以循环利用,也即是对每条待处理数据拆分得到的多条数据进行处理时,均可以使用指令存储单元存储的多个并行控制指令。
指令存储单元存储的多个并行控制指令可以是预先存储在指令存储单元的,在需要处理器对数据进行处理时,可以从指令存储单元中读取并行控制指令。例如,以数据处理单元对拆分得到的前6个数据进行处理为例进行说明,如图9所示:指令存储单元中存储的第一个并行控制指令可以指示数据搬移单元将第一条数据A从数据存储单元搬移至数据缓存单元;第二个并行控制指令可以指示数据搬移单元将第二条数据B从数据存储单元搬移至数据缓存单元,并指示数据处理单元读取数据缓存单元已缓存的第一条数据A,对第一条数据A进行处理,将处理后的第一条数据A输出至数据缓存单元;第三个并行控制指令可以指示数据搬移单元将第三条数据C搬移至数据缓存单元,并指示数据处理单元读取数据缓存单元已缓存的第二条数据B,对第二条数据B进行处理,将处理后的第一条数据A输出至数据缓存单元,并指示数据搬移单元将数据缓存单元将处理后的第一条数据A从数据缓存单元搬移至数据存储单元;其余并行控制指令可以参考图9,本申请实施例对此不再一一赘述。
其中,数据搬移单元在第三个并行控制指令的指示下,将第三条数据C从数据存储单元搬移至数据缓存单元,还将处理后的第一条数据A从数据缓存单元搬移至数据存储单元。
在一种可能实现方式中,数据搬移单元可以包括第一数据搬移子单元和第二数据搬移子单元,由第一数据搬移子单元将数据从数据存储单元搬移至数据缓存单元,由第二数据搬移子单元将数据从数据缓存单元搬移至数据存储单元。
另外,指令存储单元存储的多个并行控制指令的格式可以相同,也可以不同,在一种可能实现方式中,指令存储单元存储的多个并行控制指令中的任一个并行控制指令包括该并行控制指令控制的每个单元的有效字段。例如,如图10所示,并行控制指令1包括第二有效字段,该第二有效字段用于指示数据搬移单元将第一条数据A从数据存储单元搬移至数据缓存单元;并行控制指令2包括第一有效字段和第二有效字段,第二有效字段用于指示数据搬移单元将第二条数据B从数据存储单元搬移至数据缓存单元,第一有效字段用于指示数据处理单元读取数据缓存单元已缓存的第一条数据A,对该第一条数据A进行处理,将处理后的第一条数据A输出至数据缓存单元,其中并行控制指令携带的有效字段不同,因此,并行控制指令1和并行控制指令2的控制对象不同时,并行控制指令1和并行控制指令2的格式并不相同。
在一种可能实现方式中,指令存储单元存储的多个并行控制指令的格式相同。每个并行控制指令可以包括有效字段指示信息和多个有效字段,其中,有效字段指示信息为处理器中各个单元的控制指示,用于指示当前并行控制指令中有效的有效字段,哪些单元需要在该并行控制指令下执行操作,每个有效字段定义了对应的单元执行操作所需的信息。
例如,每个并行控制指令如图11所示,并行控制指令的头部为有效字段指示信息,指示信息后面还有多个字段,当并行控制指令1用于控制数据搬移单元将数据1从数据存储单元搬移至数据缓存单元时,并行控制指令1的第二有效字段中定义有搬移参数,例如,数据1的起始地址、数据1的终止地址、搬移的数据长度等。并行控制指令1的其他字段中未定义相应的参数,则相应的字段中可以填充有默认值,为无效字段。
并行控制指令N用于控制第一数据搬移子单元将数据N从数据存储单元搬移至数据缓存单元,同时控制数据处理单元读取数据缓存单元已存储的数据N-1,对数据N-1进行处理,并将处理后的数据N-1输出至数据缓存单元、同时控制第二数据搬移子单元将处理后的数据N-2从数据缓存单元搬移至数据存储单元,则,并行控制指令N的第一有效字段、第二有效字段和第四有效字段中定义有相应的参数,其他有效字段中可以填充有默认值,其中,N为大于2的任一整数。
其中,指令缓存单元为处理器内部的一个单元,其特点为成本高、存储容量小、带宽相对于指令存储单元较大;指令存储单元位于处理器之外,其特点为成本低,存储容量大,带宽相对于指令缓存单元较小。因此,在处理器运行过程中,可以将指令存储单元中存储的至少一个并行控制指令搬移至指令缓存单元中,保证了指令缓存单元能够持续无缝的供给并行控制指令,能够使数据处理单元和数据搬移单元及时接收到并行控制指令。
也即是,指令控制单元将即将要执行的并行控制指令,从指令存储单元搬移至指令缓存单元,可选地,在将并行控制指令从指令存储单元搬移至指令缓存单元之后,指令存储单元中的并行控制指令不会消失,以便于在对下一待处理数据拆分后的多条数据进行处理时,依旧从指令存储单元中搬移并行控制指令。
在一种可能实现方式中,指令处理单元将指令存储单元中存储的至少一个并行控制指令搬移至指令缓存单元,可以包括:读取指令存储单元中的并行控制指令,按照读取顺序将读取到的并行控制指令搬移到指令缓存单元进行缓存,得到指令缓存队列。后续可以按照指令缓存顺序从该指令缓存队列中读取并行控制指令。
其中,指令缓存单元可以为一个块状FIFO(First Input First Output,先入先出队列)结构。当FIFO中存在空间时,指令处理单元将并行控制指令从指令存储单元向指令缓存单元搬移;其中,指令缓存单元的每个数据块可以存储一个并行控制指令,每个并行控制指令可以控制多个单元执行相应的操作。如图12所示,每个并行控制指令占用64B,指令缓存单元包括8个数据块,每个数据块可以存储一个并行控制指令,当8个数据块均存储有并行控制指令时,共占用512B,因此,处理器的整体代价较小,不受并行控制指令较多的影响,保持了较好的可扩展性。
本申请实施例通过指令存储单元存储处理待处理数据拆分后的多条数据对应的多个并行控制指令,相对于将该多条并行控制指令存储在指令缓存单元来说,可以大大降低成本,并且,由于处理器的运算复杂程度逐渐加深、待处理数据的数据量逐渐加大,需要的并行控制指令也越来越多,利用处理器之外的存储介质来存储多个并行控制指令,能够节省处理器内部存储的成本,并且经过两个指令存储单元也较好地解决了并行控制指令较多和并行控制指令较长导致的并行控制指令占用存储空间较多的问题。
603、指令处理单元从指令缓存单元存储的至少一条指令中读取并行控制指令,同时向数据处理单元和数据搬移单元发送并行控制指令。
在一种可能实现方式中,指令处理单元从指令缓存单元存储的至少一条指令中读取并行控制指令可以包括:指令处理单元从指令缓存单元存储的至少一条指令中读取存储时间最长的并行控制指令,同时向数据处理单元和所述数据搬移单元发送所述指令缓存单元中存储时间最长的并行控制指令。
例如,指令缓存单元可以为块状FIFO结构,当指令缓存单元存储有并行控制指令时,指令处理单元会执行最先进入指令缓存单元的并行控制指令。
在另一种可能实现方式中,指令处理单元从指令缓存单元存储的至少一条指令中读取并行控制指令可以包括:按照指令缓存顺序从指令缓存队列中读取并行控制指令。
另外,指令处理单元同时向数据处理单元和数据搬移单元发送并行控制指令时,向数据处理单元和数据搬移单元发送的并行控制指令可以相同,也可以不同。
在一种可能实现方式中,指令处理单元同时向数据处理单元和数据搬移单元发送的并行控制指令相同,该并行控制指令可以如图11所示,包括有效字段指示信息和多个有效字段,数据处理单元在接收到该并行控制指令时,可以根据该并行控制指令中的有效字段指示信息,确定数据处理单元对应的有效字段,按照该有效字段中的相应指示执行操作;数据搬移单元在接收到该并行控制指令时,可以根据该并行控制指令中的有效字段指示信息,确定数据搬移单元对应的有效字段,按照该有效字段中的相应指示执行操作。
在另一种可能实现方式中,指令处理单元同时向数据处理单元和数据搬移单元发送的并行控制指令不同,可选地,指令处理单元读取并行控制指令之后,提取该并行控制指令中的数据处理指令和数据搬移指令,向数据处理单元发送数据处理指令,同时向数据搬移单元发送数据搬移指令。
提取该并行控制指令中的数据处理指令和数据搬移指令可以包括:提取并行控制指令中的有效字段指示信息;根据该有效字段指示信息,确定该并行控制指令中第一有效字段和第二有效字段,从并行控制指令中读取第一有效字段和第二有效字段,得到数据处理指令和数据搬移指令。从而数据处理单元和数据搬移单元可以直接根据接收到的数据处理指令和数据搬移指令,执行相应的操作。
其中,有效字段指示信息可以用于指示并行控制指令的多个字段中哪些字段为有效字段,并根据有效字段确定接收指令的单元或者子单元。例如,并行控制指令包括有效字段指示信息和6个字段,该6个字段可以分别与6个子单元匹配,当有效字段指示信息指示第一个字段和第三个字段为有效字段时,向第一个字段对应的子单元发送携带该第一个字段的控制指令,同时向第三个字段对应的子单元发送携带该第三个字段的控制指令。
另外,指令处理单元同时向数据处理单元和数据搬移单元发送并行控制指令,可以包括:指令处理单元根据数据存储单元中的任一目标数据,同时向处理单元和数据搬移单元发送与目标数据匹配的并行控制指令。
其中,与目标数据匹配的并行控制指令是指,指示数据搬移单元将目标数据从数据存储单元搬移至数据缓存单元,以及指示数据处理单元处理目标数据的上一条数据的指令。
可选地,指令处理单元根据数据存储单元中的任一目标数据,同时向处理单元和数据搬移单元发送与目标数据匹配的并行控制指令,可以包括:指令处理单元向所述数据处理单元发送数据处理指令,同时向数据搬移单元发送数据搬移指令,数据控制指令指示对目标数据的上一条数据进行处理,数据搬移控制指令指示将目标数据从数据存储单元搬移至数据缓存单元。
需要说明的是,为了使得数据处理单元和数据搬移单元能够并行处理数据,需要在处理器开始工作时,先由数据搬移单元将第一条数据从数据存储单元搬移至数据缓存单元,后续数据处理单元和数据搬移单元才能并行运行,因此,指令处理单元在处理器开始工作时,是先向数据搬移单元发送一个并发控制指令,控制数据搬移单元搬移数据,后续才同时向数据处理单元和数据搬移单元发送并发控制指令,使得数据处理单元和数据搬移单元并行运行,下述步骤604至步骤609是对任一数据处理单元和数据搬移单元并行运行的过程进行说明。
604、数据处理单元根据并行控制指令,读取数据缓存单元已缓存的第一数据,对第一数据进行处理,将处理后的第一数据输出至数据缓存单元。
其中,第一数据为拆分后的多条数据中的任一条数据,在一种可能实现方式中,将拆分后的多条数据组成的数据序列存储在数据存储空间中,第一数据为数据序列中的任一条数据。
可选地,该并行控制指令可以包括有效字段指示信息和多个有效字段,数据处理单元在接收到并行控制指令后,可以根据并行控制指令的有效字段指示信息,获取该并行控制指令中的第一有效字段。
在一种可能实现方式中,数据处理单元根据并行控制指令,读取数据缓存单元已缓存的第一数据,对第一数据进行处理,将处理后的第一数据输出至数据缓存单元,可以包括:数据处理单元提取并行控制指令中的有效字段指示信息,根据该有效字段指示信息确定第一有效字段,根据第一有效字段,读取数据缓存单元已缓存的第一数据,对第一数据进行处理,将处理后的第一数据输出至数据缓存单元。
可选地,该并行控制指令为第一控制指令,该第一控制指令携带用于控制数据处理单元的第一有效字段,数据处理单元可以根据第一有效字段,读取数据缓存单元已缓存的第一数据,对第一数据进行处理,将处理后的第一数据输出至数据缓存单元。
其中,数据处理单元根据第一有效字段,读取数据缓存单元已缓存的第一数据,可以包括:第一有效字段指示第一数据的缓存位置,数据处理单元根据第一数据的缓存位置,读取该第一数据;或者,第一有效字段指示数据处理单元启动,数据处理单元自行从数据缓存单元的第一存储空间读取已缓存的第一数据。
另外,数据处理单元根据第一有效字段,对第一数据进行处理可以包括:该第一有效字段可以指示数据处理单元需要执行的处理操作,数据处理单元执行该第一有效字段指示的处理操作,对第一数据进行处理;或者,该第一有效字段可以指示数据处理单元启动,数据处理单元可以启动并按照预设的处理操作,对该第一数据进行处理。
另外,数据处理单元将处理后的第一数据输出至数据缓存单元,可以包括:第一有效字段可以指示第二存储空间的位置,数据处理单元可以根据第一有效字段将处理后的第一数据输出至数据缓存单元的第二存储空间;或者,第一有效字段未指示第二存储空间的位置,数据处理单元自行将处理后的第一数据输出至数据缓存单元的第二存储空间。
605、数据搬移单元根据并行控制指令,将待处理的第二数据从数据存储单元搬移至数据缓存单元,第二数据为第一数据的下一条数据。
其中,第二数据为拆分后的多条数据中第一数据的下一条数据,如图8所示,第一数据为Tile1,第二数据为Tile2,在一种可能实现方式中,多条数据组成的数据序列存储在数据存储空间中,第二数据为数据序列中第一数据的下一条数据。
可选地,该并行控制指令可以包括有效字段指示信息和多个有效字段,数据搬移单元在接收到并行控制指令后,可以根据并行控制指令的有效字段指示信息,获取该并行控制指令中的第二有效字段。在一种可能实现方式中,数据搬移单元根据并行控制指令,将待处理的第二数据从数据存储单元搬移至数据缓存单元,可以包括:数据搬移单元提取并行控制指令中的有效字段指示信息,根据该有效字段指示信息,确定并行控制指令中的第二有效字段,根据该第二有效字段,将待处理的第二数据从数据存储单元搬移至数据缓存单元。
可选地,该并行控制指令还可以为第二控制指令,该第二控制指令携带用于控制数据搬移单元的第二有效字段,数据搬移单元可以根据第二有效字段,将待处理的第二数据从数据存储单元搬移至数据缓存单元。
其中,第二有效字段可以包括第二数据在数据存储单元中的起始存储位置,第二数据搬移至数据缓存单元的目标位置,第二数据的数据长度等。数据搬移单元根据第二有效字段,将待处理的第二数据从数据存储单元搬移至数据缓存单元,可以包括:数据缓存单元根据第二数据在数据存储单元中的起始存储位置以及第二数据的数据长度,从数据存储单元中读取第二数据,根据目标位置,将第二数据搬移至该目标位置处。
另外,数据搬移单元可以包括多个子单元,因此,步骤605可以通过数据搬移单元中的第一数据搬移子单元完成。
606、数据搬移单元根据并行控制指令,将处理后的第三数据从数据缓存单元搬移至数据存储单元,第三数据为第一数据的上一条数据。
其中,第三数据为拆分后的多条数据中第一数据的上一条数据,如图8所示,第一数据为Tile3时,第三数据为Tile2。在一种可能实现方式中,将拆分后的的多条数据组成的数据序列存储在数据存储空间中,因此,第三数据还可以是数据序列中第一数据的上一条数据。
第三数据为拆分后的多条数据组成的数据序列中的一条数据,且该第三数据为第一数据的上一条数据。
可选地,该并行控制指令可以包括有效字段指示信息和多个有效字段,数据搬移单元在接收到并行控制指令后,可以根据并行控制指令的有效字段指示信息,确定相应的有效字段,并获取该有效字段中的第三有效字段。在一种可能实现方式中,数据搬移单元提取并行控制指令中有效字段指示信息,根据该有效字段指示信息,确定该并行控制指令中的第三有效字段,根据第三有效字段,将处理后的第三数据从数据缓存单元搬移至数据存储单元。
可选地,该并行控制指令为数据搬移指令,该数据搬移指令携带用于控制数据搬移单元的第三有效字段,数据搬移单元可以根据第三有效字段,将处理后的第三数据从数据缓存单元搬移至数据存储单元。
其中,第三有效字段可以包括第三数据在数据缓存单元的起始存储位置、处理后的第三数据的数据长度、以及处理后的第三数据在数据存储单元的目标位置等。数据搬移单元根据第三有效字段,将处理后的第三数据从数据缓存单元搬移至数据存储单元,可以包括:数据缓存单元根据处理后的第三数据在数据缓存单元中的起始存储位置以及处理后的第三数据的数据长度,从数据缓存单元中读取处理后的第三数据,将处理后的第三数据搬移至数据存储单元中的目标位置处。
另外,数据搬移单元可以包括多个子单元,因此,步骤606可以通过数据搬移单元中的第二数据搬移子单元完成。
需要说明的是,在指令处理单元同时向数据处理单元和数据搬移单元发送并行控制指令,可能并不能指示处理器完成计算机设备所要执行的所有操作,还需要继续向数据处理单元和数据搬移单元继续发送并行控制指令,而指令处理单元再次同时向数据处理单元和数据搬移单元发送并行控制指令的时机可以为数据处理单元和数据搬移单元已根据上一条并行控制指令完成工作,下面以步骤607至步骤609进行说明。
需要说明的是,本申请实施例中数据搬移单元还将数据处理单元输出的处理后的数据,从数据缓存单元搬移至数据存储单元,因此,数据存储单元中不仅可以包括待处理数据拆分得到的多条数据,还可以包括数据处理单元处理后的数据,而在处理器对数据进行处理的过程中,可以需要数据处理单元对数据进行多次处理,或者,数据处理单元包括多个数据处理子单元,需要通过多个数据处理子单元对数据先后进行处理,因此,第二数据可以为待处理数据,或者为数据处理单元上一次数据处理输出的处理后的数据,或者为数据处理单元中某一数据处理子单元输出的处理后的数据。
607、在数据处理单元将处理后的第一数据输出至数据缓存单元之后,数据处理单元向指令处理单元发送第一完成消息。
其中,第一完成消息用于指示数据处理单元已执行完操作,该第一完成消息可以携带数据处理单元的标识,以便指令处理单元根据该第一完成消息确定数据处理单元已完成操作。该数据处理单元的标识为确定唯一数据处理单元的标识,可以为该数据处理单元的编号、该数据处理单元的名称等。
608、在数据搬移单元将第二数据从数据存储单元搬移至数据缓存单元之后,且将处理后的第三数据从数据缓存单元搬移至数据存储单元之后,数据搬移单元向指令处理单元发送第二完成消息。
其中,第二完成消息用于指示数据搬移单元已执行完操作,该第二完成消息可以携带数据搬移单元的标识,以便指令处理单元根据该第二完成消息确定数据搬移单元已完成操作。该数据搬移单元的标识为确定唯一数据搬移单元的标识,可以为该数据搬移单元的编号、该数据搬移单元的名称等。
需要说明的是,当并行控制指令仅指示数据搬移单元将第二数据从数据存储单元搬移至数据缓存单元时,在数据搬移单元将第二数据从数据存储单元搬移至数据缓存单元之后,数据搬移单元向指令处理单元发送第二完成消息。当并行控制指令仅指示数据搬移单元将处理后的第三数据从数据缓存单元搬移至数据存储单元时,数据搬移单元将处理后的第三数据从数据缓存单元搬移至数据存储单元之后,数据搬移单元向指令处理单元发送第二完成消息。当并行控制指令指示数据搬移单元将第二数据从数据存储单元搬移至数据缓存单元,且将处理后的第三数据从数据缓存单元搬移至数据存储单元时,在数据搬移单元将第二数据从数据存储单元搬移至数据缓存单元,且将处理后的第三数据从数据缓存单元搬移至数据存储单元之后,数据搬移单元向指令处理单元发送第二完成消息。
609、指令处理单元接收到第一完成消息和第二完成消息后,同时向指令处理单元和数据缓存单元发送与第四数据匹配的下一并行控制指令,第四数据为拆分后的多条数据中第二数据的下一条数据。
在数据搬移单元将第二数据从数据存储单元搬移至数据缓存单元之后,数据搬移单元需要继续搬移第二数据的下一条数据,也即是第四数据,因此,指令处理单元需要读取与第四数据匹配的下一并行控制指令,同时向指令处理单元和数据缓存单元发送该下一并行控制指令,该下一并行控制指令用于控制数据搬移单元将第四数据从数据存储单元搬移至数据缓存单元,还用于控制数据处理单元读取数据缓存单元已缓存的第二数据,对第二数据进行处理,将处理后的第二数据输出至数据缓存单元上;还用于控制数据搬移单元将处理后的第一数据从数据缓存单元搬移至数据存储单元。
另外,指令存储单元中存储的多条并行控制指令用于控制处理器完成对一条待处理数据拆分得到的多条数据的处理操作,因此,多条并行控制指令是按照处理器的处理流程依次排列的,而指令处理单元将指令存储单元中的至少一条并行控制指令搬移至指令缓存单元时,也是按照顺序依次搬移的,因此,指令缓存单元中至少一条并行控制指令的排列顺序与处理器的处理流程是匹配的,因此,指令处理单元可以直接在第一存储单元中读取当前存储时间最长的并行控制指令,该并行控制指令即为与第四数据匹配的下一并行控制指令。其中,上述数据处理方法的流程可以如图13和图14所示。
需要说明的是,本申请实施例提供的步骤601为可选执行步骤,在一种可能实现方式中,当计算机设备需要处理多条待处理数据时,可以不使用拆分单元将每条待处理数据拆分为多条数据,而是直接对多条待处理数据进行处理,虽然搬移待处理数据的过程可能相对较慢,但是由于将数据处理和数据搬移并行执行,尽可能地避免了在等待数据搬移过程执行之后再执行数据处理过程,因此还是提高了处理器的处理效率,因此,本申请实施例对是否拆分待处理数据不做限定。
需要说明的是,上述数据处理的过程可以为神经网络模型的数据处理过程。在一种可能实现方式中,数据处理单元根据并行控制指令,读取数据缓存空间中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据存储空间,可以包括:数据处理单元根据并行控制指令,基于神经网络模型,读取数据缓存空间已缓存的第一数据;对第一数据进行处理,将处理后的第一数据输出至数据缓存空间。
另外,数据处理单元还可以包括多个数据处理子单元,通过该多个数据处理子单元来实现神经网络模型的数据处理。在一种可能实现方式中,数据处理子单元同时接收到各个数据处理子单元对应的数据处理指令,根据该数据处理执行并行进行数据处理。
例如,第一数据处理子单元用于对输入数据进行卷积处理,第二数据处理子单元用于对输入数据进行池化处理。当第一数据处理子单元接收到其对应的数据处理指令时,读取数据缓存单元已缓存的第一数据,对第一数据进行卷积处理,将卷积处理后的第一数据输出至数据缓存单元。同时,第二数据处理子单元接收到其对应的数据处理指令,读取数据缓存单元已缓存的卷积处理后的第三数据,对卷积处理后的第三数据进行池化处理,将池化处理后的第三数据输出至数据缓存单元。其中第三数据为拆分后的多条数据中第一数据的上一条数据。
本申请实施例提供的数据处理方法,通过同时向数据处理单元和数据搬移单元发送并行控制指令,使得数据处理单元和数据搬移单元能够并行执行,并且,数据处理单元本次处理的是数据搬移单元上一次搬移的数据,数据处理单元无需等待数据搬移单元本次搬移完成,即可进行处理,数据处理过程不再依赖于数据搬移过程,提高了处理速度和处理效率。
另外相关技术中,为了避免数据搬移单元在搬移较大的待处理数据时,耗时较久,会将待处理的数据进行压缩、裁剪等处理,来减小待处理数据的数据量,但是压缩、裁剪等处理会导致图片中的某些信息丢失,而本申请实施例并未对待处理数据进行压缩、裁剪等处理,因此,并未丢失待处理数据中的信息,保证了处理器处理结果的准确性。
另外,相关技术中,为了避免数据搬移单元在搬移较大的待处理数据耗时较久,会为处理器配置容量更大的缓存单元,使得处理器能够容纳待处理的数据,处理器在进行数据处理时,待处理的数据可以仅在处理器中搬移,从而加快搬移速度;或者,在处理中使用更高的总线带宽,如采用HBM(High Bandwidth Memory,高带宽存储器),也即是通过提高数据传输效率来减小数据搬移的耗时。但是为处理器配置容量更大的缓存单元,会导致处理器的面积增加,成本也随之显著增加;采用高带宽存储器带来的成本增加也比较明显。
而本申请实施例提供的数据处理方法,是将待处理数据拆分为多条数据,对该多条数据进行处理,并且通过将数据搬移过程和数据处理过程并行执行,尽可能地避免数据处理过程对数据搬移过程的等待时间,从而减少数据搬移对处理器处理速度的影响。因此,本申请实施例对处理器的缓存单元和带宽有没有较高的要求,不会增加处理器的成本。
另外相关技术中,在控制两个单元或者多个单元并行处理时,由于一个指令只能控制一个单元执行一个操作,因此,若想要控制两个单元或者多个单元并行处理时,需要软件和硬件交互控制,通过多种指令的同步和调度,例如,多个指令处理单元根据复杂的调度和同步机制,尽可能地使得两个单元或者多个单元并行处理。
而本申请实施例通过一个指令处理单元,即可同时向处理器的数据处理单元和数据搬移单元发送并行控制指令,使得数据处理单元和数据搬移单元并行处理,仅通过一个指令处理单元即可实现同时向两个或者多个单元发送指令,无需多个指令处理单元,同时也不需要多个指令处理单元之间的交互调度,实现代价小。并且,在处理器的处理过程中,无需软件和硬件交互,避免了软件和硬件交互带来的处理器的性能损失。
另外,本申请实施例通过处理器之外的指令存储单元存储处理待处理数据拆分后的多条数据对应的多个并行控制指令,相对于将该多条并行控制指令存储在指令缓存单元来说,可以大大降低成本,并且,由于处理器的运算复杂程度逐渐加深、待处理数据的数据量逐渐加大,需要的并行控制指令也越来越多,利用处理器之外的存储单元来存储多个并行控制指令,能够节省处理器内部存储的成本,并且经过两个指令存储单元也较好地解决了并行控制指令较多和并行控制指令较长导致的并行控制指令占用存储空间较多的问题。
需要说明的是,在一种可能实现方式中,处理器可以为AI芯片,如图15所示,该AI芯片用于执行人工智能应用中神经网络所执行的计算任务。以处理器的数据处理单元可以包括卷积处理子单元,数据搬移单元可以包括load(加载)搬移子单元和store(存储)搬移子单元,将待处理数据拆分为1296条Tile为例进行说明。
当处理器投入使用后,该处理器的待处理数据类型和大小是固定的,但是该待处理数据的具体内容不是固定的。因此,将待处理数据拆分为多条数据时,每条数据的大小和多条数据的数量也是固定的,因此用于处理拆分后的多条数据的多条指令的数量也是固定的,如当拆分后的多条Tile为1296条Tile时,并行控制指令可以为1298个。本申请实施例以多条Tile为6条Tile,并行控制指令为8个,对处理器的卷积处理过程进行示例性说明,如图16所示。
当人工智能应用需要对待处理数据进行分析时,第1个并行控制指令用于控制load搬移子单元工作,第2个并行控制指令用于控制load搬移子单元和卷积处理子单元工作,第3个至第6个并行控制指令用于控制load搬移子单元、卷积处理子单元和store搬移子单元工作,第7个并行控制指令用于控制卷积处理子单元和store搬移子单元工作,第8个并行控制指令用于控制store搬移子单元工作。其中,load搬移子单元用于将拆分后的多个数据依次从数据存储单元搬移至数据缓存单元中,store搬移子单元用于将卷积处理子单元处理后的数据从数据缓存单元搬移至数据存储单元。
因此,8个并行控制指令执行完毕之后,处理器完成了对6个Tile的卷积处理,并将处理后的6个Tile搬移至数据存储单元中。
另外,数据处理单元还可以包括池化处理子单元、全连接处理子单元等其他处理子单元中的任一子单元。本申请实施例对数据处理单元还包括池化处理子单元为例对处理器的处理过程为例进行说明。
由于在处理器完成了对6个Tile的卷积处理后,将处理后的6个Tile搬移至数据存储单元中,因此,还需要将通过卷积处理后的6个Tile从数据存储单元依次搬移至数据缓存单元中,对通过卷积处理后的6个Tile依次进行池化处理,该池化处理过程与卷积处理过程类似,在此不再一一赘述。
在另一种可能实现方式中,当处理器需要对拆分后的多条数据进行卷积处理和池化处理时,可以在将一条Tile进行卷积处理之后,将通过卷积处理后的Tile作为池化处理子单元的输入,在对该Tile进行池化处理之后,将池化处理后的该Tile搬移至数据存储单元中。
以多条Tile为6条Tile,并行控制指令为10个,对处理器的卷积处理过程进行示例性说明,如图17所示,其中,数据搬移单元还包括move(搬移)搬移子单元,该move搬移子单元用于将数据缓存单元中的数据从第一目标位置搬移至第二目标位置。
第1个并行控制指令用于控制load搬移子单元工作,第2个并行控制指令用于控制load搬移子单元和卷积处理子单元工作,第3个并行控制指令用于控制搬移子单元、卷积处理子单元和move搬移子单元工作,第4个并行控制指令用于控制load搬移子单元、卷积处理子单元、move搬移子单元和池化处理子单元工作,第5个至第6个并行控制指令用于控制load搬移子单元、卷积处理子单元、move搬移子单元、池化处理子单元和store搬移子单元工作。第7个并行控制指令用于控制卷积处理子单元、move搬移子单元、池化处理子单元和store搬移子单元工作。第8个并行控制指令用于控制move搬移子单元、池化处理子单元和store搬移子单元工作。第9个并行控制指令用于控制池化处理子单元和store搬移子单元工作。第10个并行控制指令用于控制store搬移子单元工作。
其中,move搬移子单元用于将卷积处理子单元对应的输出存储空间的数据搬移至池化处理单元对应的输入存储空间。store搬移子单元用于将池化处理子单元输出的池化后的数据从数据缓存单元搬移至数据存储单元中。
另外,上述实施例提供的数据处理方法不仅可以应用在计算机设备的处理器中,还可以应用于其他部件中,本申请实施例对此不做限定。图18是本申请实施例提供的一种数据处理方法的流程图,本申请实施例的执行主体为任一计算机设备,参见图18,该方法包括:
1801、对待处理数据进行拆分,得到拆分后的多条数据,将该多条数据存储于数据存储空间。
当待处理数据的数据量较大时,为了减少每次数据搬移所消耗的时间,可以将待处理数据拆分为多条数据,并且在后续对拆分后的多条数据进行处理时,会将拆分后的多条数据依次从数据存储空间搬移至数据缓存空间,因此,在一种可能实现方式中,可以按照拆分规则,将待处理数据拆分为多条数据,该拆分规则指示拆分得到的任一条数据的数据量不大于数据缓存空间的缓存容量。
例如,获取待处理数据,根据数据缓存空间的缓存容量对待处理数据进行拆分,得到多条待处理子数据,将多条数据组成的数据序列存储在数据存储空间中。
其中,待处理数据可以为特征图数据,可以按照数据缓存空间的缓存容量,将待处理数据拆分为多条数据,例如,数据缓存空间的缓存容量为16KB,特征图数据的大小为128*128*128,将特征图数据进行拆分,得到的多条数据为16个32*32*128的图片数据。
待处理数据还可以为图片数据时,可以按照数据缓存空间的缓存容量,将待处理数据平均拆分为多条数据,例如,数据缓存空间的缓存容量为16KB,图片数据的大小为128*128*3,将图片数据进行拆分,得到的多条数据为16个32*32*3的图片数据。
其中,数据存储空间可以是计算机设备上任一数据存储单元上的空间,本申请实施例对数据存储空间不做限定。
1802、读取并行控制指令。
其中,指令缓存空间可以缓存有多个并行控制指令,指令缓存空间中的多个并行控制指令可以是从指令存储空间中获取的,指令存储空间中可以存储有用于指示对拆分后的多条数据进行处理的多条并行控制指令,该多条并行控制指令可以按照指示的先后顺序依次排列,可以将该多条并行控制指令按照排列顺序依次缓存至指令缓存空间中,从而读取在指令缓存空间缓存时间最长的并行控制指令。
在一种可能实现方式中,读取并行控制指令可以包括:读取指令存储空间中的并行控制指令;按照读取顺序将读取到的并行控制指令搬移到指令缓存空间进行缓存,得到指令缓存队列;按照指令缓存顺序从指令缓存队列中读取并行控制指令。
在一种可能实现方式中,并行控制指令包括数据处理指令和数据搬移指令,第一并行控制指令携带第一有效字段,第二并行控制指令携带第二有效字段,从而数据处理指令和数据搬移指令用于指示不同的操作,例如,第一有效字段用于指示执行对第一数据进行处理的操作,第二有效字段用于指示执行缓存第二数据的操作。
在一种可能实现方式中,在读取并行指令之后,该方法还可以包括:提取并行控制指令中的有效字段指示信息;根据该有效字段指示信息,确定并行控制指令中第一有效字段和第二有效字段;从并行控制指令中读取第一有效字段和第二有效字段,从而得到数据处理指令和数据搬移指令。
在一种可能实现方式中,指令缓存空间为指令缓存单元,指令存储空间为指令存储单元。
1803、根据并行控制指令,读取数据缓存空间已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据缓存空间。
第一数据可以是拆分后的多条数据中的任一条数据,由于拆分后的多条数据组成的数据序列可以存储在数据存储空间中,因此,第一数据还可以是数据序列中的任一条数据。
在一种可能实现方式中,待处理数据可以为图片数据,第一数据为待处理数据被拆分后的多条数据中的一条数据,因此第一数据可以为一个小图片。
在一种可能实现方式中,根据并行控制指令,读取数据缓存空间已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据缓存空间,可以包括:根据并行控制指令,基于神经网络模型,读取数据缓存空间已缓存的第一数据;对该第一数据进行处理,将处理后的第一数据输出至数据缓存空间。
在一种可能实现方式中,并行控制指令为数据处理指令,根据并行控制指令,读取数据缓存空间已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据存储空间,可以包括:根据数据处理指令携带的第一有效字段,读取数据缓存空间已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据缓存空间。
在另一种可能实现方式中,根据并行控制指令,读取数据缓存空间已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据缓存空间,可以包括:提取该并行控制指令中的有效字段指示信息;根据该有效字段指示信息,确定该并行控制指令中第一有效字段,根据第一有效字段,读取数据缓存空间已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据缓存空间。
1804、同时,根据并行控制指令,将第二数据从数据存储空间搬移至数据缓存空间,该第二数据为第一数据的下一条数据。
1805、同时,根据并行控制指令,将处理后的第三数据从数据缓存空间搬移至数据存储空间,第三数据为第一数据的上一条数据。
1806、将处理后的第一数据输出至数据缓存空间之后,将第二数据从数据存储空间搬移至数据缓存空间,且将处理后的第三数据从数据缓存空间搬移至数据存储空间之后,读取与第四数据匹配的下一并行控制指令,第四数据为第二数据的下一条数据。
读取下一并行控制指令之后,可以根据下一并行控制指令,读取数据缓存空间已缓存的第二数据,对该第二数据进行处理,将处理后的第二数据输出至数据存储空间;同时,根据该并行控制指令,将第四数据从数据存储空间搬移至数据缓存空间,同时,根据并行控制指令,将处理后的第一数据从数据缓存空间搬移至数据存储空间,在执行完上述操作之后,重复执行读取下一并行控制指令,根据下一并行控制指令执行操作的过程,直至拆分后的多条数据处理完成或者直至数据存储空间中的多条并行控制指令均执行一遍。
需要说明的是上述数据处理方法可以应用于神经网络模型中,在一种可能实现方式中,根据并行控制指令,基于神经网络模型,读取数据缓存空间已缓存的第一数据,对第一数据进行处理,将处理后的第一数据输出至数据缓存单元。
另外,神经网络模型可以包括多个层,在一种可能实现方式中,根据神经网络模型中各层分别对应的数据处理指令,并行进行数据处理,也即是神经网络模型中的每个层并行进行数据处理。
例如,以神经网络模型包括卷积层和池化层为例,对神经网络模型中的每个层并行进行数据处理进行说明,同时接收到卷积层对应的数据处理指令和池化层对应的数据处理指令;基于卷积层,读取数据缓存空间已缓存的第一数据,对该第一数据进行卷积处理,将卷积处理后的第一数据输出至数据缓存单元;同时,基于池化层,读取数据缓存单元已缓存的卷积处理后的第三数据,对卷积处理后的第三数据进行池化处理,将池化处理后的第三数据输出至数据缓存单元,实现了卷积层和池化层的并行运行。
本申请实施例提供的数据处理方法,通过读取并行控制指令,从而根据并行控制指令同时执行数据处理操作和数据搬移操作,尽可能地减少了数据处理操作等待数据搬移操作的时长,从而提高了数据处理的速度和效率。并且,本次处理的是数据搬移单元上一次搬移的数据,无需等待数据搬移过程,即可进行处理,减少了数据处理过程对数据搬移过程的依赖,提高了处理速度和处理效率。
另外相关技术中,为了避免在搬移较大的待处理数据时,耗时较久,会将待处理的数据进行压缩、裁剪等处理,来减小待处理数据的数据量,但是压缩、裁剪等处理会导致图片中的某些信息丢失,而本申请实施例并未对待处理数据进行压缩、裁剪等处理,因此,并未丢失待处理数据中的信息,保证了处理器处理结果的准确性。
另外,相关技术中,为了避免在搬移较大的待处理数据耗时较久,会设置更大缓存容量的数据缓存空间,这样在进行数据处理时,可以加快搬移速度;或者,使用更高的总线带宽,如采用HBM(High Bandwidth Memory,高带宽存储器),也即是通过提高数据传输效率来减小数据搬移的耗时。但是设置更大缓存容量的缓存空间,会导致成本显著增加;采用高带宽存储器带来的成本增加也比较明显。
而本申请实施例提供的数据处理方法,是将待处理数据拆分为多条数据,对该拆分后的多条数据进行处理,并且通过将数据搬移过程和数据处理过程并行执行,尽可能地避免数据处理过程对数据搬移过程的等待时间,从而减少数据搬移对处理速度的影响。因此,本申请实施例对数据缓存空间和带宽有没有较高的要求,不会增加成本。
另外相关技术中,一个指令只能用于指示执行一个操作,因此,若想要执行两个或者两个以上的操作时,需要软件和硬件交互控制,通过多种指令的同步和调度,例如,多个指令处理单元根据复杂的调度和同步机制,尽可能地使得两个操作并行进行。
而本申请实施例通过可读取并发控制指令,根据该并发控制指令,同时执行数据处理和数据搬移,无需多个指令处理单元,同时也不需要多个指令处理单元之间的交互调度,实现代价小。并且,在数据处理过程中,无需软件和硬件交互,避免了软件和硬件交互带来的数据处理性能损失。
另外,本申请实施例还提供了一种数据处理芯片,该芯片可以安装在任一计算机设备中,实现该计算机设备的数据处理功能,如图19所示,该芯片1900包括指令处理单元1901、数据处理单元1902和数据搬移单元1903和数据缓存单元1904;该指令处理单元1901,用于提取并行控制指令,同时向该数据处理单元1902和该数据搬移单元1903发送该并行控制指令;该数据处理单元1902,用于根据该并行控制指令,读取数据缓存单元1904已缓存的第一数据,对读取的第一数据进行处理,将处理后的第一数据输出至数据缓存单元;该数据搬移单元1903,用于同时根据该并行控制指令,将待处理的第二数据从位于该芯片之外的数据存储单元搬移至该数据缓存单元1904,该第二数据为第一数据的下一条数据。
在一种可能实现方式中,并行控制指令包括数据处理指令和数据搬移指令;该指令处理单元1901,用于提取该并行控制指令中的数据处理指令和数据搬移指令;该数据处理单元1902,用于根据该数据处理指令,读取该数据缓存单元中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据缓存单元;该数据搬移单元1903,用于根据该数据搬移指令,将该第二数据从数据存储单元搬移到该数据缓存单元。
其中,指令处理单元1901提取并行控制指令中的数据处理指令和数据搬移指令可以是通过提取并行控制指令中的有效字段指示信息;根据该有效字段指示信息,确定该并行控制指令中第一有效字段和第二有效字段;从该并行控制指令中读取第一有效字段和第二有效字段,得到数据处理指令和数据搬移指令。
如图19所示,在一种可能实现方式中,该芯片还包括指令缓存单元1905;该指令处理单元1901,用于读取位于芯片之外的指令存储单元中的并行控制指令;按照读取顺序将读取到的并行控制指令搬移到指令缓存单元1905进行缓存,得到指令缓存队列;按照指令缓存顺序从该指令缓存队列中读取并行控制指令。
在数据处理单元1902将处理后的数据输出至数据缓存单元后,还可以由数据搬移单元1903将输出至数据缓存单元的数据,搬移至位于芯片之外的数据存储单元。在一种可能实现方式中,该数据搬移单元1903,用于根据该并行控制指令,将处理后的第三数据从该数据缓存单元1904搬移至该处理器之外的数据存储单元,该第三数据为该第一数据的上一条数据。
在一种可能实现方式中,该数据处理单元1902,用于将该处理后的第一数据输出至该数据缓存单元1904之后,向该指令处理单元1901发送第一完成消息;该数据搬移单元1903,用于将该第二数据从该处理器之外搬移至该数据缓存单元1904之后,向该指令处理单元1901发送第二完成消息;该指令处理单元1901,用于接收到该第一完成消息和该第二完成消息后,同时向该数据处理单元1902和该数据缓存单元1903发送与该第四数据匹配的下一并行控制指令,该第四数据为该多条数据中该第二数据的下一条数据。
在一种可能实现方式中,如图20所示,该芯片1900为人工智能AI芯片,待处理数据为图片数据;数据处理单元1902,用于根据并行控制指令,读取所述数据缓存单元1904中已缓存的所述第一数据;数据处理单元1902,还用于基于神经网络模型,对第一数据进行处理,将处理后的第一数据输出至数据存储单元,该数据存储单元可以为位于AI芯片之外的任一数据存储单元。
其中,该数据处理单元1902包括至少一个数据处理子单元,该数据搬移单元1903包括加载load引擎、存储store引擎和搬移move引擎中的至少一项;该load引擎,用于将待处理数据从该数据存储单元搬移至该数据缓存单元;任一数据处理子单元,用于读取该数据缓存单元中已缓存的数据,对该数据进行处理,将处理后的数据输出至该任一数据处理子单元对应的输出存储单元;该move引擎,用于将该任一数据处理子单元处理后的数据从该输出存储单元搬移至下一数据处理子单元对应的输入存储单元;该下一数据处理子单元,用于读取该输入存储单元已缓存的数据,对该数据进行处理,将处理后的数据输出至该下一数据处理子单元对应的输出存储单元;该store引擎,用于将该下一数据处理子单元处理后的数据从该输出存储单元搬移至该数据存储单元。
在一种可能实现方式中,如图20所示,该数据处理单元1902包括卷积引擎或池化引擎中的至少一项。
图21是本申请实施例提供的一种终端的结构框图。该终端2100用于执行上述实施例中终端或智能设备执行的步骤,可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端2100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端2100包括有:处理器2101和存储器2102。
处理器2101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2101可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器2101所执行以实现本申请中方法实施例提供的数据处理方法。
在一些实施例中,终端2100还可选包括有:外围设备接口2103和至少一个外围设备。处理器2101、存储器2102和外围设备接口2103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2103相连。具体地,外围设备包括:射频电路2104、触摸显示屏2105、摄像头组件2106、音频电路2107、定位组件2108和电源2109中的至少一种。
外围设备接口2103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器2101和存储器2102。在一些实施例中,处理器2101、存储器2102和外围设备接口2103被集成在同一芯片或电路板上;在一些其他实施例中,处理器2101、存储器2102和外围设备接口2103中的任意一个或两个可以在单独的芯片或电路板上实现,本申请实施例对此不加以限定。
射频电路2104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏2105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2105是触摸显示屏时,显示屏2105还具有采集在显示屏2105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2101进行处理。此时,显示屏2105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏2105可以为一个,设置终端2100的前面板;在另一些实施例中,显示屏2105可以为至少两个,分别设置在终端2100的不同表面或呈折叠设计;在再一些实施例中,显示屏2105可以是柔性显示屏,设置在终端2100的弯曲表面上或折叠面上。甚至,显示屏2105还可以设置成非矩形的不规则图形,也即异形屏。显示屏2105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件2106用于采集图像或视频。可选地,摄像头组件2106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件2106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2101进行处理,或者输入至射频电路2104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端2100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2101或射频电路2104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2107还可以包括耳机插孔。
定位组件2108用于定位终端2100的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件2108可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源2109用于为终端2100中的各个组件进行供电。电源2109可以是交流电、直流电、一次性电池或可充电电池。当电源2109包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图21中示出的结构并不构成对终端2100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图22是本申请实施例提供的一种服务器的结构示意图,该服务器2200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central ProcessingUnits,CPU)2201和一个或一个以上的存储器2202,其中,存储器2202中存储有至少一条指令,至少一条指令由处理器2201加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
服务器2200可以用于执行上述通信连接建立中即时通信服务器所执行的步骤。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行上述实施例的数据处理方法中所执行的操作。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现上述实施例的数据处理方法中所执行的操作。
本申请实施例还提供了一种计算机程序,该计算机程序中存储有至少一条指令,该至少一条指令由处理器加载并执行,以实现上述实施例的数据处理方法中所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
读取并行控制指令;
根据所述并行控制指令,读取数据缓存空间中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存空间;
同时,根据所述并行控制指令,将第二数据从数据存储空间搬移到所述数据缓存空间,所述第二数据为所述第一数据的下一条数据。
2.根据权利要求1所述的方法,其特征在于,所述读取并行控制指令,包括:
读取指令存储空间中的并行控制指令;
按照读取顺序将读取到的并行控制指令搬移到指令缓存空间进行缓存,得到指令缓存队列;
按照指令缓存顺序从所述指令缓存队列中读取并行控制指令。
3.根据权利要求1所述的方法,其特征在于,所述并行控制指令中包括数据处理指令和数据搬移指令;
所述读取并行控制指令之后,所述方法还包括:
提取所述并行控制指令中的数据处理指令和数据搬移指令;
所述根据所述并行控制指令,读取所述数据缓存空间中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至数据缓存空间,包括:
根据所述数据处理指令,读取所述数据缓存空间中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存空间;
所述根据所述并行控制指令,将所述第二数据从数据存储空间搬移到所述数据缓存空间,包括:
根据所述数据搬移指令,将所述第二数据从所述数据存储空间搬移到所述数据缓存空间。
4.根据权利要求3所述的方法,其特征在于,所述提取所述并行控制指令中的数据处理指令和数据搬移指令,包括:
提取所述并行控制指令中的有效字段指示信息;
根据所述有效字段指示信息,确定所述并行控制指令中第一有效字段和第二有效字段;
从所述并行控制指令中读取所述第一有效字段和所述第二有效字段,得到数据处理指令和数据搬移指令。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待处理数据;
根据所述数据缓存空间的缓存容量对所述待处理数据进行拆分,得到拆分后的多条数据;
将所述多条数据组成的数据序列存储在所述数据存储空间。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述待处理数据为图片数据;所述根据所述并行控制指令,读取数据缓存空间中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存空间,包括:
根据所述并行控制指令,基于神经网络模型,读取所述数据缓存空间已缓存的所述第一数据;并对对读取的所述第一数据进行处理,将处理后的第一数据输出至所述数据缓存空间。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述神经网络模型中各层分别对应的数据处理指令,并行进行数据处理。
8.一种数据处理芯片,其特征在于,所述芯片包括:指令处理单元、数据处理单元、数据搬移单元和数据缓存单元;
所述指令处理单元,用于提取并行控制指令,同时向所述数据处理单元和所述数据搬移单元发送所述并行控制指令;
所述数据处理单元,用于根据所述并行控制指令,读取所述数据缓存单元已缓存的第一数据,对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存单元;
所述数据搬移单元,用于同时根据所述并行控制指令,将待处理的第二数据从位于所述芯片之外的数据存储单元搬移至所述数据缓存单元,所述第二数据为所述第一数据的下一条数据。
9.根据权利要求8所述的芯片,其特征在于,所述芯片还包括指令缓存单元;
所述指令处理单元,用于读取位于所述芯片之外的指令存储单元中的并行控制指令;
所述指令处理单元,用于按照读取顺序将读取到的并行控制指令搬移到所述指令缓存单元进行缓存,得到指令缓存队列;
所述指令处理单元,用于按照指令缓存顺序从所述指令缓存队列中读取并行控制指令。
10.根据权利要求8所述的芯片,其特征在于,所述并行控制指令包括数据处理指令和数据搬移指令;
所述指令处理单元,用于提取所述并行控制指令中的数据处理指令和数据搬移指令;
所述数据处理单元,用于根据所述数据处理指令,读取所述数据缓存单元中已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存单元;
所述数据搬移单元,用于根据所述数据搬移指令,将所述第二数据从所述数据存储单元搬移到所述数据缓存单元。
11.根据权利要求10所述的芯片,其特征在于,所述指令处理单元,用于提取所述并行控制指令中的有效字段指示信息;根据所述有效字段指示信息,确定所述并行控制指令中第一有效字段和第二有效字段;从所述并行控制指令中读取所述第一有效字段和所述第二有效字段,得到数据处理指令和数据搬移指令。
12.根据权利要求8所述的芯片,其特征在于,所述待处理数据为图片数据,所述芯片为人工智能AI芯片;
所述数据处理单元,用于根据所述并行控制指令,基于神经网络模型,读取所述数据缓存单元中已缓存的所述第一数据;对所述第一数据进行处理,将处理后的第一数据输出至所述数据缓存单元。
13.根据权利要求12所述的芯片,其特征在于,所述数据处理单元包括至少一个数据处理子单元,所述数据搬移单元包括加载load引擎、存储store引擎和搬移move引擎中的至少一项;
所述load引擎,用于将待处理数据从所述数据存储单元搬移至所述数据缓存单元;
任一数据处理子单元,用于读取所述数据缓存单元中已缓存的数据,对所述数据进行处理,将处理后的数据输出至所述任一数据处理子单元对应的输出存储空间;
所述move引擎,用于将所述任一数据处理子单元处理后的数据从所述输出存储空间搬移至下一数据处理子单元对应的输入存储空间;
所述下一数据处理子单元,用于读取所述输入存储空间已缓存的数据,对所述数据进行处理,将处理后的数据输出至所述下一数据处理子单元对应的输出存储空间;
所述store引擎,用于将所述下一数据处理子单元处理后的数据从所述输出存储空间搬移至所述数据存储单元。
14.一种计算机设备,其特征在于,所述计算机设备包括:处理器和数据存储单元,所述处理器包括:指令处理单元、数据处理单元、数据搬移单元和数据缓存单元;
所述指令处理单元,用于读取并行控制指令;
所述数据处理单元,用于根据所述并行控制指令,读取所述数据缓存单元已缓存的第一数据,并对读取的第一数据进行处理,将处理后的第一数据输出至所述数据缓存单元;
所述数据搬移单元,用于同时,根据所述控制指令,将第二数据从所述数据存储单元搬移至所述数据缓存单元,所述第二数据为所述第一数据的下一条数据。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至7任一项所述的数据处理方法中所执行的操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911235760.XA CN111045732B (zh) | 2019-12-05 | 2019-12-05 | 数据处理方法、芯片、设备及存储介质 |
PCT/CN2020/118893 WO2021109703A1 (zh) | 2019-12-05 | 2020-09-29 | 数据处理方法、芯片、设备及存储介质 |
US17/502,218 US20220035745A1 (en) | 2019-12-05 | 2021-10-15 | Data processing method and chip, device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911235760.XA CN111045732B (zh) | 2019-12-05 | 2019-12-05 | 数据处理方法、芯片、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111045732A true CN111045732A (zh) | 2020-04-21 |
CN111045732B CN111045732B (zh) | 2023-06-09 |
Family
ID=70234743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911235760.XA Active CN111045732B (zh) | 2019-12-05 | 2019-12-05 | 数据处理方法、芯片、设备及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220035745A1 (zh) |
CN (1) | CN111045732B (zh) |
WO (1) | WO2021109703A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111562948A (zh) * | 2020-06-29 | 2020-08-21 | 深兰人工智能芯片研究院(江苏)有限公司 | 在实时图像处理系统中实现串行任务并行化的系统及方法 |
CN111651207A (zh) * | 2020-08-06 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
WO2021109703A1 (zh) * | 2019-12-05 | 2021-06-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、芯片、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638526A (en) * | 1991-11-20 | 1997-06-10 | Fujitsu Limited | Apparatus for operand data bypassing having previous operand storage register connected between arithmetic input selector and arithmetic unit |
US20070276990A1 (en) * | 2006-05-29 | 2007-11-29 | Sandisk Il Ltd. | Method for preloading data to improve data-retrieval times |
CN101276294A (zh) * | 2008-05-16 | 2008-10-01 | 杭州华三通信技术有限公司 | 异态性数据的并行处理方法和处理装置 |
CN102207916A (zh) * | 2011-05-30 | 2011-10-05 | 西安电子科技大学 | 一种基于指令预取的多核共享存储器控制设备 |
CN108536473A (zh) * | 2017-03-03 | 2018-09-14 | 华为技术有限公司 | 读取数据的方法和装置 |
CN108805267A (zh) * | 2018-05-28 | 2018-11-13 | 重庆大学 | 用于卷积神经网络硬件加速的数据处理方法 |
CN109219805A (zh) * | 2017-05-08 | 2019-01-15 | 华为技术有限公司 | 一种多核系统内存访问方法、相关装置、系统及存储介质 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN110209472A (zh) * | 2018-08-29 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 任务数据处理方法和板卡 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401187B1 (en) * | 1997-12-10 | 2002-06-04 | Hitachi, Ltd. | Memory access optimizing method |
JP2004289294A (ja) * | 2003-03-19 | 2004-10-14 | Fujitsu Ltd | データ処理システム、データ処理装置、及びデータ処理方法 |
CN104978282B (zh) * | 2014-04-04 | 2019-10-01 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
CN105205012A (zh) * | 2014-06-26 | 2015-12-30 | 北京兆易创新科技股份有限公司 | 一种数据读取方法和装置 |
US9632715B2 (en) * | 2015-08-10 | 2017-04-25 | International Business Machines Corporation | Back-up and restoration of data between volatile and flash memory |
CN105868121B (zh) * | 2016-03-28 | 2019-05-17 | 北京联想核芯科技有限公司 | 一种信息处理方法及电子设备 |
US10430081B2 (en) * | 2016-06-28 | 2019-10-01 | Netapp, Inc. | Methods for minimizing fragmentation in SSD within a storage system and devices thereof |
US11010431B2 (en) * | 2016-12-30 | 2021-05-18 | Samsung Electronics Co., Ltd. | Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet SSD |
CN107728939A (zh) * | 2017-09-26 | 2018-02-23 | 郑州云海信息技术有限公司 | 基于Linux的IO调度方法、装置、设备及存储介质 |
CN108334474B (zh) * | 2018-03-05 | 2021-11-19 | 山东领能电子科技有限公司 | 一种基于数据并行的深度学习处理器架构及方法 |
CN110222005A (zh) * | 2019-07-15 | 2019-09-10 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
JP7224472B2 (ja) * | 2019-08-05 | 2023-02-17 | 日立Astemo株式会社 | 車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置 |
CN111045732B (zh) * | 2019-12-05 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、芯片、设备及存储介质 |
-
2019
- 2019-12-05 CN CN201911235760.XA patent/CN111045732B/zh active Active
-
2020
- 2020-09-29 WO PCT/CN2020/118893 patent/WO2021109703A1/zh active Application Filing
-
2021
- 2021-10-15 US US17/502,218 patent/US20220035745A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638526A (en) * | 1991-11-20 | 1997-06-10 | Fujitsu Limited | Apparatus for operand data bypassing having previous operand storage register connected between arithmetic input selector and arithmetic unit |
US20070276990A1 (en) * | 2006-05-29 | 2007-11-29 | Sandisk Il Ltd. | Method for preloading data to improve data-retrieval times |
CN101276294A (zh) * | 2008-05-16 | 2008-10-01 | 杭州华三通信技术有限公司 | 异态性数据的并行处理方法和处理装置 |
CN102207916A (zh) * | 2011-05-30 | 2011-10-05 | 西安电子科技大学 | 一种基于指令预取的多核共享存储器控制设备 |
CN108536473A (zh) * | 2017-03-03 | 2018-09-14 | 华为技术有限公司 | 读取数据的方法和装置 |
CN109219805A (zh) * | 2017-05-08 | 2019-01-15 | 华为技术有限公司 | 一种多核系统内存访问方法、相关装置、系统及存储介质 |
CN108805267A (zh) * | 2018-05-28 | 2018-11-13 | 重庆大学 | 用于卷积神经网络硬件加速的数据处理方法 |
CN110209472A (zh) * | 2018-08-29 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 任务数据处理方法和板卡 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
Non-Patent Citations (2)
Title |
---|
R.GAO等: "Reconfigurable hardware implementation of an improved parallel architecture for MPEG-4 motion estimation in mobile applications", 《IEEE TRANSACTIONS ON CONSUMER ELECTRONICS》, vol. 49, no. 4, pages 1383 - 1390, XP001201291, DOI: 10.1109/TCE.2003.1261244 * |
周本海等: "基于多核处理器的动态共享缓存分配算法", 《东北大学学报》, vol. 32, no. 1, pages 44 - 47 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021109703A1 (zh) * | 2019-12-05 | 2021-06-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、芯片、设备及存储介质 |
CN111562948A (zh) * | 2020-06-29 | 2020-08-21 | 深兰人工智能芯片研究院(江苏)有限公司 | 在实时图像处理系统中实现串行任务并行化的系统及方法 |
CN111651207A (zh) * | 2020-08-06 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
CN111651207B (zh) * | 2020-08-06 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021109703A1 (zh) | 2021-06-10 |
US20220035745A1 (en) | 2022-02-03 |
CN111045732B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110045960B (zh) | 基于芯片的指令集处理方法、装置及存储介质 | |
CN111045732B (zh) | 数据处理方法、芯片、设备及存储介质 | |
CN111694834A (zh) | 图数据的入库方法、装置、设备及可读存储介质 | |
WO2019071600A1 (zh) | 一种图像处理方法及装置 | |
CN113986002A (zh) | 帧处理方法、装置及存储介质 | |
CN108564539B (zh) | 一种显示图像的方法和装置 | |
CN109917988B (zh) | 选中内容显示方法、装置、终端及计算机可读存储介质 | |
CN111399819A (zh) | 数据生成方法、装置、电子设备及存储介质 | |
CN110673944B (zh) | 执行任务的方法和装置 | |
CN110045958A (zh) | 纹理数据生成方法、装置、存储介质及设备 | |
CN111275607B (zh) | 界面显示方法、装置、计算机设备及存储介质 | |
CN117576258A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN116721007A (zh) | 任务控制方法、系统及装置、电子设备和存储介质 | |
CN116700826A (zh) | 微件启动方法、装置、设备及计算机可读存储介质 | |
CN111626035A (zh) | 一种版面分析方法及电子设备 | |
CN115686252B (zh) | 触控屏中的位置信息计算方法和电子设备 | |
CN113852751B (zh) | 图像处理方法、装置、终端和存储介质 | |
CN114299201A (zh) | 动画帧的显示方法、装置、设备及存储介质 | |
CN113448692B (zh) | 分布式图计算的方法、装置、设备及存储介质 | |
CN112260845B (zh) | 进行数据传输加速的方法和装置 | |
CN110598156B (zh) | 绘图数据的处理方法、装置、终端、服务器及存储介质 | |
CN111381979B (zh) | 神经网络的开发验证方法、装置、系统及存储介质 | |
CN115437776A (zh) | 绘图线程排程方法、装置及计算机设备 | |
CN112468870A (zh) | 一种视频播放方法、装置、设备及存储介质 | |
CN113384893A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022161 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |