CN117011117A - 数据处理方法、数据处理单元、系统及相关设备 - Google Patents
数据处理方法、数据处理单元、系统及相关设备 Download PDFInfo
- Publication number
- CN117011117A CN117011117A CN202210934646.1A CN202210934646A CN117011117A CN 117011117 A CN117011117 A CN 117011117A CN 202210934646 A CN202210934646 A CN 202210934646A CN 117011117 A CN117011117 A CN 117011117A
- Authority
- CN
- China
- Prior art keywords
- model training
- data
- operations
- dpu
- training
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 237
- 238000003672 processing method Methods 0.000 title claims description 29
- 238000012549 training Methods 0.000 claims abstract description 779
- 238000000034 method Methods 0.000 claims description 54
- 238000013501 data transformation Methods 0.000 claims description 48
- 239000000872 buffer Substances 0.000 claims description 39
- 238000004891 communication Methods 0.000 claims description 36
- 239000011159 matrix material Substances 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013473 artificial intelligence Methods 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 8
- 230000002708 enhancing effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
提供一种数据处理方法,DPU对获取图像数据执行图像操作集合中的操作,得到模型训练数据,该图像处理操作集合中至少包括图像解码操作,从而DPU向模型训练处理器输出模型训练数据,该模型训练数据用于供模型训练处理器执行训练操作集合中的操作;或者,DPU向CPU输出模型训练数据,该模型训练数据用于供CPU以及模型训练处理器执行训练操作集合中的操作,训练操作集合至少包括模型训练操作。如此,利用DPU对图像数据执行图像解码等操作,可以通过加速数据处理来提高AI模型训练效率,并可以通过减少对模型训练处理器有限的内存空间的占用,来提高训练AI模型的效率。
Description
本申请要求于2022年04月29日提交中国国家知识产权局、申请号为202210473780.6、 申请名称为“一种文件系统访问方法及装置”的中国专利申请的优先权,其全部内容通过引用 结合在本申请中。
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、数据处理单元、系统及 相关设备。
背景技术
目前,计算节点中通常可以配置有模型训练处理器,并利用该模型训练处理器处理计 算节点上的模型训练业务,以此卸载计算节点中的中央处理器(central processingunit,CPU) 的计算负担、提高计算节点的计算性能。举例来说,计算节点中可以配置有图形处理器 (graphics processing unit,GPU),其中,GPU可以用于训练CPU提供的人工智能(artificial intelligence,AI)模型等。
但是,实际应用时,计算节点上的模型训练业务,可能对于业务处理时延的要求较高, 这使得模型训练处理器训练模型的效率,可能难以满足部分应用场景的需求。
发明内容
提供一种数据处理方法、数据处理单元、系统、存储介质以及计算机程序产品,以提 高计算节点上的AI模型的训练效率,从而满足实际应用场景中部分模型训练业务的低时延 要求。
第一方面,本申请实施例提供一种数据处理方法,该数据处理方法由DPU执行,该DPU分别与CPU、模型训练处理器通过系统总线耦合,或者,该DPU与模型训练处理器是 一个训练卡上的不同芯片,该训练卡与CPU能够在训练卡上进行数据通信;在进行数据处 理时,DPU获取图像数据,该图像数据包括多个编码图像,然后,DPU对该图像数据执行 图像操作集合中的操作,得到模型训练数据,其中,处理该图像数据的操作包括由DPU执 行的图像处理操作集合中的操作以及非DPU执行的训练操作集合中的操作,并且,图像处 理操作集合中至少包括图像解码操作,而训练操作集合至少包括模型训练操作,从而DPU 向模型训练处理器输出模型训练数据,该模型训练数据用于供模型训练处理器执行训练操 作集合中的操作;或者,DPU向CPU输出模型训练数据,该模型训练数据用于供CPU以 及模型训练处理器执行训练操作集合中的操作。
由于通常情况下模型训练处理器主要擅长执行训练操作集合中的模型训练操作,因此, 利用DPU对图像数据进行图像解码(以及执行其它操作)的速度,会比利用模型训练处理 器进行图像解码(以及执行其它操作)的速度更快,从而利用DPU可以提高处理模型训练 业务的效率、实现加速AI模型训练。并且,利用DPU对图像数据执行图像解码等操作, 可以减少实现训练AI模型的过程中所产生的临时数据对模型训练处理器有限的内存空间的占用,这使得模型训练处理器可以具有充足的内存空间训练AI模型,从而也能提高训练AI模型的效率。
在AI训练中,模型训练处理器(例如GPU)针对图像数据通常需要执行多个操作,这多个操作组成一个集合。本方案把这个集合划分成复数个子集,把其中一个子集卸载到DPU中执行;其余子集由模型训练处理器执行,或者由模型训练处理器与CPU共同执行。这样 能够节约模型训练处理器的资源占用,让模型训练处理器把资源集中用于模型训练,而不 是被图像解码等操作占用大量资源。此外,DPU的位置往往更接近用户,用户数据先经过 DPU(例如集成网络功能的DPU),经过DPU处理后再到达模型训练处理器,这样可以减 小模型训练处理器的计算负担,从而模型训练处理器能够具有更多的算力来加速AI模型训 练。
在一种实现方式中,卸载到DPU的操作是DPU比模型训练处理器更擅长的操作。换言之,DPU与模型训练处理器执行同样的操作时,DPU比模型训练处理器效率更高,或者 DPU比模型训练处理器耗电更少,或者DPU比模型训练处理器占用时间更短。
在一种可能的实施方式中,DPU包括网络接口,从而DPU在获取图像数据时,具体可以是基于该网络接口通过有线网络或者无线网络获取用于训练AI模型的图像数据。如此,可以支持对远端的存储设备进行访问,以获取图像数据,从而可以在云场景中实现对AI模型的加速训练。
在一种可能的实施方式中,当DPU通过有线网络获取存储设备中的图像数据时,该有 线网络具体可以是以太网或者无线带宽网。
在一种可能的实施方式中,DPU可以与存储设备连接,从而DPU可以基于该连接从存 储设备获取图像数据。如此,可以在本地实现对AI模型的加速训练。
在一种可能的实施方式中,存储设备例如可以是硬盘驱动器HDD、闪存介质驱动器、 叠瓦式磁记录SMR、存储阵列、存储服务器中的一种或多种,实际应用时也可以是其它方 式实现。
可选地,存储设备例如可以是易失性存储器,或者可以是非易失性存储器。
在一种可能的实施方式中,当存储设备与DPU连接时,存储设备与DPU之间的通信协议可以包括:小型计算机系统接口SCSI协议、串行连接小型计算机系统接口SAS协议、 外围元件快速互连PCIe协议、通用串行总线USB协议、快速非易失性存储器NVMe协议 中的一种或多种。如此,DPU可以基于任意一种或者多种通信协议实现与存储设备之间的 数据通信。
在一种可能的实施方式中,DPU、CPU以及模型训练处理器位于同一个服务器。
可选地,DPU可以与模型训练处理器位于不同的服务器,从而可以实现对远端的模型 训练处理器提供AI模型加速训练的服务。
在一种可能的实施方式中,所述模型训练处理器为图形处理器GPU、神经网络处理器 NPU、张量处理器TPU中的一种或者多种。
在一种可能的实施方式中,用于耦合DPU、CPU以及模型训练处理器的系统总线,或者而用于耦合CPU与训练卡的系统总线,可以包括外围元件快速互连PCIe总线、计算快速链接CXL总线、快速非易失性存储器NVMe总线中的一种或多种。
在一种可能的实施方式中,图像处理操作集合还包括图像数据变换操作,该图像数据 变化操作例如可以是中心裁剪操作、尺寸调整操作、数据增强操作、归一化操作中的一种 或者多种,或者还可以其它类型的操作等,从而DPU在执行图像处理操作集合中的操作时, 可以先对图像数据执行图像解码操作,得到矩阵数据,然后再对该矩阵数据执行图像数据 变换操作,得到输出给CPU或者输出给模型训练处理器的模型训练数据。
在一种可能的实施方式中,训练操作集合还包括图像数据变换操作,则模型训练数据 用于被CPU执行图像数据变换操作并得到临时数据,该临时数据用于被模型训练处理器执 行模型训练操作。即,由DPU对图像数据执行图像解码操作后,将得到的模型训练数据输 出给CPU;CPU对模型训练数据执行图像数据变换操作,并将得到的临时数据输出给模型训练处理器;模型训练处理器利用该临时数据实现对AI模型的训练。如此,利用DPU以 及CPU的算力,可以进一步加速AI模型的训练。
在一种可能的实施方式中,模型训练处理器在训练得到的AI模型后,可以将该AI模 型输出给DPU,从而DPU可以向本地或者远端的存储设备发送该AI模型,并且,该AI 模型可以通过文件格式或者键值KV格式将AI模型存储于存储设备中。如此,可以实现对 AI模型的本地或者云端保存。
在一种可能的实施方式中,DPU具体可以是向其它DPU输出所述模型训练数据,其中,该其它DPU分别与其它CPU、其它模型训练处理器通过系统总线耦合,或者该其它 DPU与其它模型训练处理器是一个训练卡上的不同芯片。这样,其它DPU在接收到该模型 训练数据后,可以向其它模型训练处理器输出该模型训练数据,该模型训练数据用于被其 它模型训练处理器执行训练操作集合中的操作。如此,不仅可以实现利用DPU加速AI模 型的训练,而且DPU所处理得到的模型训练数据可以共享给其它DPU,以便其它DPU能 够基于共享得到的模型训练数据加速其它模型训练处理器的模型训练。
第二方面,本申请实施例还提供了一种数据处理方法,该数据处理方法由DPU执行, 该DPU分别与CPU、多个模型训练处理器通过系统总线耦合,或者DPU与多个模型训练处理器是一个训练卡上的不同芯片;则,在进行数据处理时,DPU获取图像数据,该图像 数据包括多个编码图像;然后,DPU对图像数据执行图像处理操作集合中的操作,得到模 型训练数据,其中,处理图像数据的操作包括图像处理操作集合中的操作以及训练操作集 合中的操作,该图像处理操作集合至少包括图像解码操作,该训练操作集合至少包括模型 训练操作,从而DPU将模型训练数据写入供多个模型训练处理器访问的共享缓存,该共享 缓存中的模型训练数据用于供多个模型训练处理器执行训练操作集合中的操作,或者,该 共享缓存中的模型训练数据用于供CPU以及多个模型训练处理器执行所述训练操作集合中 的操作。
由于DPU对图像数据进行图像解码(以及执行其它操作)的速度,会比模型训练处理 器进行图像解码(以及执行其它操作)的速度更快,从而利用DPU可以提高处理模型训练业务的效率、实现加速AI模型训练。并且,利用DPU对图像数据执行图像解码等操作, 可以减少实现训练AI模型的过程中所产生的临时数据对多个模型训练处理器有限的内存空 间的占用,这使得多个模型训练处理器可以具有充足的内存空间训练AI模型,从而能够为 多个模型训练处理器提高训练AI模型的效率。
第三方面,本申请实施例还提供了一种数据处理方法,该数据处理方法由目标DPU执 行,该目标DPU分别与CPU、模型训练处理器通过系统总线耦合,或者目标DPU与模型 训练处理器是一个训练卡上的不同芯片;则,在进行数据处理时,目标DPU获取图像数据, 图像数据包括多个编码图像;然后,目标DPU对图像数据执行图像处理操作集合中的操作, 得到模型训练数据,其中,处理图像数据的操作包括图像处理操作集合中的操作以及训练 操作集合中的操作,该图像处理操作集合至少包括图像解码操作,该训练操作集合至少包 括模型训练操作,从而目标DPU将模型训练数据写入基于多个DPU中的缓存所构建的共 享缓存池,该多个DPU包括所述目标DPU,该共享缓存池中的模型训练数据用于供模型训 练处理器执行训练操作集合中的操作,或者,该共享缓存池中的模型训练数据用于供CPU 以及模型训练处理器执行该训练操作集合中的操作。
由于利用一个或者多个DPU对图像数据进行图像解码(以及执行其它操作)的速度, 会比模型训练处理器进行图像解码(以及执行其它操作)的速度更快,从而利用一个或者 多个DPU可以提高处理模型训练业务的效率、实现加速AI模型训练。并且,利用一个或者多个DPU对图像数据执行图像解码等操作,可以减少实现训练AI模型的过程中所产生 的临时数据对模型训练处理器有限的内存空间的占用,这使得模型训练处理器可以具有充足的内存空间训练AI模型,从而能够为模型训练处理器提高训练AI模型的效率。
第四方面,本申请实施例提供了一种第一数据处理单元DPU,所述第一DPU分别与第 一CPU、第一模型训练处理器通过系统总线耦合,或者所述第一DPU与所述模型训练处理器是一个训练卡上的不同芯片,所述DPU包括:通信接口,用于获取图像数据,所述图像 数据包括多个编码图像;处理芯片,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练操作;输出接口电路,用于输出所述模型训练数据,所述模型训练数据用于供所述第一模型训练处理器执行所述训练操作集合中的操作,或者,所述模型训练数据用于供所述第一CPU以及所述第一模型训练处理器执行所述训练操作集合中的操作。
在一种可能的实施方式中,所述图像处理操作集合还包括图像数据变换操作,所述处 理芯片,用于:对所述图像数据执行所述图像解码操作,得到矩阵数据;对所述矩阵数据 执行所述图像数据变换操作,得到所述模型训练数据。
在一种可能的实施方式中,所述训练操作集合还包括图像数据变换操作,所述模型训 练数据用于被所述第一CPU执行所述图像数据变换操作并得到临时数据,所述临时数据用 于被所述第一模型训练处理器执行所述模型训练操作。
在一种可能的实施方式中,所述通信接口,用于:获取所述第一模型训练处理器输出 的人工智能AI模型;向本地或者远端存储设备发送所述AI模型,所述AI模型通过文件格式或者键值KV格式把所述AI模型存储于所述存储设备中。
在一种可能的实施方式中,所述输出接口电路,还用于向第二DPU输出所述模型训练 数据;所述第二DPU分别与第二CPU、第二模型训练处理器通过系统总线耦合,或者所述第二DPU与所述第二模型训练处理器是一个训练卡上的不同芯片,所述第二DPU用于: 接收所述模型训练数据;向所述第二模型训练处理器输出所述模型训练数据,所述模型训 练数据用于被所述第二模型训练处理器执行所述训练操作集合中的操作。
由于第四方面提供的DPU,对应于第一方面提供的数据处理方法,因此,第四方面以 及第四方面中各实施方式所具有技术效果,可以参见相应的第一方面以及第一方面中各实 施方式所具有的技术效果,在此不做赘述。
第五方面,本申请实施例提供一种数据处理单元DPU,所述DPU分别与中央处理器CPU、多个模型训练处理器通过系统总线耦合,或者所述DPU与所述多个模型训练处理器 是一个训练卡上的不同芯片,所述数据处理装置包括:通信接口,用于获取图像数据,所 述图像数据包括多个编码图像;处理芯片,用于对所述图像数据执行图像处理操作集合中 的操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的 操作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训 练操作集合至少包括模型训练操作;数据读写接口,用于将所述模型训练数据写入供所述 多个模型训练处理器访问的共享缓存,所述共享缓存中的模型训练数据用于供所述多个模 型训练处理器执行所述训练操作集合中的操作,或者,所述共享缓存中的模型训练数据用 于供所述CPU以及所述多个模型训练处理器执行所述训练操作集合中的操作。
由于第五方面提供的DPU,对应于第二方面提供的数据处理方法,因此,第五方面的 实施方式所具有技术效果,可以参见相应的第二方面的实施方式所具有的技术效果,在此 不做赘述。
第六方面,本申请实施例提供一种目标数据处理单元DPU,所述目标DPU分别与中央 处理器CPU、模型训练处理器通过系统总线耦合,或者所述目标DPU与所述模型训练处理器是一个训练卡上的不同芯片,所述目标DPU包括:通信接口,用于获取图像数据,所述 图像数据包括多个编码图像;处理芯片,用于对所述图像数据执行图像处理操作集合中的 操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操 作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练 操作集合至少包括模型训练操作;数据读写接口,用于将所述模型训练数据写入基于多个DPU中的缓存所构建的共享缓存池,所述多个DPU包括所述目标DPU,所述共享缓存池 中的模型训练数据用于供所述模型训练处理器执行所述训练操作集合中的操作,或者,所 述共享缓存池中的模型训练数据用于供所述CPU以及所述模型训练处理器执行所述训练操 作集合中的操作。
由于第六方面提供的目标DPU,对应于第三方面提供的数据处理方法,因此,第六方 面的实施方式所具有技术效果,可以参见相应的第三方面的实施方式所具有的技术效果, 在此不做赘述。
第七方面,本申请实施例提供了一种DPU,该DPU用于执行上述第一方面至第三方面 的任一实现方式中DPU所执行的数据处理方法。
第八方面,本申请实施例提供一种数据处理系统,该数据处理系统包括上述第一方面 至第三方面的任一实现方式所述的DPU、CPU以及模型训练处理器。
第九方面,本申请实施例提供一种芯片系统,所述芯片系统包括供电电路以及处理电 路,所述供电电路用于对所述处理电路进行供电,所述处理电路用于执行上述第一方面至 第三方面的任一实现方式中DPU所执行的数据处理方法。
其中,供电电路可以与处理电路位于同一个芯片内,或者,供电电路可以位于处理电 路所在芯片之外的另一个芯片内。供电电路包括但不限于如下至少一个:供电子系统、电 管管理芯片、功耗管理处理器或功耗管理控制电路。
第十方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质 中存储有程序或指令,当其在计算机上运行时,使得上述第一方面至第三方面中的任一实 现方式中所述的数据处理方法被执行。
第十一方面,本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上 运行时,使得计算机执行上述第一方面至第三方面中的任一实现方式中所述的数据处理方 法。
另外,第四方面至十一方面中任一种实现方式所带来的技术效果可参见第一方面至第 三方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的 附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例, 对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一示例性数据处理系统的结构示意图;
图1b为本申请实施例提供的另一示例性数据处理系统的结构示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的另一种数据处理方法的流程示意图;
图4为本申请实施例提供的另一种数据处理系统的结构示意图;
图5为本申请实施例提供的又一种数据处理系统的结构示意图;
图6为本申请实施例提供的又一种数据处理方法的流程示意图;
图7为本申请实施例提供的又一种数据处理系统的结构示意图;
图8为本申请实施例提供的再一种数据处理系统的结构示意图;
图9为本申请实施例提供的一种DPU的结构示意图;
图10为本申请实施例提供的另一种DPU的结构示意图;
图11为本申请实施例提供的一种DPU的硬件结构示意图;
图12为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
参见图1a,为一示例性数据处理系统的结构示意图。如图1a所示,数据处理系统100 可以包括数据处理单元(data processing unit,DPU)101、CPU102、以及模型训练处理器 103。其中,DPU101、CPU102、模型训练处理器103之间可以通过系统总线进行耦合,该 系统总线用于连接计算机内部的组件,例如可以是外围组件快速互连(peripheralcomponent interconnect express,PCIE)总线、计算快速链接(compute express link,CXL)总线、快速 非易失性存储器(non-volatile memory express,NVMe)总线中的任意一种或多种,或者可 以是其它可能的总线,本申请对此并不进行限定。其中,DPU是一种板卡,可以通过PCIe 接口或者其他接口的插槽插在主板(如服务器主板等)上。DPU可以和模型训练处理器(例 如GPU)集成在同一个板卡上,或者分别是独立的板卡。
所述DPU拥有网络接口,例如100GB以太网络接口、infiniband网络接口。所述DPU还可以拥有访问计算机节点本地存储介质的功能,例如通过PCIe协议访问固态驱动器(SSD)。
其中,DPU101、CPU102可以与模型训练处理器103部署于同一计算节点,如图1a所示的计算节点1。示例性地,计算节点1,例如可以是终端或者服务器,又或者可以是其它 具有计算能力的设备等。在其它实施方式中,DPU101、CPU102与模型训练处理器103也 可以部署于不同计算节点,如DPU101部署于一个计算节点,CPU102与模型训练处理器103 部署于另一个计算节点等。
作为一些示例,模型训练处理器103,例如可以是GPU、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processing unit,TPU)中的任意一种或者多种, 或者可以是其它类型的处理器。
进一步地,数据处理系统100还可以包括存储设备104,并且,计算节点1通过DPU101 与存储设备104进行通信,如图1a所示。具体地,计算节点1通过DPU101对存储设备104 进行访问,如通过DPU101读取存储设备104中存储的用于训练模型的图像数据,或者将完成训练的模型通过DPU101发送至存储设备104中进行存储等。
其中,DPU101可以与存储设备104连接,如通过接口或者总线建立连接等。示例性地, 存储设备104与DPU101之间的通信协议包括:小型计算机系统接口(small computersystem interface,SCSI)协议、串行连接小型计算机系统接口(serial attached smallcomputer system interface,SAS)协议、PCIe协议、通用串行总线(universal serialbus,USB)协议(如USB 3.0、USB 2.0等)、NVMe协议中的一种或多种,或者可以是其它可适用的通信协议。
或者,DPU101可以包括网络接口,从而DPU101可以通过该网络接口,基于有线网络或者无线网络与存储设备104进行通信。作为一些示例,当DPU101与存储设备104基于 有线网络进行通信时,该有线网络例如可以是以太网或者无限带宽网(infiniband)等。
其中,存储设备104例如可以是硬盘驱动器(hard disk drive,HDD)、闪存介质驱动 器、叠瓦式磁记录(shingled magnetic recording,SMR)、存储阵列、存储服务器中的一种 或多种。或者,按照存储设备的类型划分,存储设备104可以是非易失性存储器(non-volatile memory,NVM),如只读内存(read-only memory,ROM)、闪存(flash memory)、存储级存储器(storage class memory,SCM)等;或者,存储设备104可以是易失性存储器(volatile memory),如随机存取存储器(random-access memory,RAM)等。需要说明的是,图1a 中所示的存储设备104,可以是能够提供存储服务的一个设备或者多个设备的集合,为便于 描述,在此以存储设备104进行统一指代。
在图1a所示的数据处理系统100中,CPU102可以指示模型训练处理器103对该计算节点1上的一个或者多个AI模型进行训练,如指示模型训练处理器103训练目标识别模型、人脸检测模型等。
以处理计算节点1上的一个模型训练任务为例,如果仅利用模型训练处理器103所具 有的单一算力执行处理该模型训练业务所需的所有步骤,由于模型训练处理器103的算力 有限,这使得模型训练处理器103完成AI模型的训练所需耗时可能过长,从而导致AI模型的训练效率较低。举例来说,假设模型训练处理器103具体为GPU,则,GPU可以访问 存储设备104中存储的作为训练样本的图像数据,并将访问到的图像数据存储至本地内存, 然后在本地内存对该图像数据执行解码、图像数据变换(如数据增强等)、以及训练AI模 型等操作,并在本地内存保存执行这些操作所产生的临时数据。由于GPU的内存空间有限, 难以存储GPU处理所有图像数据所产生的临时数据,这不仅会导致迭代训练AI模型的批 数据量(batch size)较小,而且,在多轮迭代训练AI模型的过程中,GPU需要多次重复读 取和解码存储设备104中的同一训练数据集,从而会增加GPU迭代训练AI模型的耗时, 导致GPU训练AI模型的效率较低。
基于此,本申请实施例提供了一种数据处理方法,利用DPU101协同模型训练处理器 103处理业务,以此提高处理计算节点1上的AI模型的训练效率。具体实现时,在处理计算节点1上的模型训练业务时,DPU101可以获取存储设备104中存储的用于训练AI模型 所需的图像数据(即AI模型的训练样本),该图像数据包括多个编码图像,其中,处理图 像数据的操作包括多种操作,该多种操作可以被划入由DPU执行的图像处理操作集合、以 及由模型训练处理器103(或者模型训练处理器103+CPU102)执行的训练操作集合,并且, 图像处理操作集合中至少包括图像解码操作,而训练操作集合中至少包括模型训练操作。 然后,DPU101可以对获取的图像数据执行图像处理操作集合中的操作,得到模型训练数据,并输出该模型训练数据。这样,模型训练处理器103可以继续对该模型训练数据执行训练操作集合中的操作,实现对AI模型的训练。或者,CPU102与模型训练处理器103针对该 模型训练数据依次执行训练操作集合中的不同操作,实现对AI模型的训练。
由于通常情况下模型训练处理器103主要擅长执行训练操作集合中的模型训练操作, 对图像解码等操作相对而言并不擅长。因此,利用DPU101对图像数据进行图像解码(以及执行其它操作)的速度,会比利用模型训练处理器103进行图像解码(以及执行其它操作)的速度更快,从而利用DPU101可以提高处理模型训练业务的效率、实现加速计算节 点1上的AI模型训练。并且,利用DPU101对图像数据执行图像解码等操作,可以减少实 现训练AI模型的过程中所产生的临时数据对模型训练处理器103有限的内存空间的占用, 这使得模型训练处理器103可以具有充足的内存空间训练AI模型,从而也能提高训练AI 模型的效率,进而提高处理计算节点1上的模型训练业务的整体效率。
仍以CPU102利用GPU处理模型训练业务为例,DPU101可以从存储设备104中读取训练AI模型所需的图像数据,并在DPU101的内存中依次对该图像数据执行解码、尺寸调 整操作(resize)、数据增强操作等(这些操作即为上述图像处理操作集合中的操作),得 到模型训练数据;然后,DPU101可以将模型训练数据输出给GPU。GPU可以在本地内存 存储该模型训练数据,并利用该模型训练数据训练AI模型。如此,由于在处理AI模型训 练业务的过程中,对图像数据执行解码操作、尺寸调整操作、数据增强操作所分别生成的 临时数据所占用的内存空间为DPU的内存空间,因此,即使GPU的本地内存的空间有限, GPU也能具有足够的内存空间存储DPU101输出的模型训练数据(也即经过数据增强操作 所得到的数据),从而GPU可以采用更大的batch size对AI模型进行迭代训练,实现AI 模型的训练加速。并且,在对AI模型进行多次迭代训练的过程中,GPU可以直接从DPU101 的内存中读取模型训练数据,从而无需多次重复执行读取存储设备104中作为训练样本的 图像数据、对图像数据进行解码、尺寸调整、数据增强的操作,这不仅可以降低资源消耗, 还能进一步加快该AI模型训练业务的处理效率。另外,在GPU利用一个batch size的训练 样本训练AI模型时,DPU101可以并行执行对其它图像数据的解码、尺寸调整、数据增强 等操作,以便于GPU在完成一次AI模型过程后,能够及时获得下一batch size的训练样本 继续训练AI模型,从而可以进一步加快AI模型的训练效率,摆脱GPU训练AI模型的输 入输出约束(IO bound)和算力约束。
值得注意的是,图1a所示的系统架构仅作为一种示例,并不用于限定其具体实现局限 于该示例。比如,在图1b所示的数据处理系统100中,DPU101与模型训练处理器103是一个训练卡200上的不同芯片,并且,CPU与该训练卡200能够在训练卡200上进行数据 通信,而在训练卡200上,DPU101与模型训练处理器103可以通过片上总线进行连接。又 比如,图1中的计算节点1也可以包括更多数量或者更多类型的模型训练处理器。再比如, DPU101可以同时与多个计算节点进行连接,从而可以为多个计算节点实现加速模型训练业 务处理,本实施例对此并不进行限定。
并且,包括上述DPU101、CPU102、模型训练处理器103、以及存储设备104的数据 处理系统100,可以适用于集中式存储的应用场景或者分布式存储的应用场景。
其中,在集中式存储应用场景中,可以由一台或多台计算节点组成中心节点,并且整 个数据处理系统100的所有数据处理业务都集中部署在这个中心节点上。此时,计算节点1 与实现存储设备104之间可以采用盘控分离架构,即计算节点1与存储设备104独立部署; 或者,计算节点1与存储设备104之间可以采用盘控一体架构,即计算节点1可以具有槽位,并通过该槽位将存储设备104放置在该计算节点1中,与该计算节点1集成部署。
在分布式存储应用场景中,数据处理系统100中的数据可以分散存储在多个独立的存 储设备104上。此时,计算节点1可以与存储设备104集成部署,使得该计算节点同时具有计算能力以及存储能力,并且在该计算节点1上可以创建虚拟机,或者也可以不创建虚拟机。或者,计算节点1与存储设备104之间可以采用存算分离架构,即计算节点1与存 储设备104独立部署并通过网络进行通信。另外,存储设备104中可以包括一种或者多种 不同的存储介质,本实施例对此并不进行限定。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合附图对本申请实 施例中的各种非限定性实施方式进行示例性说明。显然,所描述的实施例是本申请一部分 实施例,而不是全部的实施例。基于本申请中的实施例,基于上述内容所获得的所有其它 实施例,都属于本申请保护的范围。
如图2所示,为本申请实施例中一种数据处理方法的流程示意图,该方法可以应用于 如图1a或者图1b所示的数据处理系统100中。实际应用时,该方法也可以应用于其它可适 用的数据处理系统中。为便于理解与描述,下面以应用于图1a所示的数据处理系统100为 例进行示例性说明,该方法具体可以包括:
S201:DPU101访问存储设备104,获取用于训练AI模型的图像数据,该图像数据包括多个编码图像。
本实施例中,存储设备104中可以存储作为AI模型训练样本的图像数据,该图像数据 用于训练计算节点1上的一个或者多个AI模型,如目标识别模型、人脸检测模型等,从而处理模型训练任务时,DPU101可以通过访问存储设备104,获取其上存储的用于训练该 AI模型的图像数据。
作为一种实现示例,DPU101可以在CPU102的控制下,对存储设备104进行访问。具体实现时,CPU102可以对外提供客户端,该客户端例如可以是网络浏览器,或者可以是运行在用户侧的应用程序(application),用于实现与用户之间的交互,从而CPU102可以通过该客户端接收到用户针对训练AI模型的指示信息。然后,CPU102可以根据该指示信息,确定用于训练该AI模型的图像数据在存储设备104中的存储位置,并生成包括该存储位置的训练指令,从而CPU102可以将该训练指令下发给DPU101。如此,DPU101响应该训练 指令,根据该训练指令中的存储位置访问得到存储设备104中的图像数据。实际应用时, 也可以通过其它方式触发DPU101访问存储设备104,本实施例对此并不进行限定。
S202:DPU101对访问得到图像数据执行图像处理操作集合中的操作,得到模型训练数 据,其中,处理图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操 作,并且,图像处理操作集合至少包括图像解码操作,训练操作集合至少包括模型训练操 作。
S203:DPU101向模型训练处理器103输出模型训练数据。
通常情况下,DPU101所获取的图像数据为多个经过编码(encode)处理的图像(通常 称之为编码图像),因此,在利用图像数据训练AI模型的过程中,针对图像数据所执行的操作可以包括图像解码操作以及模型训练操作等。其中,图像解码操作用于对该多个编码图像进行解码,通常可以得到矩阵形式的数据,在部分应用场景中,模型训练处理器103 可以直接将矩阵形式的数据作为AI模型的输入,训练AI模型(即执行模型训练操作)。
进一步地,除了图像解码操作以及模型训练操作之外,针对图像数据所执行的操作还 可以图像数据变换操作,该图像数据变换操作例如可以是中心裁剪(center crop)操作、尺 寸调整操作、数据增强操作、归一化(normalize)操作中的一种或者多种,或者还可以其 它类型的操作等。其中,中心裁剪操作,是指将图像数据(或者对图像数据进行解码后所 得到的矩阵数据)裁剪为预设尺寸的图像数据,以满足模型训练业务中对于图像数据的尺 寸需求。尺寸调整操作,是指对图像数据(或者对图像数据进行解码后所得到的矩阵数据) 进行缩放,以调整图像数据的尺寸大小。数据增强操作,是指对图像数据(或者对图像数 据进行解码后所得到的矩阵数据)进行尺寸变化、或者像素值变化、或者视角变化等(如图像翻转、旋转、平移、缩放等),可以丰富AI模型的训练样本。归一化操作,是指对图 像数据(或者对图像数据进行解码后所得到的矩阵数据)中的每个颜色通道的数据进行归 一化,如将每个颜色通道上的各个像素的像素值减去该颜色通道的平均像素值,并除以该 颜色通道的像素值的方差等。
本实施例中,可以预先将该上述针对图像数据所执行的多个操作划分为由DPU101执 行的操作,以及由其它处理器(如模型训练处理器103)执行的操作。为便于区分,以下将该多个操作中由DPU101执行的操作划入图像处理操作集合中,由其它处理器执行的操作划入训练操作集合中。如此,DPU101在获得图像数据后,可以对其执行图像处理操作集合中的操作,并生成相应的数据,为便于区分,以下称之为模型训练数据。
作为一种示例,针对图像数据所执行的多个操作包括图像解码操作以及模型训练操作, 则,DPU101可以对图像数据执行图像解码操作后,所得到的矩阵数据即为模型训练数据。 然后,模型训练处理器103可以对该模型训练数据执行模型训练操作,具体可以是将该模 型训练数据作为AI模型的输入,训练AI模型。
作为又一种示例,针对图像数据所执行的多个操作,除了包括图像解码操作以及模型 训练操作之外,还包括图像数据变换操作,如上述中心裁剪操作、尺寸调整操作、数据增 强操作、归一化操作中的一种或者多种。
此时,DPU101所需执行的操作数量,可以根据DPU101的算力进行确定。举例来说,假设针对图像数据所执行的多个操作包括图像解码操作、尺寸调整操作、数据增强操作以及模型训练操作。当DPU101的计算能力较高、内存资源较多时,表征DPU101的算力较 强,此时,可以将图像解码操作、尺寸调整操作、数据增强操作划入由DPU101执行的图 像处理操作集合中,将模型训练操作划入由模型训练处理器103执行的训练操作集合中, 以此可以减少模型训练处理器103的计算负担。相应地,图像处理操作集合中包括多种类 型的操作,DPU101基于图像数据依次执行图像解码操作、尺寸调整操作、数据增强操作后, 可以得到输出给模型训练处理器103的模型训练数据。而当DPU101的计算能力较低、或 者内存资源较少时,表征DPU101的算力较差,此时,可以将图像解码操作、尺寸调整操 作划入图像处理操作集合中,将数据增强操作、模型训练操作划入训练操作集合中,基于 DPU101所具有的算力,尽可能减少模型训练处理器103的计算负担。
或者,DPU101所需执行的操作数量,也可以根据模型训练处理器103的当前负载大小 进行确定(该模型训练处理器103例如可以是同时训练多个AI模型等)。比如,当模型训练处理器103的负载较大时,DPU101可以执行图像解码操作、尺寸调整操作、数据增强操作,模型训练处理器103执行模型训练操作,以减少模型训练处理器103在训练AI模型的 过程中所需的计算量,以此可以避免该模型训练处理器103的负载过大。而当模型训练处 理器103的负载较小时,DPU101可以仅执行图像解码操作,或者仅执行图像解码操作以及 尺寸调整操作,由模型训练处理器103执行其余操作,这可以使得模型训练处理器103的 资源利用率能够达到较高的水平,避免模型训练处理器103上过多的资源处于闲置状态而 产生资源浪费。
值得注意的是,上述实现示例仅作为一些示例性说明,在其它实施例中,也可以基于 其它依据将针对图像数据所需执行的多个操作划入图像处理操作集合以及训练操作集合, 本实施例对此并不进行限定。
S204:模型训练处理器103对模型训练数据执行训练操作集合中的操作。
本实施例中,由DPU101以及模型训练处理器103协同处理模型训练业务,因此,在DPU101输出模型训练数据后,模型训练处理器103可以继续对该模型训练数据进行处理,以此完成对模型训练业务的处理。
具体地,当训练操作集合中仅包括模型训练操作时,模型训练处理器103可以直接根 据DPU101输出的模型训练数据进行模型训练,具体可以是将该模型训练数据输入至AI模 型中,并根据该AI模型输出的推理结果对AI模型中的参数进行更新,以此完成对AI模型的一次训练过程。而当训练操作集合中包括上述图像数据变换操作以及模型训练操作时,模型训练处理器103可以先对模型训练数据执行该图像数据变换操作,得到临时数据;然后,模型训练处理器103对根据该临时数据执行模型训练操作,以实现对AI模型的训练。
在进一步的实施方式中,模型训练处理器103在根据模型训练数据完成对AI模型的训 练后,若训练后的AI模型满足模型训练终止条件,如迭代训练次数达到预设次数或者AI 模型收敛等,则模型训练处理器103还可以向CPU102返回完成训练的AI模型,以便CPU102 向上层应用或者与该CPU102交互的客户端反馈该AI模型。或者,模型训练处理器103可 以向DPU101返回完成训练的AI模型,以便DPU101将该AI模型发送至存储设备104中进行存储等,本实施例对此并不进行限定。
实际应用场景中,当模型训练处理器103向CPU102反馈AI模型时,CPU102可以将该AI模型写入在本地的存储区域,如保存在计算节点1上的硬盘等。当模型训练处理器103向DPU101反馈AI模型时,若DPU101与存储设备104通过有线网络或者无线网络进行数 据通信,则DPU101可以根据该AI模型生成相应的文件,并通过DPU101上的网络接口向 远端的存储设备104发送该文件,从而AI模型可以基于文件格式存储于存储设备104中; 或者,DPU101将AI模型发送至远端的存储设备104后,存储设备104可以通过键值对 (key-value)的形式保存该AI模型,其中,key为存储设备104所创建的键,value为AI 模型。若DPU101与存储设备104通过PCIe总线等方式建立连接,则DPU101可以基于文 件格式或者KV格式将AI模型发送至本地的存储设备104。
由于DPU101执行了图像解码等处理图像数据所需执行的部分操作,从而可以减少模 型训练处理器103所需执行的操作,这不仅可以利用DPU101的硬件实现加速对模型训练业务数据的处理,而且,DPU101在执行图像处理操作集合中的操作所生成的模型训练数据,占用的是DPU101的内存空间,这使得即使模型训练处理器103的本地内存的空间有限, 模型训练处理器103也能具有足够的内存空间根据模型训练数据训练AI模型,从而可以避 免模型训练处理器103训练AI模型的效率受到模型训练处理器103中有限的内存空间的影响,实现加速AI模型效率。另外,DPU101所生成的模型训练数据,可以在DPU101的内 存空间进行存储,这使得当模型训练处理器103再次需要该模型训练数据时(如重复利用 同一数据集对AI模型进行迭代训练等),可以直接从DPU101的内存空间读取,而无需 DPU101重新从存储设备104中读取图像数据并重新执行图像解码等操作,从而可以进一步 加速AI模型的训练。
上述实施例中,是以DPU101与模型训练处理器103共同处理模型训练业务为例进行 示例性说明,实际应用时,当处理模型训练业务所需的算力要求较高时,也可以结合DPU101、 CPU102以及模型训练处理器103的综合算力来加速AI模型的训练。下面,结合附图,对 利用DPU101、CPU102以及模型训练处理器103处理模型训练业务的过程进行介绍。
参见图3,图3示出了本申请实施例的另一种数据处理方法的流程示意图。如图3所示, 该方法具体可以包括:
S301:DPU101访问存储设备104,获取用于训练AI模型的图像数据,该图像数据包括多个编码图像。
S302:DPU101对访问得到模型训练业务的数据执行图像处理操作集合中的操作,得到 模型训练数据,其中,处理图像数据的操作包括图像处理操作集合中的操作以及训练操作 集合中的操作,并且,图像处理操作集合至少包括图像解码操作,训练操作集合至少包括 图像数据变换操作以及模型训练操作。
本实施例中,步骤S301至步骤S302的具体实现方式,可参见前述实施例中的步骤S201 以及步骤S202的相关之处描述,在此不做赘述。
S303:DPU101向CPU102输出模型训练数据。
本实施例中,DPU101在输出模型训练数据后,可以交由CPU102继续对模型训练数据 进行处理。
S304:CPU102对模型训练数据执行训练操作集合中的图像数据变换操作,得到临时数 据。
S305:CPU102向模型训练处理器103输出该临时数据。
其中,图像数据变换操作,例如可以是中心裁剪操作、尺寸调整操作、数据增强操作、 归一化操作中的一种或者多种。并且,当图像数据变换操作包括多种操作时,CPU102可以 基于模型训练数据依次执行该多种操作,得到用于输出给模型训练处理器103的临时数据。
S306:模型训练处理器103对临时数据执行训练操作集合中的模型训练操作。
进一步地,模型训练处理器103在利用临时数据完成对AI模型的训练后,若该AI模型满足模型训练终止条件,如迭代训练次数达到预设次数或者AI模型收敛等,则模型训练处理器103还可以向CPU102返回完成训练的AI模型,以便CPU102向上层应用或者与该CPU102交互的客户端反馈该AI模型。或者,模型训练处理器103可以向DPU101返回完 成训练的AI模型,以便DPU101将该AI模型发送至存储设备104中进行存储等,本实施 例对此并不进行限定。
实际应用时,可以根据针对不同AI模型的训练任务,确定是否综合CPU102的算力来 加速训练AI模型。
举例来说,当AI模型的尺寸较小时,DPU101以及模型训练处理器103的算力足以满足训练该AI模型所需的算力,从而可以仅利用DPU101以及模型训练处理器103训练该 AI模型,并且该AI模型的训练效率可以达到较高的水平。
而当AI模型的尺寸较小时,训练该AI模型所需要求的算力较高,此时,可以综合DPU101、CPU102以及模型训练处理器103的算力,实现对AI模型的加速训练,以此使得 AI模型的训练效率能够达到较高的水平。
上述图2以及图3所示实施例中,主要介绍了利用DPU101(以及CPU102)来协助模型训练处理器103加速AI模型训练的实现过程,实际应用时,当DPU101的算力较高时,DPU101可以同时为多个模型训练处理器103提供加速AI模型训练的服务。其中,DPU101、CPU102、以及该多个模型训练处理器103,可以部署于同一计算节点,如图4所示,此时,DPU101可以与该计算节点中的多个模型训练处理器103通过系统总线进行耦合,并为该多个模型训练处理器103提供模型训练数据。或者,DPU101、CPU102、以及多个模型训练处 理器103可以部署于不同的计算节点,如图5所示,DPU101、CPU102、以及至少一个模型 训练处理器103部署于计算节点1中,其余模型训练处理器103可以分别部署于计算节点2 以及计算节点3,并且,计算节点2以及计算节点3中分别还包括CPU以及其它硬件(图5 中未示出)。此时,DPU101可以通过PCIe总线、CXL总线、NVMe总线中的至少一种总 线(或者其它总线)与多个计算节点中的模型训练处理器103进行耦合。并且,该多个模 型训练处理器103可以是相同类型的处理器,如均为GPU等;或者,该多个模型训练处理 器103可以包括多个不同类型的处理器,如包括GPU、NPU、TPU等。
下面,结合图5所述的系统架构,对本申请实施例提供的又一种数据处理方法进行示 例性说明。参见图6,该方法具体可以包括:
S601:DPU101接收到针对AI模型的训练指令。
S602:DPU101根据该训练指令,从存储设备104中获取作为模型训练样本的图像数据, 该图像数据包括多个编码图像。
在图5所示的系统架构中,可以是由任意计算节点上的CPU向DPU101下发训练指令, 或者,图5所示的多个计算节点中可以存在代理节点,该代理节点可以负责与系统外部进 行交互,如可以接收用户通过客户端下发的训练AI模型的指示信息,以及向该客户端呈现 训练完成的AI模型等,从而由代理节点中的CPU向DPU101下发训练指令等。
本实施例中,多个计算节点中的模型训练处理器103可以实现对同一AI模型的分布式 训练,或者不同模型训练处理器103负责训练不同的AI模型。相应地,DPU101所接收到的训练指令,可以指示利用多个计算节点上的异构处理器,以便DPU101向该训练指令指 示的多个异构处理器提供经过图像数据变换操作的图像数据。另外,该训练指令还可以指 示用于作为AI模型训练样本的图像数据在存储设备104上的存储位置,以便DPU101基于 该训练指令中的存储位置,访问得到图像数据。
S603:DPU101对获取的图像数据执行图像解码操作,得到矩阵数据。
S604:DPU101对矩阵数据执行尺寸调整操作以及数据增强操作等图像数据变换操作, 得到模型训练数据(也即经过图像数据变换操作后的矩阵数据)。
本实施例中,步骤S603至步骤S604的具体实现过程,可参见前述实施例的相关之处 描述,在此不做赘述。
S605:DPU101将模型训练数据存储至DPU101中的共享缓存。
本实施例中,DPU101中可以配置有共享缓存,该共享缓存可以被多个计算节点所访问。 这样,DPU101在将经过图像数据变换操作后的矩阵数据写入共享缓存后,多个计算节点中 的模型训练处理器103可以从该共享缓存中获取到作为模型输入的矩阵数据。
或者,在其它可能的实施例中,DPU101也可以是通过逐个向计算节点发送经过图像数 据变换操作后的矩阵数据的方式,使得各个计算节点中的模型训练处理器103获取经过图 像数据变换操作后的矩阵数据。本实施例中,对于各个计算节点的模型训练处理器103获 取经过图像数据变换操作后的矩阵数据的具体实现方式,并不进行限定。
S606:多个计算节点中的模型训练处理器103基于共享缓存中的矩阵数据执行AI模型 的训练操作,完成AI模型的训练业务。
如此,利用DPU101对图像数据执行图像解码操作、图像数据变换操作,不仅可以减少执行该操作所需的耗时,而且,执行这些操作所生成的临时数据所占用的内存空间为DPU101的内存空间,这使得即使各个计算节点中的模型训练处理器103的本地内存的空间有限,模型训练处理器103也能具有足够的内存空间存储DPU101提供的矩阵数据以及利 用该矩阵数据对AI模型进行训练,从而模型训练处理器103可以采用更大的batch size对 AI模型进行迭代训练,实现AI模型的训练加速。
并且,图像数据执行图像解码操作、图像数据变换操作所生成的模型训练数据,可以 存储于DPU101的共享缓存中,这使得各个计算节点中的模型训练处理器103在迭代训练AI模型的过程中,模型训练处理器103在每轮迭代时可以直接从DPU101的共享缓存中读 取该模型训练数据,从而无需DPU101多次重复执行读取存储设备104中的图像数据、以 及对图像数据进行图像解码和图像数据变换操作的操作,这不仅可以降低资源消耗,还能 进一步加快该AI模型训练业务的处理效率。
另外,当图像数据的数量较大时,DPU101可以分批次读取该图像数据以及执行相应的 图像解码操作以及图像数据变换操作,这样,在模型训练处理器103利用当前批次的图像 数据对应的矩阵数据训练AI模型时,DPU101可以从存储设备104中继续读取下一批次的 图像数据并执行图像解码和图像数据变换操作,以便于模型训练处理器103在完成一次AI 模型过程后,能够及时获得下一批次的模型训练数据继续训练AI模型,从而通过将图像解 码操作、图像数据变换操作与模型训练操作并行化执行,可以实现进一步加快AI模型的训 练效率。
值得注意的是,图6所示的数据处理方法仅作为一种示例,并不用于限定DPU101为一个或者多个模型训练处理器103提供加速训练AI模型的过程进行限定。
比如,在其它可能的实施例中,多个模型训练处理器103可以部署于同一计算节点, 从而DPU101中的共享缓存中的矩阵数据可以允许被多个模型训练处理器103所访问,用 于实现为多个模型训练处理器103提供加速AI模型训练的服务。
又比如,在图7所示的数据处理系统700中,可以基于多个DPU101构建存储空间更大的共享缓存池,该共享缓存池可以包括多个DPU101中的共享缓存,并且,任意DPU101 对获取到的图像数据执行图像解码操作(以及图像数据变换操作)后,可以将得到的模型 训练数据写入该共享缓存池中进行存储,并支持多个计算节点中的模型训练处理器103访 问该共享缓存池中的模型训练数据,以此基于该多个DPU101进一步扩展模型训练处理器 103的算力,实现进一步提高AI模型训练的效率。其中,图7所示的数据处理系统700是 以DPU独立于计算节点进行部署为例进行示例性说明,在其它可能的实现方式中,每个计 算节点中可以包括CPU、模型训练处理器以及至少一个DPU,从而可以基于多个计算节点 中的多个DPU所提供的算力,进一步加速各个模型训练处理器103的AI模型训练过程。 并且,基于多个DPU中的缓存,可以实现跨计算节点构建共享缓存池。或者,图7中所示 的多个DPU101可以位于同一计算节点,如均位于计算节点1等,从而可以利用计算节点1 中的多个DPU101不仅可以计算节点1的AI模型训练过程,也能通过共享缓存池,为计算 节点2以及计算节点3提供加速AI模型训练的服务。
再比如,在图8所示的数据处理系统800中,每个DPU101可以负责对至少一个模型训练处理器103提供加速AI模型训练的服务,如DPU101-1用于为计算节点1中的模型训 练处理器103提供服务,DPU101-2用于为计算节点2中的模型训练处理器103提供服务,DPU101-3用于为计算节点3中的模型训练处理器103提供服务等,并且不同DPU101之间 可以进行数据交互。这样,当DPU101-2在获取到用于训练AI模型的图像数据并对该图像 数据执行图像解码操作以及图像数据变换操作后,可以将得到的模型训练数据共享给 DPU101-1以及DPU101-3。这样,在DPU101-2该将该模型训练数据输出给计算节点2中 的模型训练处理器103进行AI模型训练时,DPU101-1可以将模型训练数据输出给计算节 点1中的模型训练处理器103,DPU101-3可以将模型训练数据输出给计算节点3中的模型 训练处理器103,以此实现加速训练各个计算节点中的AI模型。
再比如,在其它可能的数据处理系统中,多个DPU以及多个模型训练处理器均可以部 署于同一计算节点中,并且,每个DPU可以负责对至少一个模型训练处理器提供加速AI模型训练的服务。以数据处理系统包括DPU1、DPU2、模型训练处理器1以及模型训练处 理器2为例。DPU1在为模型训练处理器1提供加速AI模型训练的服务时,可以对获取图 像数据进行图像解码(以及图像数据变换)等操作,得到模型训练数据。然后,DPU1不仅 可以将该模型训练数据输出给模型训练处理器1,以使得模型训练处理器1基于该模型训练 数据训练AI模型,而且,DPU1还可以将该模型训练数据输出给DPU2,并由DPU2将该 模型训练数据提供给模型训练处理器2,以使得模型训练处理器2也能基于该模型训练数据 训练其上的AI模型。当然,数据处理系统中还包括CPU等硬件,在此不再赘述。
上述图4、图5、图7以及图8所示的数据处理系统仅作为本申请实施例提供的一些示 例性说明,并不用于限定数据处理系统的具体实现。
上文中结合图1至图8,详细描述了本申请所提供的数据处理方法,下面将结合图9至 图12,分别描述根据本申请所提供的DPU以及芯片系统。
与上述方法同样的发明构思,本申请实施例还提供一种数据处理装置。参见图9,为本 申请实施例提供的一种DPU900的结构示意图,图9所示的DPU900,例如可以是上述各实 施例中的DPU101,DPU900分别与第一CPU、第一模型训练处理器通过系统总线耦合,或者DPU900与第一模型训练处理器是一个训练卡上的不同芯片。如图9所示,DPU900包括:
通信接口901,用于获取图像数据,所述图像数据包括多个编码图像;
处理芯片902,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练数 据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中 的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型 训练操作;
输出接口电路903,用于输出所述模型训练数据,所述模型训练数据用于供所述第一模 型训练处理器执行所述训练操作集合中的操作,或者,所述模型训练数据用于供所述第一 CPU以及所述第一模型训练处理器执行所述训练操作集合中的操作。
在一种可能的实施方式中,所述图像处理操作集合还包括图像数据变换操作,所述处 理芯片902,用于:
对所述图像数据执行所述图像解码操作,得到矩阵数据;
对所述矩阵数据执行所述图像数据变换操作,得到所述模型训练数据。
在一种可能的实施方式中,所述训练操作集合还包括图像数据变换操作,所述模型训 练数据用于被所述第一CPU执行所述图像数据变换操作并得到临时数据,所述临时数据用 于被所述第一模型训练处理器执行所述模型训练操作。
在一种可能的实施方式中,其特征在于,所述通信接口901,用于:
获取所述第一模型训练处理器输出的人工智能AI模型;
向本地或者远端存储设备发送所述AI模型,所述AI模型通过文件格式或者键值KV格式把所述AI模型存储于所述存储设备中。
在一种可能的实施方式中,所述输出接口电路903,还用于向DPU910输出所述模型训 练数据;所述DPU910分别与第二CPU、第二模型训练处理器通过系统总线耦合,或者所述DPU910与所述第二模型训练处理器是一个训练卡上的不同芯片,所述DPU910用于: 接收所述模型训练数据;向所述第二模型训练处理器输出所述模型训练数据,所述模型训 练数据用于被所述第二模型训练处理器执行所述训练操作集合中的操作。
此外,本申请实施例还提供了另一种DPU,如图10所示。其中,图10所示的DPU1000分别与中央处理器CPU、多个模型训练处理器通过系统总线耦合,或者所述DPU1000与所 述多个模型训练处理器是一个训练卡上的不同芯片,所述数据处理装置1000包括:
通信接口1001,用于获取图像数据,所述图像数据包括多个编码图像;
处理芯片1002,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练 数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合 中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模 型训练操作;
数据读写接口1003,用于将所述模型训练数据写入供所述多个模型训练处理器访问的 共享缓存,所述共享缓存中的模型训练数据用于供所述多个模型训练处理器执行所述训练 操作集合中的操作,或者,所述共享缓存中的模型训练数据用于供所述CPU以及所述多个 模型训练处理器执行所述训练操作集合中的操作。
在另一个实施例中,图10所示的DPU1000包括:
通信接口1001,用于获取图像数据,所述图像数据包括多个编码图像;
处理芯片1002,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练 数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合 中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模 型训练操作;
数据读写接口1003,用于将所述模型训练数据写入基于多个DPU中的缓存所构建的共 享缓存池,所述多个DPU包括所述DPU1000,所述共享缓存池中的模型训练数据用于供所 述模型训练处理器执行所述训练操作集合中的操作,或者,所述共享缓存池中的模型训练 数据用于供所述CPU以及所述模型训练处理器执行所述训练操作集合中的操作。
与上述方法同样的发明构思,本申请实施例还提供一种数据处理装置,该数据处理装 置应用于DPU,如上述各实施例中的DPU101,该DPU分别与CPU、模型训练处理器通过系统总线耦合,或者DPU与模型训练处理器是一个训练卡上的不同芯片。数据处理装置包括:
通信模块,用于获取图像数据,所述图像数据包括多个编码图像;
处理模块,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据, 其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操 作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练 操作;
输出模块,用于输出所述模型训练数据,所述模型训练数据用于供所述模型训练处理 器执行所述训练操作集合中的操作,或者,所述模型训练数据用于供所述CPU以及所述模 型训练处理器执行所述训练操作集合中的操作。
在一种可能的实施方式中,所述图像处理操作集合还包括图像数据变换操作,所述处 理模块,用于:
对所述图像数据执行所述图像解码操作,得到矩阵数据;
对所述矩阵数据执行所述图像数据变换操作,得到所述模型训练数据。
在一种可能的实施方式中,所述训练操作集合还包括图像数据变换操作,所述模型训 练数据用于被所述CPU执行所述图像数据变换操作并得到临时数据,所述临时数据用于被 所述模型训练处理器执行所述模型训练操作。
在一种可能的实施方式中,其特征在于,所述通信模块,用于:
获取所述模型训练处理器输出的人工智能AI模型;
向本地或者远端存储设备发送所述AI模型,所述AI模型通过文件格式或者键值KV格式把所述AI模型存储于所述存储设备中。
在一种可能的实施方式中,所述输出模块,还用于向其它DPU输出所述模型训练数据; 所述其它DPU分别与其它CPU、其它模型训练处理器通过系统总线耦合,或者所述其它DPU与所述其它模型训练处理器是一个训练卡上的不同芯片,所述其它DPU用于:接收所 述模型训练数据;向所述其它模型训练处理器输出所述模型训练数据,所述模型训练数据 用于被所述其它模型训练处理器执行所述训练操作集合中的操作。
此外,本申请实施例还提供了另一种数据处理装置,该数据处理装置应用于数据处理 单元DPU,所述DPU分别与中央处理器CPU、多个模型训练处理器通过系统总线耦合,或者所述DPU与所述多个模型训练处理器是一个训练卡上的不同芯片,所述数据处理装置包括:
通信模块,用于获取图像数据,所述图像数据包括多个编码图像;
处理模块,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据, 其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操 作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练 操作;
数据写入模块,用于将所述模型训练数据写入供所述多个模型训练处理器访问的共享 缓存,所述共享缓存中的模型训练数据用于供所述多个模型训练处理器执行所述训练操作 集合中的操作,或者,所述共享缓存中的模型训练数据用于供所述CPU以及所述多个模型 训练处理器执行所述训练操作集合中的操作。
在另一个实施例中,数据处理装置应用于目标数据处理单元DPU,所述DPU分别与中 央处理器CPU、模型训练处理器通过系统总线耦合,或者所述目标DPU与所述模型训练处理器是一个训练卡上的不同芯片,所述数据处理装置包括:
通信模块,用于获取图像数据,所述图像数据包括多个编码图像;
处理模块,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据, 其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操 作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练 操作;
数据写入模块,用于将所述模型训练数据写入基于多个DPU中的缓存所构建的共享缓 存池,所述多个DPU包括所述目标DPU,所述共享缓存池中的模型训练数据用于供所述模 型训练处理器执行所述训练操作集合中的操作,或者,所述共享缓存池中的模型训练数据 用于供所述CPU以及所述模型训练处理器执行所述训练操作集合中的操作。
本申请实施例还提供一种DPU,如图11所示,DPU1100中可以包括通信接口1110、处理器1120。可选的,DPU1100中还可以包括存储器1130。其中,存储器1130可以设置 于DPU1100内部,还可以设置于DPU1100外部。示例性地,上述图3以及图4所示实施例 中DPU101执行的各个动作均可以由处理器1120实现。处理器1120可以通过通信接口1110 获取图像数据,并用于实现图2、图3以及图6中所执行的任一方法。在实现过程中,处理 流程的各步骤可以通过处理器1120中的硬件的集成逻辑电路或者软件形式的指令完成图2、 图3以及图6中执行的方法。为了简洁,在此不再赘述。处理器1120用于实现上述方法所 执行的程序代码可以存储在存储器1130中。存储器1130和处理器1120连接,如耦合连接 等。
本申请实施例的一些特征可以由处理器1120执行存储器1130中的程序指令或者软件代 码来完成/支持。存储器1130上在加载的软件组件可以从功能或者逻辑上进行概括,例如, 图9所示的处理芯片902、输出接口电路903,又例如图10所示的处理芯片1002、数据读 写接口1003。而图9所示的通信接口901、图10所示的通信接口1001的功能可以由通信接口1110实现。
本申请实施例中涉及到的任一通信接口可以是电路、总线、收发器或者其它任意可以 用于进行信息交互的装置。比如DPU1100中的通信接口1110,示例性地,该其它装置可以 是与该DPU1100相连的设备等。
本申请实施例中涉及的处理器可以是通用处理器、数字信号处理器、专用集成电路、 现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件, 可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是 微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现 为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请实施例中的耦合是装置、模块或模块之间的间接耦合或通信连接,可以是电性, 机械或其它的形式,用于装置、模块或模块之间的信息交互。
处理器可能和存储器协同操作。存储器可以是非易失性存储器,比如硬盘或固态硬盘 等,还可以是易失性存储器,例如随机存取存储器。存储器是能够用于携带或存储具有指 令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
本申请实施例中不限定上述通信接口、处理器以及存储器之间的具体连接介质。比如 存储器、处理器以及通信接口之间可以通过总线连接。所述总线可以分为地址总线、数据 总线、控制总线等。
本申请实施例还提供一种芯片系统,如图12所示,芯片系统1200可以包括供电电路 1201以及处理电路1202,其中,供电电路1201用于对处理电路1202进行供电,处理电路用于执行如下操作步骤:
获取图像数据,所述图像数据包括多个编码图像;
对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,其中,处理所 述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操作,所述图像 处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练操作;
输出所述模型训练数据,所述模型训练数据用于供所述模型训练处理器执行所述训练 操作集合中的操作,或者,所述模型训练数据用于供所述CPU以及所述模型训练处理器执 行所述训练操作集合中的操作。
实际应用时,供电电路1201可以与处理电路1202位于同一个芯片内,或者,供电电路1201可以位于处理电路1202所在芯片之外的另一个芯片内。供电电路1201包括但不限于如下至少一个:供电子系统、电管管理芯片、功耗管理处理器或功耗管理控制电路。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储软 件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施 例提供的数据处理系统100执行的方法。所述计算机存储介质可以包括:U盘、移动硬盘、 只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、系统、存储介质 或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上 实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图 和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流 程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式 工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置 的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方 框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机 或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他 可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方 框或多个方框中指定的功能的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的 对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可 以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实 施例的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技 术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (27)
1.一种数据处理方法,其特征在于,数据处理单元DPU分别与中央处理器CPU、模型训练处理器通过系统总线耦合,或者所述DPU与所述模型训练处理器是一个训练卡上的不同芯片,所述方法包括:
所述DPU获取图像数据,所述图像数据包括多个编码图像;
所述DPU对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练操作;
所述DPU输出所述模型训练数据,所述模型训练数据用于供所述模型训练处理器执行所述训练操作集合中的操作,或者,所述模型训练数据用于供所述CPU以及所述模型训练处理器执行所述训练操作集合中的操作。
2.根据权利要求1所述的方法,其特征在于,所述DPU包括网络接口,所述DPU获取所述图像数据具体包括:
所述DPU通过有线网络或者无线网络获取所述图像数据。
3.根据权利要求2所述的方法,其特征在于,所述有线网络是以太网或者无线带宽网。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述DPU与存储设备连接,所述DPU获取图像数据具体包括:
所述DPU从所述存储设备获取所述图像数据。
5.根据权利要求4所述的方法,其特征在于,所述存储设备包括:
硬盘驱动器HDD、闪存介质驱动器、叠瓦式磁记录SMR、存储阵列、存储服务器中的一种或多种。
6.根据权利要求4或5所述的方法,其特征在于,所述存储设备与所述DPU之间的通信协议包括:小型计算机系统接口SCSI协议、串行连接小型计算机系统接口SAS协议、外围元件快速互连PCIe协议、通用串行总线USB协议、快速非易失性存储器NVMe协议中的一种或多种。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述DPU、CPU以及所述模型训练处理器位于同一个服务器。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述模型训练处理器为图形处理器GPU、神经网络处理器NPU、张量处理器TPU中的一种或者多种。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述系统总线包括外围元件快速互连PCIe总线、计算快速链接CXL总线、快速非易失性存储器NVMe总线中的一种或多种。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述图像处理操作集合还包括图像数据变换操作,所述DPU对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,包括:
所述DPU对所述图像数据执行所述图像解码操作,得到矩阵数据;
所述DPU对所述矩阵数据执行所述图像数据变换操作,得到所述模型训练数据。
11.根据权利要求1至9任一项所述的方法,其特征在于,所述训练操作集合还包括图像数据变换操作,所述模型训练数据用于被所述CPU执行所述图像数据变换操作并得到临时数据,所述临时数据用于被所述模型训练处理器执行所述模型训练操作。
12.根据权利要求1至11任一项所述的方法,其特征在于,所述方法还包括:
所述DPU获取所述模型训练处理器输出的人工智能AI模型;
所述DPU向本地或者远端存储设备发送所述AI模型,所述AI模型通过文件格式或者键值KV格式把所述AI模型存储于所述存储设备中。
13.根据权利要求1至12任一项所述的方法,其特征在于,所述DPU输出所述模型训练数据,包括:
所述DPU向其它DPU输出所述模型训练数据;
其中,所述其它DPU分别与其它CPU、其它模型训练处理器通过系统总线耦合,或者所述其它DPU与所述其它模型训练处理器是一个训练卡上的不同芯片,所述其它DPU用于接收所述模型训练数据,并向所述其它模型训练处理器输出所述模型训练数据,所述模型训练数据用于被所述其它模型训练处理器执行所述训练操作集合中的操作。
14.一种数据处理方法,其特征在于,数据处理单元DPU分别与中央处理器CPU、多个模型训练处理器通过系统总线耦合,或者所述DPU与所述多个模型训练处理器是一个训练卡上的不同芯片,包括:
所述DPU获取图像数据,所述图像数据包括多个编码图像;
所述DPU对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练操作;
所述DPU将所述模型训练数据写入供所述多个模型训练处理器访问的共享缓存,所述共享缓存中的模型训练数据用于供所述多个模型训练处理器执行所述训练操作集合中的操作,或者,所述共享缓存中的模型训练数据用于供所述CPU以及所述多个模型训练处理器执行所述训练操作集合中的操作。
15.一种数据处理方法,其特征在于,目标数据处理单元DPU分别与中央处理器CPU、模型训练处理器通过系统总线耦合,或者所述目标DPU与所述模型训练处理器是一个训练卡上的不同芯片,包括:
所述目标DPU获取图像数据,所述图像数据包括多个编码图像;
所述目标DPU对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练操作;
所述目标DPU将所述模型训练数据写入基于多个DPU中的缓存所构建的共享缓存池,所述多个DPU包括所述目标DPU,所述共享缓存池中的模型训练数据用于供所述模型训练处理器执行所述训练操作集合中的操作,或者,所述共享缓存池中的模型训练数据用于供所述CPU以及所述模型训练处理器执行所述训练操作集合中的操作。
16.一种第一数据处理单元DPU,其特征在于,所述第一DPU分别与第一中央处理器CPU、第一模型训练处理器通过系统总线耦合,或者所述第一DPU与所述第一模型训练处理器是一个训练卡上的不同芯片,所述第一DPU包括:
通信接口,用于获取图像数据,所述图像数据包括多个编码图像;
处理芯片,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练操作;
输出接口电路,用于输出所述模型训练数据,所述模型训练数据用于供所述第一模型训练处理器执行所述训练操作集合中的操作,或者,所述模型训练数据用于供所述第一CPU以及所述第一模型训练处理器执行所述训练操作集合中的操作。
17.根据权利要求16任一项所述的第一DPU,其特征在于,所述图像处理操作集合还包括图像数据变换操作,所述处理芯片,用于:
对所述图像数据执行所述图像解码操作,得到矩阵数据;
对所述矩阵数据执行所述图像数据变换操作,得到所述模型训练数据。
18.根据权利要求16或17所述的第一DPU,其特征在于,所述训练操作集合还包括图像数据变换操作,所述模型训练数据用于被所述第一CPU执行所述图像数据变换操作并得到临时数据,所述临时数据用于被所述第一模型训练处理器执行所述模型训练操作。
19.根据权利要求16至18任一项所述的第一DPU,其特征在于,所述通信接口,用于:
获取所述第一模型训练处理器输出的人工智能AI模型;
向本地或者远端存储设备发送所述AI模型,所述AI模型通过文件格式或者键值KV格式把所述AI模型存储于所述存储设备中。
20.根据权利要求16至19任一项所述的第一DPU,其特征在于,所述输出接口电路,还用于向第二DPU输出所述模型训练数据;
所述第二DPU分别与第二CPU、第二模型训练处理器通过系统总线耦合,或者所述第二DPU与所述第二模型训练处理器是一个训练卡上的不同芯片,所述第二DPU用于:
接收所述模型训练数据;
向所述第二模型训练处理器输出所述模型训练数据,所述模型训练数据用于被所述第二模型训练处理器执行所述训练操作集合中的操作。
21.一种数据处理单元DPU,其特征在于,所述DPU分别与中央处理器CPU、多个模型训练处理器通过系统总线耦合,或者所述DPU与所述多个模型训练处理器是一个训练卡上的不同芯片,所述DPU包括:
通信接口,用于获取图像数据,所述图像数据包括多个编码图像;
处理芯片,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练操作;
数据读写接口,用于将所述模型训练数据写入供所述多个模型训练处理器访问的共享缓存,所述共享缓存中的模型训练数据用于供所述多个模型训练处理器执行所述训练操作集合中的操作,或者,所述共享缓存中的模型训练数据用于供所述CPU以及所述多个模型训练处理器执行所述训练操作集合中的操作。
22.一种目标数据处理单元DPU,其特征在于,所述目标DPU分别与中央处理器CPU、模型训练处理器通过系统总线耦合,或者所述目标DPU与所述模型训练处理器是一个训练卡上的不同芯片,所述目标DPU包括:
通信接口,用于获取图像数据,所述图像数据包括多个编码图像;
处理芯片,用于对所述图像数据执行图像处理操作集合中的操作,得到模型训练数据,其中,处理所述图像数据的操作包括图像处理操作集合中的操作以及训练操作集合中的操作,所述图像处理操作集合至少包括图像解码操作,所述训练操作集合至少包括模型训练操作;
数据读写接口,用于将所述模型训练数据写入基于多个DPU中的缓存所构建的共享缓存池,所述多个DPU包括所述目标DPU,所述共享缓存池中的模型训练数据用于供所述模型训练处理器执行所述训练操作集合中的操作,或者,所述共享缓存池中的模型训练数据用于供所述CPU以及所述模型训练处理器执行所述训练操作集合中的操作。
23.一种数据处理单元DPU,其特征在于,所述DPU用于执行权利要求1至14中任一项所述DPU执行的方法。
24.一种数据处理系统,其特征在于,所述数据处理系统包括权利要求1至14中任一项所述的DPU、CPU以及模型训练处理器。
25.一种芯片系统,其特征在于,所述芯片系统包括供电电路以及处理电路,所述供电电路用于对所述处理电路进行供电,所述处理电路用于执行权利要求1至14中任一项所述DPU执行的方法。
26.一种计算机可读存储介质,其特征在于,包括指令,所述指令用于实现权利要求1至14中任一项所述DPU执行的方法。
27.一种包含指令的计算机程序产品,其特征在于,当其在数据处理单元DPU上运行时,使得DPU执行如权利要求1至14中任一项所述DPU执行的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/078189 WO2023207295A1 (zh) | 2022-04-29 | 2023-02-24 | 数据处理方法、数据处理单元、系统及相关设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210473780 | 2022-04-29 | ||
CN2022104737806 | 2022-04-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117011117A true CN117011117A (zh) | 2023-11-07 |
Family
ID=88560640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210934646.1A Pending CN117011117A (zh) | 2022-04-29 | 2022-08-04 | 数据处理方法、数据处理单元、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117011117A (zh) |
-
2022
- 2022-08-04 CN CN202210934646.1A patent/CN117011117A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
CN109388595B (zh) | 高带宽存储器系统以及逻辑管芯 | |
US20230297271A1 (en) | Nand-based storage device with partitioned nonvolatile write buffer | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
US20210320967A1 (en) | Edge Server with Deep Learning Accelerator and Random Access Memory | |
CN111176731B (zh) | 一种提高芯片计算性能的方法、系统、设备及介质 | |
US11138106B1 (en) | Target port with distributed transactions | |
US20210400286A1 (en) | Video Compression in Removable Storage Device having Deep Learning Accelerator and Random Access Memory | |
CN116541227B (zh) | 故障诊断方法、装置、存储介质、电子装置及bmc芯片 | |
US20240143392A1 (en) | Task scheduling method, chip, and electronic device | |
WO2023207295A1 (zh) | 数据处理方法、数据处理单元、系统及相关设备 | |
CN114490023A (zh) | 一种基于arm和fpga的高能物理可计算存储设备 | |
CN116257471A (zh) | 一种业务处理方法及装置 | |
CN115079936A (zh) | 一种数据写入方法及装置 | |
WO2023134735A1 (zh) | 计算设备、数据处理方法、系统及相关设备 | |
WO2023124428A1 (zh) | 芯片、加速卡以及电子设备、数据处理方法 | |
CN117011117A (zh) | 数据处理方法、数据处理单元、系统及相关设备 | |
CN115344393A (zh) | 业务处理方法及相关设备 | |
CN112564924B (zh) | 计算机扩展卡及区块链终端设备 | |
CN111475295B (zh) | 软硬件分层管理方法、装置及计算机可读存储介质 | |
CN117591450B (zh) | 一种数据处理系统、方法、设备及介质 | |
WO2023134588A1 (zh) | 计算系统、方法、装置及加速设备 | |
CN212873459U (zh) | 一种用于数据压缩存储的系统 | |
US11907144B1 (en) | Early semaphore update | |
US11748253B1 (en) | Address generation for page collision prevention in memory regions |
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 |