CN113626506A - 基于异构平台的数据处理方法、装置和电子设备 - Google Patents

基于异构平台的数据处理方法、装置和电子设备 Download PDF

Info

Publication number
CN113626506A
CN113626506A CN202010380545.5A CN202010380545A CN113626506A CN 113626506 A CN113626506 A CN 113626506A CN 202010380545 A CN202010380545 A CN 202010380545A CN 113626506 A CN113626506 A CN 113626506A
Authority
CN
China
Prior art keywords
target platform
platform
algorithm
user
instance
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
Application number
CN202010380545.5A
Other languages
English (en)
Other versions
CN113626506B (zh
Inventor
陈翼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wanxing Technology Hunan Co ltd
Original Assignee
Wanxing Technology Hunan Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wanxing Technology Hunan Co ltd filed Critical Wanxing Technology Hunan Co ltd
Priority to CN202010380545.5A priority Critical patent/CN113626506B/zh
Publication of CN113626506A publication Critical patent/CN113626506A/zh
Application granted granted Critical
Publication of CN113626506B publication Critical patent/CN113626506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种基于异构平台的数据处理方法、装置和电子设备,涉及异构计算技术领域,其中,该方法包括可以根据用户的第一输入操作确定目标平台,并创建目标平台对应的目标平台实例,然后在目标平台实例中注册用户预先导入的脚本,再根据预先设定的数据封装格式将目标平台实例的内存封装为多个通用帧,最后根据目标平台实例和脚本处理通用帧。本申请可以根据用户的选择调用不同的异构平台,并在调用的异构平台中执行用户的脚本,实现用户的跨平台软件开发工作。使得用户无需学习不同的异构平台的标准和接口知识,也可以完成跨平台软件的开发工作,实现了简化跨平台软件开发工作的效果。

Description

基于异构平台的数据处理方法、装置和电子设备
技术领域
本申请涉及异构计算技术,尤其涉及一种基于异构平台的数据处理方法、装置和电子设备,属于异构计算技术领域。
背景技术
异构计算技术从80年代中期产生,具有高性能计算能力、可扩展性好和计算资源利用率高等特点,已成为并行/分布计算领域中的研究热点之一。
目前市场上已有众多不同的异构计算平台,例如:开放运算语言(Open ComputingLanguage,OpenCL)、统一计算设备架构(Compute Unified Device Architecture,CUDA)、DX(Direct eXtension,DirectX)、开放图形库(Open Graphics Library,OpenGL)等等。每种平台都有自己的特点和优势,程序开发人员可以根据自己的需要选择合适的异构计算平台进行软件开发。
但是,众多不同的异构计算平台之间标准不同,接口不同,且平台与平台之间无法直接进行数据的转换和处理。当开发人员需要在不同的平台上开发软件时,需要学习不同平台对应的标准和接口知识,导致了开发人员在跨平台开发软件时费时费力。
发明内容
有鉴于此,本发明提供一种基于异构平台的数据处理方法、装置和电子设备,用于简化跨平台软件的开发工作。
为了实现上述目的,第一方面,本申请实施例提供一种基于异构平台的数据处理方法,包括:
根据用户的第一输入操作确定目标平台,并创建目标平台对应的目标平台实例,其中,目标平台为预设的多个异构平台中的其中一个平台;
在目标平台实例中注册用户预先导入的脚本;
根据预先设定的数据封装格式将目标平台实例的内存封装为多个通用帧;
根据目标平台实例和脚本处理通用帧。
可选的,脚本包括多个算法函数,根据目标平台实例和脚本处理通用帧,包括:
根据多个算法函数的名称、输入类型和输出类型,生成每个算法函数对应的算法单元,算法单元用于执行算法函数;
根据多个通用帧和多个算法单元生成多个任务,每个任务用于根据对应的算法单元处理任务对应的通用帧;
在目标平台实例中执行多个任务。
可选的,通用帧包括输入帧和输出帧,根据预先设定的数据封装格式将目标平台实例的内存封装为多个通用帧,包括:
获取脚本的输入格式和输出格式;
根据预先设定的数据封装格式和输入格式,将目标平台实例的内存封装为多个输入帧;
根据预先设定的数据封装格式和输出格式,将目标平台实例的内存封装为多个输出帧。
可选的,在根据目标平台实例和脚本处理通用帧之前,方法还包括:
获取用户预设的算法单元的算法参数;
根据用户预设的处理序列,将多个输入帧排序并生成输入帧序列;
根据多个通用帧和多个算法单元生成多个任务,包括:
根据算法参数、输入帧序列、多个输出帧和多个算法单元,生成多个任务。
可选的,创建目标平台对应的目标平台实例,包括:
根据用户的第二输入操作确定显示适配器;
获取目标平台的设备上下文;
根据显示适配器、目标平台和设备上下文,创建目标平台对应的目标平台实例。
可选的,根据用户的第一输入操作确定目标平台,并创建目标平台对应的目标平台实例,包括:
根据用户的第一输入操作确定目标平台和共享平台;
创建共享平台对应的共享平台实例,并通过共享平台实例创建目标平台对应的目标平台实例。
第二方面,本申请实施例提供一种基于异构平台的数据处理装置,装置包括:
创建模块,用于根据用户的第一输入操作确定目标平台,并创建目标平台对应的目标平台实例,其中,目标平台为预设的多个异构平台中的其中一个平台;
注册模块,用于在目标平台实例中注册用户预先导入的脚本;
封装模块,用于根据预先设定的数据封装格式将目标平台实例的内存封装为多个通用帧;
处理模块,用于根据目标平台实例和脚本处理通用帧。
可选的,脚本包括多个算法函数,处理模块具体用于:
根据多个算法函数的名称、输入类型和输出类型,生成每个算法函数对应的算法单元,算法单元用于执行算法函数;
根据多个通用帧和多个算法单元生成多个任务,每个任务用于根据对应的算法单元处理任务对应的通用帧;
在目标平台实例中执行多个任务。
可选的,通用帧包括输入帧和输出帧,封装模块具体用于:
获取脚本的输入格式和输出格式;
根据预先设定的数据封装格式和输入格式,将目标平台实例的内存封装为多个输入帧;
根据预先设定的数据封装格式和输出格式,将目标平台实例的内存封装为多个输出帧。
可选的,装置还包括:
获取模块,用于获取用户预设的算法单元的算法参数;
生成模块,用于根据用户预设的处理序列,将多个输入帧排序并生成输入帧序列;
处理模块具体用于:
根据算法参数、输入帧序列、多个输出帧和多个算法单元,生成多个任务。
可选的,创建模块具体用于:
根据用户的第二输入操作确定显示适配器;
获取目标平台的设备上下文;
根据显示适配器、目标平台和设备上下文,创建目标平台对应的目标平台实例。
可选的,创建模块具体用于:
根据用户的第一输入操作确定目标平台和共享平台;
创建共享平台对应的共享平台实例,并通过共享平台实例创建目标平台对应的目标平台实例。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器用于存储计算机程序,处理器用于在调用计算机程序时执行上述第一方面或第一方面的任一实施方式的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面或第一方面的任一实施方式的方法。
本申请实施例提供的基于异构平台的数据处理方法,包括可以根据用户的第一输入操作确定目标平台,并创建目标平台对应的目标平台实例,然后在目标平台实例中注册用户预先导入的脚本,再根据预先设定的数据封装格式将目标平台实例的内存封装为多个通用帧,最后根据目标平台实例和脚本处理通用帧。本申请可以根据用户的选择调用不同的异构平台,并在调用的异构平台中执行用户的脚本,实现用户的跨平台软件开发工作。使得用户无需学习不同的异构平台的标准和接口知识,也可以完成跨平台软件的开发工作,实现了简化跨平台软件开发工作的效果。
附图说明
图1是本申请实施例提供的通用平台的原理示意图;
图2是本申请实施例提供的通用平台的架构示意图;
图3是本申请实施例提供的基于异构平台的数据处理方法的示意性流程图;
图4是本申请实施例提供的基于异构平台的数据处理装置的结构框图;
图5是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了便于理解本申请施例中的技术方案,下面首先对本申请实施例中所涉及的部分术语进行解释:
异构计算,指在异构计算系统上进行的并行计算。其中,异构计算系统主要包括三部分:一组异构机器,将各异构机器连接起来的高速网络和相应的异构计算支持软件。
异构平台(简称“平台”),指可以进行异构计算软件开发的开发平台。现有的平台包括:开放运算语言(Open Computing Language,OpenCL)、统一计算设备架构(ComputeUnified Device Architecture,CUDA)、Vulkan、Metal、DX(Direct eXtension,DirectX)和开放式图形库(Open Graphics Library,OpenGL)等平台。
异构平台实例(简称“平台实例”),指某平台的具体实现,由平台插件根据对应的版本和参数创建。
平台插件,用于创建对应的平台实例,本申请实施例中包括但不限于OpenCL、CUDA、Metal、Vulkan、Directx、OpenGL等平台。
脚本,软件开发人员开发的程序,包括一个或多个算法函数。
设备上下文,又称为设备描述表或者设备环境,是一个定义一组图形对象及其属性的图形数据结构,用于应用程序和物理设备之间进行交互。
算法单元工厂,每个平台都有对应的一个或多个算法单元工厂,用于管理和生成算法单元。
算法单元,由对应的算法单元工厂生成,用于算法函数执行的具体实现,每个算法单元对应一种算法函数。
任务队列,每个平台都有对应的一个或者多个任务队列,用于分配和协调平台实例的任务。
任务,由对应的任务队列生成,每个任务对应一个需要被执行的算法单元,用于在平台实例中执行具体的算法单元。
逻辑单元工厂,用于管理平台插件、生成逻辑单元和创建通用帧。
逻辑单元,由逻辑单元工厂生成,用于协调平台实例的任务队列和算法单元生成任务,以及执行任务。
内存分配器,每个平台都有对应的内存分配器,用于管理和分配平台实例对应的内存,通常内存中存储的是图像数据。
通用帧,按照规定的数据封装格式将平台实例对应的内存封装为具有统一数据格式的数据对象,一个通用帧包括一个数据对象。
共享平台,是指可以用于创建其他平台的平台。当图形处理器(GraphicsProcessing Unit,GPU)不支持目标平台实例时,目标平台实例无法直接与GPU的内存进行数据交互,此时可以通过共享平台实例才能创建目标平台实例。
需要说明的是,本申请实施例中的方法均由Java语言实现,涉及的部分定义均为Java语言中的概念,但是具体使用哪种编程语言,并不影响本申请实施例的具体实现。
本申请实施例提供的基于异构平台的数据处理方法可以应用于平板电脑、笔记本电脑、超级移动个人计算机(Ultra-Mobile Personal Computer,UMPC)、或上网本等电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1是本申请实施例提供的通用平台的原理示意图,该通用平台可用于执行本申请实施例提供的方法,如图1所示,用户可以向通用平台输入开发的脚本、脚本的配置参数、待处理图像等必要数据;逻辑单元用于为用户提供通用平台的访问接口;通用平台中封装有各种功能接口,当用户通过通用平台运行脚本时,通用平台可以通过平台插件创建对应的平台实例,再由平台实例提供的任务队列和算法单元生成用于执行脚本的任务,最后执行该任务并将任务执行的结果通过逻辑单元反馈给用户。
具体的,图2是本申请实施例提供的通用平台的架构示意图。如图2所示,通用平台的架构可以包括插件层、调度层和应用层。其中,插件层为最底层、调度层为中间层、应用层为最高层。
插件接口,用于实现创建和销毁平台实例的功能。
平台接口,用于实现平台实例对应的功能,包括加载并注册脚本、获取平台实例的设备上下文、获取平台实例的内存分配器、获取平台实例的任务队列、获取平台实例的算法单元工厂。
设备上下文接口,用于获取平台实例的设备类型,并判断该设备与其他设备类型是否兼容。其中,设备上下文接口属于抽象父类接口,具体对应不同的平台实例可以实现对应的子类接口,子类接口可以包括D3D9Ex子类接口、OpenGL子类接口、OpenCL子类接口和D3D9子类接口。
内存分配器接口,用于实现一个内存分配器。
任务队列接口,用于实现一个任务队列。
算法单元工厂接口,用于实现一个或多个算法单元生成器。
在一个实施例中,调度层可以为应用层提供以下接口:
逻辑单元工厂接口,用于实现平台插件的注册、平台实例的初始化、脚本的注册、通用帧的创建、获取平台的设备上下文、获取共享平台的设备上下文,逻辑单元的创建。
逻辑单元接口,用于实现协调平台实例的任务队列和算法单元生成任务,以及执行任务。
通用帧接口,用于将各平台插件的内存封装为通用帧。
在一个实施例中,应用层面向用户,用户可以通过应用层进行具体的操作。
图3是本申请实施例提供的基于异构平台的数据处理方法的示意性流程图,如图3所示,该方法可以包括如下步骤:
S110、根据用户的第一输入操作确定目标平台,并创建目标平台对应的目标平台实例,其中,目标平台为预设的多个异构平台中的其中一个平台。
当用户开发异构应用软件时,可以使用本申请实施例提供的通用平台,通用平台支持多种异构平台的应用软件开发和运行。用户启动通用平台时,首先可以通过应用层创建逻辑单元工厂,逻辑单元工厂可以负责管理平台插件、生成逻辑单元和创建通用帧。然后,用户可以通过应用层进行第一输入操作,第一输入操作可以包括在预设的多个异构平台中选择需要使用的目标平台,以使逻辑单元工厂可以根据第一输入操作,确定目标平台。
具体的,由于有些电子设备中可以包括多个显示适配器,因此用户可以选择需要使用的显示适配器。应用层在接收用户的第一输入操作后,还可以接收用户的第二输入操作,第二输入操作可以包括选择需要使用的显示适配器,以使逻辑单元工厂可以根据用户的第二输入操作逻辑单元工厂可以确定显示适配器。
进一步的,逻辑单元工厂可以从操作系统中获取目标平台的设备上下文,并根据显示适配器、目标平台和设备上下文,控制平台插件创建目标平台对应的目标平台实例。
例如,用户使用的是Windows操作系统,电子设备中的显示适配器是英特尔核心显示适配器。用户可以在第一输入操作中选择DirectX平台为目标平台,在第二输入操作中选择英特尔核心显示适配器。逻辑单元工厂可以获取DirectX平台的设备上下文,然后根据英特尔核心显示适配器、DirectX平台插件和DirectX的设备上下文创建DirectX平台实例。
在一个实施例中,若电子设备使用的GPU不支持目标平台,则目标平台实例无法直接与GPU的内存进行数据交互,此时用户可以在第一输入操作中同时选择目标平台和共享平台,通过共享平台创建目标平台实例,借助共享平台实现目标平台实例与GPU之间的数据交互。
在一个实施例中,用户可以一次选择多个不同的目标平台,并通过多个目标平台执行后续的算法。但因各平台的厂家不同,所以存在部分平台之间无法直接进行内存数据交互的问题,本申请实施例可以通过共享平台创建各个平台实例,借助共享平台实现各个平台之间的数据交互。
具体的,逻辑单元工厂可以先创建共享平台实例,再通过共享平台实例创建目标平台实例,其中,在通过共享平台实例创建目标平台实例时,可以实现两个平台实例的内存数据之间的映射绑定,因而不同的目标平台可以通过共享平台实现它们之间的内存数据交互。
例如,用户选择的是Windows系统,电子设备的显示适配器是英特尔核心显示适配器,由于OpenCL平台和CUDA平台之间的内存数据不能直接交互,但它们都支持DirectX平台作为共享平台,则用户可以在第一输入操作按优先级分别选择OpenCL平台和CUDA平台作为目标平台,选择DirectX平台为共享平台,在第二输入操作中选择英特尔核心显示适配器。逻辑单元工厂可以根据英特尔核心显示适配器、DirectX平台插件和DirectX的设备上下文创建DirectX平台实例;再根据DirectX平台实例、OpenCL设备上下文和OpenCL平台插件,创建OpenCL平台实例;再根据DirectX平台实例,CUDA设备上下文和CUDA平台插件,创建CUDA平台实例。
S120、在目标平台实例中注册用户预先导入的脚本。
在目标平台实例成功创建的情况下,逻辑单元工厂可以在目标平台实例中注册用户预先导入的脚本,其中,脚本可以包括多个算法函数,通过在目标平台实例中运行多个算法函数可以实现脚本的功能。
S130、根据预先设定的数据封装格式将目标平台实例的内存封装为多个通用帧。
每个平台实例都有对应的内存分配器去管理内存,为了使得通用平台可以对不同平台实例的内存进行调用,逻辑单元工厂可以通过平台实例对应的内存分配器获取平台实例的内存,并根据预先设定的数据封装格式将不同的平台实例的内存封装为统一的通用帧。
具体的,通用帧包括输入帧和输出帧,输入帧用于封装待处理的输入数据,输出帧用于封装处理完毕的输出数据。首先,逻辑单元工厂可以获取脚本的输入格式和输出格式,其中,脚本的输入格式和输出格式可以在用户导入脚本时获取。然后逻辑单元工厂可以通过平台实例对应的内存分配器获取平台实例的内存,根据预先设定的数据封装格式和输入格式,将目标平台实例的内存封装为多个输入帧,并根据预先设定的数据封装格式和输出格式,将目标平台实例的内存封装为多个输出帧。
需要说明的是,在逻辑单元工厂成功创建通用帧之后,用户可以请求一个逻辑单元,并由逻辑单元工厂生成该逻辑单元。然后,用户可以通过逻辑单元获取通用平台后续产生的数据或管控逻辑单元工厂。
在一个实施例中,逻辑单元工厂可以获取用户在应用层预设的算法单元的算法参数。脚本中的算法函数可以根据算法参数的具体数值,处理图像数据。例如,用户可以在算法函数中设置图像数据的明暗度、长宽值、图像样式等参数,脚本中的算法函数可以根据用户的设置对图像数据进行相应的处理。
进一步地,逻辑单元工厂还可以根据用户在应用层预设的处理序列,将多个输入帧排序并生成输入帧序列。在脚本执行时,目标平台实例可以按照输入帧序列的排序处理多个输入帧。
在本申请实施例中,通用平台可以将不同平台的内存数据统一封装为统一类型的通用帧,使得用户可以仅学习和了解通用帧的数据接口和调用方法就能处理不同平台的内存数据,简化了用户的跨平台软件开发工作。
S140、根据目标平台实例和脚本处理通用帧。
在一个实施例中,逻辑单元工厂可以通过脚本中的多个算法函数,确定多个算法函数的名称、输入类型和输出类型,并根据每个算法函数的名称、输入类型和输出类型,在多个算法单元工厂中找到支持该算法函数的算法单元工厂;算法单元工厂可以根据每个算法函数的名称、输入类型和输出类型,生成每个算法函数对应的算法单元。其中,算法单元工厂是在目标平台实例注册脚本时生成的。然后,在生成多个算法单元的情况下,用户先前请求的逻辑单元可以根据多个通用帧和多个算法单元,生成多个任务。
具体的,在目标平台实例创建成功的情况下,目标平台实例可以生成一个任务队列。逻辑单元可以将输入帧序列、多个输出帧、算法参数和多个算法单元输入到任务队列中,由任务队列生成多个任务。最后,由目标平台实例执行生成的多个任务,并得到具有处理结果的多个输出帧。同时,用户可以通过逻辑单元获得最终的输出帧。
需要说明的是,每个任务都具有一个对应的等待函数。在任务生成后,逻辑单元工厂可以将该任务的等待函数反馈至用户,由操作系统执行该等待函数,当等待函数结束时,就是表示该任务已经执行完毕,用户可以获取该任务的输出帧了。在本申请实施例具体实施时,目标平台实例可以在一个线程中执行任务,等待函数可以在另一个线程中执行,通过使用双线程可以高效执行任务同时及时通知用户脚本执行的进展。
本申请实施例提供的基于异构平台的数据处理方法,可以根据用户的第一输入操作确定目标平台,并创建目标平台对应的目标平台实例,然后在目标平台实例中注册用户预先导入的脚本,再根据预先设定的数据封装格式将目标平台实例的内存封装为多个通用帧,最后根据目标平台实例和脚本处理通用帧。本申请可以根据用户的选择调用不同的异构平台,并在调用的异构平台中执行用户的脚本,实现用户的跨平台软件的开发工作。使得用户无需学习不同的异构平台的标准和接口知识,也可以完成跨平台软件的开发工作,实现了简化跨平台软件开发工作的效果。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于同一发明构思,作为对上述方法的实现,本申请实施例提供了一种基于异构平台的数据处理装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
图4是本申请实施例提供的基于异构平台的数据处理装置的结构框图,如图4所示,该装置可以包括:
创建模块110,用于根据用户的第一输入操作确定目标平台,并创建目标平台对应的目标平台实例,其中,目标平台为预设的多个异构平台中的其中一个平台;
注册模块120,用于在目标平台实例中注册用户预先导入的脚本;
封装模块130,用于根据预先设定的数据封装格式将目标平台实例的内存封装为多个通用帧;
处理模块140,用于根据目标平台实例和脚本处理通用帧。
可选的,脚本包括多个算法函数,处理模块140具体用于:
根据多个算法函数的名称、输入类型和输出类型,生成每个算法函数对应的算法单元,算法单元用于执行算法函数;
根据多个通用帧和多个算法单元生成多个任务,每个任务用于根据对应的算法单元处理任务对应的通用帧;
在目标平台实例中执行多个任务。
可选的,通用帧包括输入帧和输出帧,封装模块130具体用于:
获取脚本的输入格式和输出格式;
根据预先设定的数据封装格式和输入格式,将目标平台实例的内存封装为多个输入帧;
根据预先设定的数据封装格式和输出格式,将目标平台实例的内存封装为多个输出帧。
可选的,装置还包括:
获取模块150,用于获取用户预设的算法单元的算法参数;
生成模块160,用于根据用户预设的处理序列,将多个输入帧排序并生成输入帧序列;
处理模块140具体用于:
根据算法参数、输入帧序列、多个输出帧和多个算法单元,生成多个任务。
可选的,创建模块110具体用于:
根据用户的第二输入操作确定显示适配器;
获取目标平台的设备上下文;
根据显示适配器、目标平台和设备上下文,创建目标平台对应的目标平台实例。
可选的,创建模块110具体用于:
根据用户的第一输入操作确定目标平台和共享平台;
创建共享平台对应的共享平台实例,并通过共享平台实例创建目标平台对应的目标平台实例。
本实施例提供的基于异构平台的数据处理装置可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。
基于同一发明构思,本申请实施例还提供了一种电子设备。图5为本申请实施例提供的电子设备的结构示意图,如图5所示,该实施例的电子设备包括:至少一个处理器20(图5中仅示出一个)、存储器21以及存储在存储器21中并可在至少一个处理器20上运行的计算机程序22,处理器20执行计算机程序22时实现上述任意各个电子设备控制方法实施例中的步骤。
所称处理器20可以是中央处理单元(Central Processing Unit,CPU),该处理器20还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器21在一些实施例中可以是电子设备的内部存储单元,例如电子设备的硬盘或内存。存储器21在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器21还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器21用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器21还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种基于异构平台的数据处理方法,其特征在于,包括:
根据用户的第一输入操作确定目标平台,并创建所述目标平台对应的目标平台实例,其中,所述目标平台为预设的多个异构平台中的其中一个平台;
在所述目标平台实例中注册用户预先导入的脚本;
根据预先设定的数据封装格式将所述目标平台实例的内存封装为多个通用帧;
根据所述目标平台实例和所述脚本处理所述通用帧。
2.根据权利要求1所述的方法,其特征在于,所述脚本包括多个算法函数,所述根据所述目标平台实例和所述脚本处理所述通用帧,包括:
根据所述多个算法函数的名称、输入类型和输出类型,生成每个所述算法函数对应的算法单元,所述算法单元用于执行所述算法函数;
根据多个通用帧和多个算法单元生成多个任务,每个任务用于根据对应的算法单元处理所述任务对应的通用帧;
在所述目标平台实例中执行所述多个任务。
3.根据权利要求1所述的方法,其特征在于,所述通用帧包括输入帧和输出帧,所述根据预先设定的数据封装格式将所述目标平台实例的内存封装为多个通用帧,包括:
获取所述脚本的输入格式和输出格式;
根据预先设定的数据封装格式和所述输入格式,将所述目标平台实例的内存封装为多个输入帧;
根据预先设定的数据封装格式和所述输出格式,将所述目标平台实例的内存封装为多个输出帧。
4.根据权利要求3所述的方法,其特征在于,在所述根据所述目标平台实例和所述脚本处理所述通用帧之前,所述方法还包括:
获取用户预设的算法单元的算法参数;
根据用户预设的处理序列,将所述多个输入帧排序并生成输入帧序列;
所述根据多个通用帧和多个算法单元生成多个任务,包括:
根据所述算法参数、所述输入帧序列、所述多个输出帧和所述多个算法单元,生成所述多个任务。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述创建所述目标平台对应的目标平台实例,包括:
根据用户的第二输入操作确定显示适配器;
获取所述目标平台的设备上下文;
根据所述显示适配器、所述目标平台和所述设备上下文,创建所述目标平台对应的目标平台实例。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述根据用户的第一输入操作确定目标平台,并创建所述目标平台对应的目标平台实例,包括:
根据用户的第一输入操作确定目标平台和共享平台;
创建所述共享平台对应的共享平台实例,并通过所述共享平台实例创建所述目标平台对应的目标平台实例。
7.一种基于异构平台的数据处理装置,其特征在于,所述装置包括:
创建模块,用于根据用户的第一输入操作确定目标平台,并创建所述目标平台对应的目标平台实例,其中,所述目标平台为预设的多个异构平台中的其中一个平台;
注册模块,用于在所述目标平台实例中注册用户预先导入的脚本;
封装模块,用于根据预先设定的数据封装格式将所述目标平台实例的内存封装为多个通用帧;
处理模块,用于根据所述目标平台实例和所述脚本处理所述通用帧。
8.根据权利要求7所述的装置,其特征在于,所述脚本包括多个算法函数,所述处理模块具体用于:
根据所述多个算法函数的名称、输入类型和输出类型,生成每个所述算法函数对应的算法单元,所述算法单元用于执行所述算法函数;
根据多个通用帧和多个算法单元生成多个任务,每个任务用于根据对应的算法单元处理所述任务对应的通用帧;
在所述目标平台实例中执行所述多个任务。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于在调用所述计算机程序时执行如权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的方法。
CN202010380545.5A 2020-05-08 2020-05-08 基于异构平台的数据处理方法、装置和电子设备 Active CN113626506B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010380545.5A CN113626506B (zh) 2020-05-08 2020-05-08 基于异构平台的数据处理方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010380545.5A CN113626506B (zh) 2020-05-08 2020-05-08 基于异构平台的数据处理方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN113626506A true CN113626506A (zh) 2021-11-09
CN113626506B CN113626506B (zh) 2024-10-11

Family

ID=78377107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010380545.5A Active CN113626506B (zh) 2020-05-08 2020-05-08 基于异构平台的数据处理方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN113626506B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064674A (en) * 1997-10-22 2000-05-16 International Business Machines Corporation Method and apparatus for hardware forwarding of LAN frames over ATM networks
US20080066046A1 (en) * 2006-09-11 2008-03-13 The Mathworks, Inc. Hardware definition language generation for frame-based processing
US20090222763A1 (en) * 2007-06-29 2009-09-03 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
CN104917815A (zh) * 2015-04-21 2015-09-16 武大吉奥信息技术有限公司 一种用于云中gis服务计算的异构云隔离系统及方法
CN105187332A (zh) * 2015-08-05 2015-12-23 武汉森岩科技有限公司 基于Zigbee网络的多源数据传输方法
CN110413662A (zh) * 2019-08-05 2019-11-05 中国地质大学(北京) 一种多通道式经济数据输入系统、采集系统与方法
US20200162436A1 (en) * 2017-07-20 2020-05-21 Huawei International Pte. Ltd. System and method for managing secure communications between modules in a controller area network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064674A (en) * 1997-10-22 2000-05-16 International Business Machines Corporation Method and apparatus for hardware forwarding of LAN frames over ATM networks
US20080066046A1 (en) * 2006-09-11 2008-03-13 The Mathworks, Inc. Hardware definition language generation for frame-based processing
US20090222763A1 (en) * 2007-06-29 2009-09-03 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
CN104917815A (zh) * 2015-04-21 2015-09-16 武大吉奥信息技术有限公司 一种用于云中gis服务计算的异构云隔离系统及方法
CN105187332A (zh) * 2015-08-05 2015-12-23 武汉森岩科技有限公司 基于Zigbee网络的多源数据传输方法
US20200162436A1 (en) * 2017-07-20 2020-05-21 Huawei International Pte. Ltd. System and method for managing secure communications between modules in a controller area network
CN110413662A (zh) * 2019-08-05 2019-11-05 中国地质大学(北京) 一种多通道式经济数据输入系统、采集系统与方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张东海, 薛福珍, 罗超: "SCADA系统中开放式通信模型的设计及应用", 化工自动化及仪表, no. 06 *
张东海, 薛福珍, 罗超: "SCADA系统中开放式通信模型的设计及应用", 化工自动化及仪表, no. 06, 30 December 2004 (2004-12-30) *

Also Published As

Publication number Publication date
CN113626506B (zh) 2024-10-11

Similar Documents

Publication Publication Date Title
CN108062252B (zh) 一种信息交互方法、对象管理方法及装置和系统
CN109144710B (zh) 资源调度方法、装置及计算机可读存储介质
CN111258744A (zh) 一种基于异构计算的任务处理方法及软硬件框架系统
US9069549B2 (en) Machine processor
CN107688495B (zh) 调度处理器的方法及设备
CN105068855B (zh) 一种编译安卓包开发文件的方法、服务器和系统
CN109358956B (zh) 服务调用方法
CN108108239A (zh) 一种业务功能的提供方法、装置及计算机可读存储介质
CN111209122B (zh) 接口调用方法、装置、电子设备及存储介质
CN111596927B (zh) 服务部署方法、装置及电子设备
CN106959891A (zh) 一种实现gpu调度的集群管理方法和系统
CN113051047B (zh) 识别安卓系统绘制线程的方法、装置、移动终端及存储介质
US20130198325A1 (en) Provision and running a download script
WO2019117767A1 (en) Method, function manager and arrangement for handling function calls
US20230185595A1 (en) Method for realizing live migration, chip, board, and storage medium
CN112612460B (zh) 接口的封装和调用方法、电子设备、及存储介质
CN112001837B (zh) Cdvs多进程驱动方法、装置、电子设备及存储介质
CN116501458A (zh) 一种任务执行方法、设备和计算机可读存储介质
CN113626506B (zh) 基于异构平台的数据处理方法、装置和电子设备
CN115775199A (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
EP3791274B1 (en) Method and node for managing a request for hardware acceleration by means of an accelerator device
Wrede et al. Enabling efficient use of algorithmic skeletons in cloud environments: container-based virtualization for hybrid CPU-GPU execution of data-parallel skeletons
US9547522B2 (en) Method and system for reconfigurable virtual single processor programming model
CN116258808A (zh) 物体渲染方法、装置、设备、介质和程序产品
CN108829502B (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
GR01 Patent grant