CN114866534B - 一种图像处理方法、装置、设备及介质 - Google Patents
一种图像处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114866534B CN114866534B CN202210465766.1A CN202210465766A CN114866534B CN 114866534 B CN114866534 B CN 114866534B CN 202210465766 A CN202210465766 A CN 202210465766A CN 114866534 B CN114866534 B CN 114866534B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- image processing
- processing unit
- image
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 187
- 238000004364 calculation method Methods 0.000 claims abstract description 92
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 238000005516 engineering process Methods 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 15
- 230000001360 synchronised effect Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 25
- 108091006146 Channels Proteins 0.000 description 18
- 230000004044 response Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 238000011176 pooling Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Facsimiles In General (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种图像处理方法、装置、设备及介质,涉及计算机技术领域,该方法应用于基于远程直接数据存取技术的图像处理单元,包括:通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,将原始图像数据和计算指令分别存储至本地第一指定地址和第二指定地址;通过网络链接获取数据端发送的第一信息以启动计算核心,基于原始图像数据和计算指令获取图像计算结果,将图像计算结果所在的本地目标地址发送至数据端;通过网络链接获取数据端返回的与目标地址绑定的第三指定地址,将目标地址上的计算结果发送至位于所述数据端的第三指定地址上。通过网络链路获取数据端发送数据和地址提高了数据端运算资源的利用率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种图像处理方法、装置、设备及介质。
背景技术
目前,当保存有待处理图像数据的数据端需要通过图像处理单元(GPU,GraphicsProcessing Unit)进行图像数据的处理操作时,可以通过预先在数据端与图像处理单元之间建立的PCIe(Peripheral Component Interconnect Express,传输控制协议)通道,并基于CCI-P协议(Core Cache Interface,核缓存接口)的MMIO(Memory Map Input/Output,内存映射输入/输出)功能,将待处理图像数据传输至图像处理单元进行处理。例如,预先收集了各原始图像数据的主机可以通过PCIe通道并基于MMIO功能将原始图像数据传输至与图像处理单元进行图像处理。但是,由于在采用PCIe通道以及MMIO功能进行数据传输时,发送侧和接收侧仅能被配置为一对一的绑定关系,如此一来,便会导致数据端只能与一个图像处理单元进行交互,从而使得原本可以承载与多个图像处理单元的交互任务的数据端的运算资源得不到充分的利用,进而严重降低了数据端运算资源的利用率。
综上所述,如何提高数据端运算资源的利用率是当前亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种图像处理方法、装置、设备及介质,能够提高数据端运算资源的利用率。其具体方案如下:
第一方面,本申请公开了一种图像处理方法,应用于基于远程直接数据存取技术的图像处理单元,包括:
通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和所述计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;
通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;
通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。
可选的,所述通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址之前,还包括:
通过网络链接获取所述数据端发送的第一寄存器的寄存器地址,并基于所述第一寄存器的寄存器地址读取所述第一寄存器对应的第一目标数值;
将所述第一目标数值发送至所述数据端,以便所述数据端基于所述第一目标数值确定所述图像处理单元处于空闲状态时,发送所述原始数据、所述计算指令、所述第一指定地址和所述第二指定地址至所述图像处理单元。
可选的,所述通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,包括:
通过网络链接获取所述数据端发送的第二寄存器的寄存器地址,并基于所述第二寄存器的寄存器地址确定出相应的所述第二寄存器,然后对与所述第二寄存器对应的第二目标数值进行调整,以利用调整后的所述第二目标数值启动所述计算核心。
可选的,所述将所述目标地址发送至所述数据端,包括:
将所述目标地址对应的首地址和长度信息发送至所述数据端。
可选的,所述通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和所述计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中,包括:
通过网络链接获取数据端发送的原始数据、计算指令、第一指定地址和第二指定地址,并基于所述原始数据、所述计算指令、所述第一指定地址和所述第二指定地址组成第一直接存储器访问描述符;
根据所述第一直接存储器访问描述符将所述原始数据和所述计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中。
可选的,所述通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存,包括:
通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并基于所述目标地址和所述第三指定地址组成第二直接存储器访问描述符;
根据所述第二直接存储器访问描述符从所述本地的所述目标地址中读取所述图像计算结果,并将所述图像计算结果发送至所述数据端的所述第三指定地址上进行保存。
可选的,所述图像处理单元通过网络链接并利用基于自定义协议创建的数据帧与所述数据端进行信息传输。
第二方面,本申请公开了一种图像处理装置,应用于基于远程直接数据存取技术的图像处理单元,包括:
第一存储模块,用于通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;
计算模块,用于通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;
第二存储模块,用于通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。
第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述公开的图像处理方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的图像处理方法。
可见,本申请通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。由此可见,本申请中数据端与图像处理单元通过网络链路进行图像数据传输,与现有的通过PCIe通道并结合CCI-P协议的MMIO功能进行图像数据传输相比,通过网络链路进行图像数据传输的方式不存在数据端与图像处理单元之间的物理绑定,因此实现了数据端与图像处理单元之间一对多或多对一的控制和运行,由此实现了图像处理单元的资源的规模化和池化,另外,在一个数据端承载与多个图像处理单元的交互任务的情况下,提高了数据端运算资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种图像处理方法流程图;
图2为本申请提供的一种基于Vortex的图像处理单元云平台示意图;
图3为本申请提供的一种远程直接数据存取模块示意图;
图4为本申请提供的一种自定义协议的PAYLOAD字段示意图;
图5为传统的网络传输过程与远程直接数据存取的传输过程示意图;
图6为本申请提供的一种具体的图像处理方法流程图;
图7为现有的基于Vortex的图像处理单元示意图;
图8为本申请提供的一种图像处理装置结构图;
图9为申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前,由于在采用PCIe通道以及MMIO功能进行数据传输时,发送侧和接收侧仅能被配置为一对一的绑定关系,如此一来,便会导致数据端只能与一个图像处理单元进行交互,从而使得原本可以承载与多个图像处理单元的交互任务的数据端的运算资源得不到充分的利用,进而严重降低了数据端运算资源的利用率。
为了克服上述问题,本申请提供了一种图像处理方案,能够提高数据端运算资源的利用率。
参见图1所示,本申请实施例公开了一种图像处理方法,应用于基于远程直接数据存取技术的图像处理单元,该方法包括:
步骤S11:通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中。
本申请实施例中,数据端包括其它图像处理单元和主机;由于是通过网络链接,因此获取数据端发送的信息时需要通过图像处理单元本地的MAC(Media Access Control或者Medium Access Control),媒体访问控制);存储完成后发送表示存储完成的第一响应帧发送至数据端,以便数据端发送用于控制所述图像处理单元内的计算核心启动的第一信息,具体的利用图像处理单元中的远程直接数据存取模块进行发送。
本申请实施例中,通过网络链接,并利用图像处理单元中的RDMA(Remote DirectMemory Access,远程直接数据存取)模块获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并利用图像处理单元中的DMA(Direct Memory Access,直接存储器访问)控制器将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中。具体的,利用图像处理单元中的远程直接数据存取模块中的qp处理模块获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址。
本申请实施例中,通过网络链接利用图像处理单元中的远程直接数据存取模块获取数据端发送的原始数据、计算指令、第一指定地址和第二指定地址,并基于所述原始数据、所述计算指令、所述第一指定地址和所述第二指定地址组成第一直接存储器访问描述符;利用图像处理单元中的直接存储器访问控制器根据所述第一直接存储器访问描述符将所述原始数据和所述计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中。需要指出的是,具体根据远程直接数据存取模块中的桥接模块产生第一直接存储器访问描述符。需要指出的是,本地的所述第一指定地址和所述第二指定地位于本地的双倍速率同步动态随机存储器中,具体的,远程直接数据存取模块也会获取原始图像数据和计算指令在数据端的地址。
本申请实施例中,提出了一种基于远程直接数据存取的图像处理单元云平台,首先利用HDL(Hardware Description Language)语言开发的一些模块,例如远程直接数据存取模块、设备控制模块等,解耦了图像处理单元板卡与数据端之间的PCIe物理绑定,实现基于远程直接数据存取的图像处理单元计算资源的规模化和池化;如图2所示,为基于Vortex的图像处理单元云平台,图中,Vortex计算核心是从现有方法中剥离出来的模块,DDR(双倍速率同步动态随机存储器)模块为通用的模块,MAC为传统的网络控制器,负责链路层和物理层的协议处理,将处理后的数据进一步发送给远程直接数据存取模块处理,远程直接数据存取模块负责处理传输层和网络层的TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议),然后根据的传输层的PAYLOAD(负载)的内容进行进一步处理,例如向设备控制模块读写寄存器、向直接存储器访问模块发送直接存储器访问描述符等;设备控制模块中包含一些寄存器,用于启动Vortex核心计算模块,或者保存Vortex核心计算模块计算完成的状态等,设备控制模块主要包含供上层主机读写的寄存器,以及控制Vortex核心计算模块,并接收来自Vortex的一些状态信号;其中所述状态信息可以为计算模块计算完成;图中主机(HOST)端的网卡也均支持远程直接数据存取功能。
本申请实施例中,参见图3所示,通过网络链接,并利用图像处理单元中的MAC模块获取数据端发送数据帧,并将数据帧发送至图像处理单元中的远程直接数据存取模块,利用远程直接数据存取模块中的预处理模块和校验模块判断第一数据搬移类数据帧中的PAYLOAD字段是否正确和可用,然后将自定义协议的PAYLOAD字段发送至远程直接数据存取模块中的qp处理模块;然后利用远程直接数据存取模块中的qp处理模块将自定义协议的PAYLOAD字段进行解析,以得到帧类型、SAddr、DAddr和transfer-length等信息,并将解析后的信息发送至远程直接数据存取模块中的桥接模块;桥接模块将解析后信息组成直接存储器访问描述符,发送至图像处理单元的直接存储器访问控制器,直接存储器访问控制器根据直接存储器访问描述符完成相应工作后,利用qp处理模块产生自定义协议的响应帧,并将响应帧发送至带优先级的发包模块,进行TCP/IP等更底层协议的组包,最终发送给MAC模块(传统网络控制器模块),然后MAC模块将组包至数据端,以便数据端继续发送数据帧。
需要指出的是,远程直接数据存取模块基于RoCEv2(RDMA over ConvergedEthernet v2)的标准开发,大致结构如图3所示,(MAC模块不属于远程直接数据存取模块,此处仅为表示数据流方便);需要指出的是,如果是数据搬移类数据帧,则将数据帧发送至qp处理模块进行处理,如果是非数据搬移类帧,则通过指令帧处理模块进行处理;带优先级的发包模块处理响应帧时,优先处理非数据搬移类帧对应的响应帧。
需要指出的是,如图3所示,利用远程直接数据存取模块中的预处理模块和校验模块判断第一数据搬移类数据帧中的PAYLOAD字段是否正确和可用是利用数据帧中的CRC(Cyclic Redundancy Check,循环冗余校验)进行校验;根据帧类型、SAddr、DAddr和transfer-length等信息可以确定出数据帧是数据搬移类数据帧还是非数据搬移类数据帧,以及述读操作还是写操作,并确定出发送方地址和接收方地址以及传输的payload的长度。需要指出的是,在本申请实施例中,为数据搬移类数据帧、写操作、接收方地址为数据端的地址,接收方地址为上述第一指定地址和第二指定地址,payload中的数据为原始图像数据和计算程序;产生的响应帧包括帧序号和分包序号等信息;直接存储器访问控制器根据直接存储器访问描述符完成相应工作,具体为:将原始图像数据和计算程序分别存储至本地的第一指定地址和第二指定地址中;以便数据端继续发送数据帧中的数据帧为用于启动计算核心的数据搬移类数据帧。
需要指出的是,所述图像处理单元通过网络链接并利用基于自定义协议创建的数据帧与所述数据端进行信息传输。具体的,远程直接数据存取模块在传输层的UDP(UserDatagram Protocol,用户数据报协议)协议的PAYLOAD字段新增了一层自定义协议,用于实现基于PCIe的CCI-P协议的功能,如图4所示。其中D.MAC、S.MAC、TYPE、IP(InternetProtocol)包头、UDP报文头和FCS(Frame Check Sequence,帧校验序列)均属于标准以太网协议栈部分的内容,远程直接数据存取模块在其PAYLOAD字段实现自定义的协议;此外,在远程直接数据存取模块中,还存在一个可由主机动态配置的路由表,用于保存可以与该图像梳理单元板卡建立以太网链接的数据端(主机或其他图像处理单元)的IP地址、MAC地址等信息。需要指出的是,自定义协议中,TYPE为版本说明字段。在现有方法中,主机对FPGA(Field Programmable Gate Array,现场可编程与门阵列)的MMIO操作的类型可以分为:与数据搬移无关的指令帧(例如查询FPGA状态、启动计算核心等)和与数据搬移有关的数据帧,本方案也具有这两种。使用自定义协议来实现CCI-P协议的功能,其字段的含义分别为:帧类型主要分为是否与数据搬移相关、读写类型等等;帧序号代表了第几个帧;分包序号代表了某个帧的第几个分包,Sid和Did表示了发送方和接收方的id(Identity document),用于身份识别;SAddr和DAddr代表了发送方的地址和接收方的地址,结合标识位,可判断该地址是普通的DDR地址还是寄存器地址;transfer-length表示本次需要传输的Payload的长度;CRC(Cyclic Redundancy Check,循环冗余校验)用于校验。
本申请实施例中,实现了通过发送数据搬移类的帧,将数据从数据端的双倍速率同步动态随机存储器发送到图像处理单元的双倍速率同步动态随机存储器的指定地址中;也实现了通过发送数据搬移类的帧,将编译好的二进制图像处理单元程序指令,存入图像处理单元的双倍速率同步动态随机存储器的指定地址中;至此,图像处理端已经获取了计算所需的数据和程序指令。
步骤S12:通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端。
本申请实施例中,发送到数据端后以便数据端发送表示读取计算结果的数据帧。
本申请实施例中,通过网络链接,利用图像处理单元中的远程直接数据存取模块获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,利用远程直接数据存取模块将目标地址发送至所述数据端;具体的,是利用图像处理单元中的远程直接数据存取模块中的指令帧处理模块获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息;利用桥接模块通过第一信息启动计算核心,利用指令帧处理模块将目标地址发送至所述数据端。
需要指出的是,得到计算结果并存储到目标地址后,利用计算核心通知设备控制器,再由设备控制器通知远程直接数据存取模块,然后利用远程直接数据存取模块将目标地址发送至所述数据端。需要指出的是,利用远程直接数据存取模块将目标地址发送至所述数据端为:利用远程直接数据存取模块产生包括目标地址的表示计算完成的响应帧,然后发送至数据端;其中,所述目标地址位于本地双倍速率同步动态随机存储器中。
需要指出的是,所述将所述目标地址发送至所述数据端,具体为:将所述目标地址对应的首地址和长度信息发送至所述数据端;其中,如图4所示,首地址和长度信息记载在响应帧的自定义协议的Payload中。
本申请实施例中,通过网络链接获取所述数据端发送的第二寄存器的寄存器地址,并基于所述第二寄存器的寄存器地址确定出相应的所述第二寄存器,然后对与所述第二寄存器对应的第二目标数值进行调整,以利用调整后的所述第二目标数值启动所述计算核心。具体的,利用桥接模块根据所述第二寄存器的寄存器地址确定第二寄存器,并调整设备控制模块中的第二寄存器对应的第二目标数值,将完成调整的信息返回给指令帧处理模块,以便指令帧处理模块发送表示完成调整的响应帧至数据端。
本申请实施例中,如图3所示,通过网络链接,并利用图像处理单元中的MAC模块获取数据端发送数据帧,(由于数据帧为非搬移类数据帧,因此需要将数据帧发送至指令帧处理模块进行处理)并将数据帧发送至图像处理单元中的远程直接数据存取模块,利用远程直接数据存取模块中的预处理模块和校验模块判断第一数据搬移类数据帧中的PAYLOAD(负载)字段是否正确和可用,然后将自定义协议的PAYLOAD字段发送至远程直接数据存取模块中的指令帧处理模块;然后利用远程直接数据存取模块中的指令帧处理模块将自定义协议的PAYLOAD字段进行解析,以得到DAddr和读写类型等信息,并将解析后的信息发送至远程直接数据存取模块中的桥接模块;桥接模块根据解析后信息中的寄存器地址,确定出第二寄存器,确定第二寄存器对应的第二目标数,然后将数值发送至指令帧处理模块,指令帧处理模块将结果按照自定义协议的格式组包,指令帧处理模块将自定义协议格式的包,发送给带优先级的发包模块以进行进一步的组包,即加上TCP/IP协议等底层协议所需要的报头,发包模块的包最后发送给MAC模块,进行链路层和物理层协议的封装处理后发送至数据端。以便数据端继续发送用于读取图像计算结果的数据帧。
需要指出的是,在本申请实施例中,通过网络链接,并利用图像处理单元中的MAC模块获取数据端发送包括用于控制所述图像处理单元内的计算核心启动的第一信息的数据帧,并将数据帧转发给远程直接数据存取模块,相应过程如上所述,需要指出的是,利用远程直接数据存取模块中的指令帧处理模块将自定义协议的PAYLOAD字段进行解析,以得到的信息中,帧类型为非数据搬移类数据帧和写操作,地址为本地的寄存器地址。
步骤S13:通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。
本申请实施例中,通过网络链接,并利用图像处理单元中的远程直接数据存取模块获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。具体的,是利用利用图像处理单元中的远程直接数据存取模块中的qp处理模块。
本申请实施例中,通过网络链接,并利用图像处理单元中的远程直接数据存取模块获取所述数据端返回的与所述目标地址绑定的第三指定地址,并基于所述目标地址和所述第三指定地址组成第二直接存储器访问描述符;利用图像处理单元中的直接存储器访问控制器并根据所述第二直接存储器访问描述符从所述本地的所述目标地址中读取所述图像计算结果,并利用远程直接数据存取模块将所述图像计算结果发送至所述数据端的所述第三指定地址上进行保存。需要指出的是,组成第二直接存储器访问描述符的步骤是由远程直接数据存取模块中的桥接模块完成的。
本申请实施例中,通过网络链接获取所述数据端返回的包括与所述目标地址绑定的第三指定地址的数据帧,并利用本地的所述目标地址上保存的所述图像计算结果组建命令帧,将所述命令帧发送至位于所述数据端的所述第三指定地址上进行保存。需要指出的是,所述数据帧与步骤S11相同,都为数据搬移类数据帧。
本申请实施例中,如图3所示,通过网络链接,并利用图像处理单元中的MAC模块获取数据端发送数据帧,并将数据帧发送至图像处理单元中的远程直接数据存取模块,利用远程直接数据存取模块中的预处理模块和校验模块判断第一数据搬移类数据帧中的PAYLOAD(负载)字段是否正确和可用,然后将自定义协议的PAYLOAD字段发送至远程直接数据存取模块中的qp处理模块;然后利用远程直接数据存取模块中的qp处理模块将自定义协议的PAYLOAD字段进行解析,以得到帧类型、SAddr、DAddr和transfer-length等信息,并将解析后的信息发送至远程直接数据存取模块中的桥接模块;桥接模块将解析后信息组成直接存储器访问描述符,发送至图像处理单元的直接存储器访问控制器,直接存储器访问控制器根据直接存储器访问描述符完成相应工作后,利用qp处理模块产生自定义协议的响应帧,并将响应帧发送至带优先级的发包模块,进行TCP/IP等更底层协议的组包,最终发送给MAC模块(传统网络控制器模块),然后MAC模块将组包至数据端,以便数据端继续发送数据帧。
需要指出的是,本申请实施例中,直接存储器访问控制器根据直接存储器访问描述符完成的相应工作为将本地的所述目标地址上保存的所述图像计算结果,并将图像计算结果发送给qp处理模块,qp处理模块封装图像计算结果,产生自定义协议的应答帧,转发给带优先级的发包模块,进行TCP/IP等更底层协议的组包,最终发送给MAC模块,然后由MAC模块发送至数据端,以便数据端将所述图像计算结果存储至位于所述数据端的所述第三指定地址上进行保存;其中,第三指定地址位于数据端的双倍速率同步动态随机存储器中。
需要指出的是,所述图像处理单元通过网络链接并利用基于自定义协议创建的数据帧与所述数据端进行信息传输,其中所述信息包括数据及地址等信息。
本申请实施例中,利用图像处理单元中的直接存储器访问控制器进行数据的搬移,基本不占用CPU(central processing unit,中央处理器)资源,具体的,传统的网络传输过程与远程直接数据存取的传输过程,如图5所示,当网卡为普通网卡时,数据流需要跨越多次内存空间,耗时更多,并且需要占用中央处理器资源,因为当数据从应用内存空间到系统内核空间、系统内核空间到网络设备空间时,需要通过中央处理器进行数据搬移处理;当网卡为支持远程直接数据存取功能的网卡时,仅需跨越一次内存空间,且数据搬移由网卡中的直接存储器访问引擎负责,基本不占用中央处理器资源。
本申请实施例中,通过使用HDL(Hardware Description Language)语言开发的一些模块,例如远程直接数据存取模块、设备控制模块等,解耦了图像处理单元板卡与数据端之间的PCIe物理绑定,实现基于远程直接数据存取的图像处理单元计算资源的规模化和池化。具体的,通过HDL语言编写的模块,整合远程直接数据存取功能,实现了图像处理单元板卡与数据端PCIe插槽的解耦,拓扑结构由原本固定的1对1,变成一对多或者多对一,可以灵活的配置数据端数量与图像处理单元板卡的数量;为实现基于Vortex的图像处理单元板卡的池化提供了底层硬件基础;通过远程直接数据存取功能,使得无论是图像处理单元板卡之间还是主机之间的物理距离不再受限;对于上层的使用者来说,底层硬件的分布与连接状况基本上也是无感的;更符合现代计算中心的分布式特性。需要指出的是,一个图像处理单元可以受多个数据端的控制,但在同一时间一个图像处理单元只能受一个数据端的控制。
可见,本申请通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。由此可见,本申请中数据端与图像处理单元通过网络链路进行图像数据传输,与现有的通过PCIe通道并结合CCI-P协议的MMIO功能进行图像数据传输相比,通过网络链路进行图像数据传输的方式不存在数据端与图像处理单元之间的物理绑定,因此实现了数据端与图像处理单元之间一对多或多对一的控制和运行,由此实现了图像处理单元的资源的规模化和池化,另外,在一个数据端承载与多个图像处理单元的交互任务的情况下,提高了数据端运算资源的利用率;另外,利用直接存储器访问控制器传输图像数据节省了中央处理器资源。
参见图6所示,本申请实施例公开了一种具体的图像处理方法,应用于基于远程直接数据存取技术的图像处理单元,该方法包括:
步骤S21:通过网络链接获取所述数据端发送的第一寄存器的寄存器地址,并基于所述第一寄存器的寄存器地址读取所述第一寄存器对应的第一目标数值;将所述第一目标数值发送至所述数据端,以便所述数据端基于所述第一目标数值确定所述图像处理单元处于空闲状态时,发送所述原始数据、所述计算指令、所述第一指定地址和所述第二指定地址至所述图像处理单元。
本申请实施例中,通过网络链接,利用图像处理单元中的远程直接数据存取模块获取所述数据端发送的第一寄存器的寄存器地址,并基于所述第一寄存器的寄存器地址读取所述第一寄存器对应的第一目标数值;利用图像处理单元中的远程直接数据存取模块将所述第一目标数值发送至所述数据端;具体的,利用图像处理单元中的远程直接数据存取模块中的指令帧处理模块。
本申请实施例中,如图3所示,通过网络链路的MAC模块获取数据端发送的数据帧(非数据搬移类数据帧),利用远程直接数据存取模块中的预处理模块和校验模块判断数据帧中的PAYLOAD(负载)字段是否正确和可用;然后将自定义协议的PAYLOAD字段发送至远程直接数据存取模块中的指令帧处理模块;指令帧处理模块,解析自定义协议的PAYLOAD字段获得第一寄存器的寄存器地址、以及读操作,通过第一寄存器的寄存器地址判断第一寄存器是否存在,并将第一寄存器的寄存器地址转发给桥接模块;桥接模块读取第一寄存器对应的第一目标数值,然后将第一目标数值返回给指令帧处理模块,指令帧处理模块将结果按照自定义协议的格式组包,(也即产生响应帧),指令帧处理模块将自定义协议格式的包,发送给带优先级的发包模块,以进行进一步的组包,即加上TCP/IP协议等底层协议所需要的报头;发包模块的包最后发送给MAC模块,进行链路层和物理层协议的封装处理后发送到数据端,(也即将响应帧发送至数据端),以便所述数据端基于所述第一目标数值确定所述图像处理单元处于空闲状态时,发送所述原始数据、所述计算指令、所述第一指定地址和所述第二指定地址至所述图像处理单元。
需要指出的是,例如第一寄存器对应的第一目标数值为0,则第一寄存器空闲;第一寄存器对应的第一目标数值为1,则第一寄存器不空闲。
步骤S22:通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中。
其中,关于步骤S22的其它更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S23:通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端。
本申请实施例中,通过网络链接获取所述数据端发送的第二寄存器的寄存器地址,并基于所述第二寄存器的寄存器地址确定出相应的所述第二寄存器,然后对与所述第二寄存器对应的第二目标数值进行调整,以利用调整后的所述第二目标数值启动所述计算核心。需要指出的是,在对第二寄存器对应的第二目标数值进行调整之前,第二目标数值表示第二寄存器处于空闲状态,在对第二寄存器对应的第二目标数值进行调整之后,第二寄存器处于不空闲状态;例如,在对第二寄存器对应的第二目标数值进行调整之前,第二目标数值为0,在对第二寄存器对应的第二目标数值进行调整之后,第二目标数值为1。
需要指出的是,一个图像处理单元可以受多个数据端的控制,但在同一时间一个图像处理单元只能受一个数据端的控制;因为在对第二寄存器对应的第二目标数值进行调整时,相应的其它寄存器的目标数值也由0转变为1,此时设备控制模块中的寄存器处于不空闲状态,因此不再接受其他数据端发送的数据及地址的信息等。
步骤24:通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。
其中,关于步骤S24的其它更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。由此可见,本申请中数据端与图像处理单元通过网络链路进行图像数据传输,与现有的通过PCIe通道并结合CCI-P协议的MMIO功能进行图像数据传输相比,通过网络链路进行图像数据传输的方式不存在数据端与图像处理单元之间的物理绑定,因此实现了数据端与图像处理单元之间一对多或多对一的控制和运行,由此实现了图像处理单元的资源的规模化和池化,另外,在一个数据端承载与多个图像处理单元的交互任务的情况下,提高了数据端运算资源的利用率。
参见图7所示,为现有的基于Vortex的FPGA板卡的应用场景示意图,也即现有的基于Vortex的图像处理单元示意图(以主机(HOST)与图像处理单元为例)。图中,图像处理单元使用了Vortex,(图像处理单元板卡即为FPGA板卡)具体的,下载的有Vortex程序的FPGA板卡插在HOST(主机)的主板的PCIe插槽中,FPGA的各个模块都属于Vortex源代码编译生成的内容,但真正执行计算的是“Vortex计算核心”模块;FPGA的双倍速率同步动态随机存储器用于:保存读取自主机的双倍速率同步动态随机存储器的数据和保存“Vortex计算核心”生成的数据;设备控制用于辅助控制整个计算过程,例如读取用于计算的数据和程序、启动计算等;直接存储器访问则用于在主机的双倍速率同步动态随机存储器与FPGA的双倍速率同步动态随机存储器之间搬运数据;“FPGA接口单元”主要是基于Intel公司的CCI-P协议,该协议的接口主要有两个功能:第一,MMIO(Memory Map I/O)功能:主机使用该功能,可以对FPGA的寄存器进行读和写操作;本质上是一种以主机为Master端,FPGA为Slave端的少量数据的读写操作;通常用于查询FPGA的运行状态,或者控制FPGA进行某些操作;第二,提供FPGA对主机的双倍速率同步动态随机存储器的读写通道:通过该功能,双倍速率同步动态随机存储器可作为Master端,对主机端的双倍速率同步动态随机存储器进行读写操作。
需要指出的是,Vortex是一个基于PICe连接、使用HDL代码实现的开源图像处理单元设计,并且实现了针对该开源图像处理单元的完整的编译工具链、主机端的软件驱动等;Vortex不仅实现了核心的计算模块,为了支持与主机的通信,还实现了外围的一些通信功能模块。在物理形态上,当编译Vortex的源代码生成对应的程序,并烧写到某FPGA板卡后,该FPGA板卡即可视为一张普通的图像处理单元卡。需要指出的是,本申请方案中也是使用的相同的Vortex计算核心。
具体的,图7应用场景运行中单次交互流程如下所示:
第一,主机通过PCIe通道,结合CCI-P协议的MMIO功能,向FPGA某个寄存器中写入一个数据,该数据是主机端的双倍速率同步动态随机存储器的一个地址;假设为ADDR1。
第二,主机通过PCIe通道,结合CCI-P协议的MMIO功能,向FPGA某个寄存器中写入一个数据,该数据是FPGA端的双倍速率同步动态随机存储器的一个地址;假设为ADDR2。
第三,主机通过PCIe通道,结合CCI-P协议的MMIO功能,向FPGA某个寄存器中写入一个数据,该数据是接下来要操作的数据的次数;假设为3。
第四,主机通过PCIe通道,结合CCI-P协议的MMIO功能,向FPGA某个寄存器中写入一个数据,该数据标识了本次启动的操作的类型;假设为写操作,这里的操作类型指的都是对FPGA的双倍速率同步动态随机存储器的操作。
第五,主机通过PCIe通道,结合CCI-P协议的MMIO功能,读取FPGA的某个寄存器,该寄存器表示了FPGA当前正在执行的操作;主机通过读取该值,判断FPGA是否进入了第4步所指示的操作状态。
因此,FPGA在接收到上述四个数据后,即可根据ADDR1,通过CCI-P向主机的双倍速率同步动态随机存储器的ADDR1地址读取数据,读取次数为3次,并将读取到的数据写入FPGA的双倍速率同步动态随机存储器的ADDR2地址中。
具体的,从更完整的角度来看,在图1所示的环境中运行一个完整的图像处理单元程序时,以向量加(数组a+数组b=数组c)为例,其过程如下:
第一,主机通过PCIe通道,结合CCI-P协议的MMIO操作,查询FPGA的某个寄存器,判断FPGA是否处于空闲状态。
第二,主机通过单次交互流程,使FPGA从主机的双倍速率同步动态随机存储器的某个地址获取数组a和b的数据,并存入FPGA的双倍速率同步动态随机存储器的某个地址中。
第三,主机通过单次交互流程,使FPGA从主机的双倍速率同步动态随机存储器的某个地址,获取编译好的二进制图像处理单元程序指令,存入FPGA的双倍速率同步动态随机存储器的某个地址中;至此,FPGA端已经获取了计算所需的数据源和程序指令。
第四,主机通过PCIe通道,结合CCI-P协议的MMIO操作,写FPGA的某个寄存器,以启动FPGA的计算核心进行计算。
第五,主机通过PCIe通道,结合CCI-P协议的MMIO操作,轮询FPGA的某个寄存器,以查询FPGA的计算核心是否完成计算;当计算完成时,Vortex计算核心会将结果写入FPGA的双倍速率同步动态随机存储器的后续地址(即数组a和数组b所在地址的后续空间)。
第六,当主机轮询检测到FPGA计算完成时,则通过单次交互流程,使FPGA读取FPGA的双倍速率同步动态随机存储器中的结果,并写入到主机的双倍速率同步动态随机存储器的空间中,供主机端的应用程序使用。
由上可知,现有技术中,第一,图像处理单元与主机主机通过PCIe之间传输数据,两者之间物理上被PCIe插槽绑定,一对一控制和运行;这种拓扑结构无法实现规模部署,也就无法实现云服务;第二,由于核心的计算实际上是由FPGA完成的,主机只是进行了一些逻辑控制,理论上来说一个主机端可以为大量的FPGA端提供逻辑控制服务,因此,这种一对一的拓扑结构还浪费了大量主机的资源;第三,针对某些计算量巨大的应用场景,单个图像处理单元的计算量可能无法满足要求,需要多个FPGA板卡的图像处理单元协同计算;而一个主机所能连接的PCIe插槽始终是有限的,在PCIe通道绑定的场景下,无法有效地解决这一问题。综上所述,现有技术方案中降低了数据端运算资源的利用率。
根据本申请方案,(以主机与图像处理单元为例)以向量加为例,该系统的一个典型的应用场景描述如下:
第一,主机通过发送非数据搬移类的帧,读FPGA的某个寄存器,判断FPGA是否处于空闲状态。
第二,主机通过发送数据搬移类的帧,将数据从主机的双倍速率同步动态随机存储器发送到FPGA的双倍速率同步动态随机存储器的指定地址中。
第三,主机通过发送数据搬移类的帧,将编译好的二进制图像处理单元程序指令,存入FPGA的双倍速率同步动态随机存储器的某个地址中;至此,FPGA端已经获取了计算所需的数据源和程序指令。
第四,主机发送非数据搬移类的帧,写FPGA的某个寄存器,以启动FPGA的计算核心进行计算。
第五,当Vortex计算核心计算完成后,通知设备控制模块。
第六,设备控制模块通知远程直接数据存取模块,远程直接数据存取模块产生表示计算完成的类型的帧,发送给主机;该帧的自定义协议的Payload字段存储了计算结果的首地址和长度。
第七,当主机接收到FPGA计算完成的帧时,根据帧的内容,发送数据搬移类的帧,将数据从主机的双倍速率同步动态随机存储器发送到FPGA的双倍速率同步动态随机存储器的指定地址中。
综上所述,本发明基于远程直接数据存取协议,提出一种通过HDL语言编写的设备控制模块和远程直接数据存取模块,以及其他的一些外围工作组件,搭建了一个图像处理单元的云平台,将数据或指令的传输从PCIe链路释放至网络链路;并且由于该系统具有远程直接数据存取功能,相比于普通的网络传输,具有更少的内存切换开销和更快的传输速度。本发明主要保护:在Vortex核心计算模块的基础上,使用HDL语言编写的设备控制模块、远程直接数据存取模块,以及配合一些其他FPGA常见外围模块所组成的图像处理单元云平台系统——通过如图2所示的系统,网络上接入的任何一台主机均能访问和使用任意的图像处理单元,实现了基于远程直接数据存取的图像处理单元云平台的硬件基础。进一步的,本发明提供的一种基于远程直接数据存取的图像处理单元云平台的实现方法,不仅可以解耦图像处理单元板卡与主机的物理绑定,实现图像处理单元的云平台和资源的池化,还能根据主机的性能,使得一台主机可以为尽可能多的图像处理单元板卡提供上层软件的逻辑控制服务,节省了资源。
参见图8所示,本申请实施例公开了一种图像处理装置,包括:
第一存储模块11,用于通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;
计算模块12,用于通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;
第二存储模块13,用于通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。由此可见,本申请中数据端与图像处理单元通过网络链路进行图像数据传输,与现有的通过PCIe通道并结合CCI-P协议的MMIO功能进行图像数据传输相比,通过网络链路进行图像数据传输的方式不存在数据端与图像处理单元之间的物理绑定,因此实现了数据端与图像处理单元之间一对多或多对一的控制和运行,由此实现了图像处理单元的资源的规模化和池化,另外,在一个数据端承载与多个图像处理单元的交互任务的情况下,提高了数据端运算资源的利用率。
进一步的,本申请实施例还提供了一种电子设备,图9是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图9为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、输入输出接口24、通信接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任意实施例公开的图像处理方法的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口25能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储器22作为可以包括作为运行内存的随机存取存储器和用于外部内存的存储用途的非易失性存储器,其上的存储资源包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制源主机上电子设备20上的各硬件设备以及计算机程序222,操作系统221可以是Windows、Unix、Linux等。计算机程222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的图像处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
本实施例中,所述输入输出接口24具体可以包括但不限于USB接口、硬盘读取接口、串行接口、语音输入接口、指纹输入接口等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的图像处理方法。
关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述图像处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的图像处理方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种图像处理方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种图像处理方法,其特征在于,应用于基于远程直接数据存取技术的图像处理单元,包括:
通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和所述计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;
通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;
通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。
2.根据权利要求1所述的图像处理方法,其特征在于,所述通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址之前,还包括:
通过网络链接获取所述数据端发送的第一寄存器的寄存器地址,并基于所述第一寄存器的寄存器地址读取所述第一寄存器对应的第一目标数值;
将所述第一目标数值发送至所述数据端,以便所述数据端基于所述第一目标数值确定所述图像处理单元处于空闲状态时,发送所述原始图像数据、所述计算指令、所述第一指定地址和所述第二指定地址至所述图像处理单元。
3.根据权利要求1所述的图像处理方法,其特征在于,所述通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,包括:
通过网络链接获取所述数据端发送的第二寄存器的寄存器地址,并基于所述第二寄存器的寄存器地址确定出相应的所述第二寄存器,然后对与所述第二寄存器对应的第二目标数值进行调整,以利用调整后的所述第二目标数值启动所述计算核心。
4.根据权利要求1所述的图像处理方法,其特征在于,所述将所述目标地址发送至所述数据端,包括:
将所述目标地址对应的首地址和长度信息发送至所述数据端。
5.根据权利要求1所述的图像处理方法,其特征在于,所述通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和所述计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中,包括:
通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并基于所述原始图像数据、所述计算指令、所述第一指定地址和所述第二指定地址组成第一直接存储器访问描述符;
根据所述第一直接存储器访问描述符将所述原始图像数据和所述计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中。
6.根据权利要求1所述的图像处理方法,其特征在于,所述通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存,包括:
通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并基于所述目标地址和所述第三指定地址组成第二直接存储器访问描述符;
根据所述第二直接存储器访问描述符从所述本地的所述目标地址中读取所述图像计算结果,并将所述图像计算结果发送至所述数据端的所述第三指定地址上进行保存。
7.根据权利要求1至6任一项所述的图像处理方法,其特征在于,所述图像处理单元通过网络链接并利用基于自定义协议创建的数据帧与所述数据端进行信息传输。
8.一种图像处理装置,其特征在于,应用于基于远程直接数据存取技术的图像处理单元,包括:
第一存储模块,用于通过网络链接获取数据端发送的原始图像数据、计算指令、第一指定地址和第二指定地址,并将所述原始图像数据和计算指令分别存储至本地的所述第一指定地址和所述第二指定地址中;
计算模块,用于通过网络链接获取所述数据端发送的用于控制所述图像处理单元内的计算核心启动的第一信息,以启动所述计算核心,并基于所述原始图像数据和所述计算指令获取相应的图像计算结果,然后将所述图像计算结果存储至本地的目标地址,并将所述目标地址发送至所述数据端;
第二存储模块,用于通过网络链接获取所述数据端返回的与所述目标地址绑定的第三指定地址,并将本地的所述目标地址上保存的所述图像计算结果发送至位于所述数据端的所述第三指定地址上进行保存。
9.一种电子设备,其特征在于,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的图像处理方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210465766.1A CN114866534B (zh) | 2022-04-29 | 2022-04-29 | 一种图像处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210465766.1A CN114866534B (zh) | 2022-04-29 | 2022-04-29 | 一种图像处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114866534A CN114866534A (zh) | 2022-08-05 |
CN114866534B true CN114866534B (zh) | 2024-03-15 |
Family
ID=82634704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210465766.1A Active CN114866534B (zh) | 2022-04-29 | 2022-04-29 | 一种图像处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114866534B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062833A (zh) * | 2017-06-30 | 2018-12-21 | 创义达科技股份有限公司 | 计算系统操作方法、计算系统、车辆及计算机可读媒体 |
CN109445905A (zh) * | 2018-06-22 | 2019-03-08 | 华为技术有限公司 | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 |
US10332235B1 (en) * | 2018-05-01 | 2019-06-25 | At&T Intellectual Property I, L.P. | Direct memory access for graphics processing unit packet processing |
CN111858457A (zh) * | 2020-07-15 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、系统和fpga |
CN112187669A (zh) * | 2020-09-11 | 2021-01-05 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据交互方法、装置、设备及可读存储介质 |
CN112463714A (zh) * | 2020-11-30 | 2021-03-09 | 海光信息技术股份有限公司 | 远程直接内存访问方法、异构计算系统及电子设备 |
CN113535630A (zh) * | 2021-09-14 | 2021-10-22 | 苏州浪潮智能科技有限公司 | 一种跨节点通信方法、装置、设备及可读存储介质 |
CN114003392A (zh) * | 2021-12-28 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种数据加速计算方法及相关装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11025544B2 (en) * | 2019-06-07 | 2021-06-01 | Intel Corporation | Network interface for data transport in heterogeneous computing environments |
US20200104275A1 (en) * | 2019-12-02 | 2020-04-02 | Intel Corporation | Shared memory space among devices |
-
2022
- 2022-04-29 CN CN202210465766.1A patent/CN114866534B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062833A (zh) * | 2017-06-30 | 2018-12-21 | 创义达科技股份有限公司 | 计算系统操作方法、计算系统、车辆及计算机可读媒体 |
US10332235B1 (en) * | 2018-05-01 | 2019-06-25 | At&T Intellectual Property I, L.P. | Direct memory access for graphics processing unit packet processing |
CN109445905A (zh) * | 2018-06-22 | 2019-03-08 | 华为技术有限公司 | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 |
CN111858457A (zh) * | 2020-07-15 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、系统和fpga |
CN112187669A (zh) * | 2020-09-11 | 2021-01-05 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据交互方法、装置、设备及可读存储介质 |
CN112463714A (zh) * | 2020-11-30 | 2021-03-09 | 海光信息技术股份有限公司 | 远程直接内存访问方法、异构计算系统及电子设备 |
CN113535630A (zh) * | 2021-09-14 | 2021-10-22 | 苏州浪潮智能科技有限公司 | 一种跨节点通信方法、装置、设备及可读存储介质 |
CN114003392A (zh) * | 2021-12-28 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种数据加速计算方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
面向云服务器系统的分布式网络架构与技术研究;陈彦灵;吴安;张斌;石江涛;;电信网技术(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114866534A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416840B (zh) | 一种计算资源的远程映射方法、装置、设备及存储介质 | |
CN108268328B (zh) | 数据处理装置及计算机 | |
US7502826B2 (en) | Atomic operations | |
CN108028833A (zh) | 一种nas数据访问的方法、系统及相关设备 | |
CN114268666A (zh) | 支持面向服务架构soa的通用域控制器、车辆及交互系统 | |
CN112769794B (zh) | 一种数据转换方法及装置 | |
JPH11312151A (ja) | 高速な分散オブジェクトリクエストブローカ | |
CN113849293A (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN112711550A (zh) | Dma自动配置模块和片上系统soc | |
CN116225992A (zh) | 一种支持虚拟化仿真设备的NVMe验证平台及方法 | |
CN117312215B (zh) | 一种服务器系统、作业执行方法、装置及设备和介质 | |
CN103092676A (zh) | 虚拟机集群的模拟输入输出方法、装置及系统 | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
CN114866534B (zh) | 一种图像处理方法、装置、设备及介质 | |
CN112291259B (zh) | 一种协议转换方法、网关、设备及可读存储介质 | |
KR102303424B1 (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
CN115904259B (zh) | 非易失性存储器标准NVMe指令的处理方法及相关装置 | |
CN115827285A (zh) | 一种跨平台通信方法、系统、装置、设备及介质 | |
CN113923061B (zh) | 基于智能网卡的gpu网络通信方法、智能网卡、介质、设备 | |
CN115114192B (zh) | 存储器接口、功能核、众核系统和存储数据访问方法 | |
EP1548591B1 (en) | Method, apparatuses and instruction set for an accelerator for object-oriented communications | |
KR100350315B1 (ko) | 실시간 시스템의 원격지 입출력 제어 장치 및 방법 | |
JPH04274535A (ja) | 複数os上ファイルアクセス方式 | |
CN117714398B (zh) | 一种数据传输系统、方法、电子设备及存储介质 | |
US20240205170A1 (en) | Communication method based on user-mode protocol stack, and corresponding apparatus |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |