CN104615583B - 基于gpu平台实现数据处理的方法和装置 - Google Patents
基于gpu平台实现数据处理的方法和装置 Download PDFInfo
- Publication number
- CN104615583B CN104615583B CN201510041981.9A CN201510041981A CN104615583B CN 104615583 B CN104615583 B CN 104615583B CN 201510041981 A CN201510041981 A CN 201510041981A CN 104615583 B CN104615583 B CN 104615583B
- Authority
- CN
- China
- Prior art keywords
- parameter
- platform
- gpu
- space
- function
- 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
Landscapes
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于GPU平台实现数据处理的方法和装置,其中,方法包括:从通用计算平台的函数体中提取进行函数计算时所需的参数;将通用计算平台中数据结构类型为变长数组的每个参数建立单独的参数;将通用计算平台中数据结构类型为非变长数组的所有参数建立一个结构体,形成一个结构体型参数;完成通用平台到GPU平台间的空间地址转换;根据GPU平台上所建立的参数的数据结构类型,对应修改函数体中的参数申明和参数引用点;在GPU平台上运行经过参数申明和参数引用点修改的函数;将函数运行后的计算结果的地址从GPU平台的地址空间转换为通用计算平台的地址空间。通过所述方法和装置可以提高GPU平台的数据处理效率。
Description
技术领域
本发明涉及计算处理领域,尤其涉及一种基于GPU平台实现数据处理的方法和装置。
背景技术
可编程图形处理单元(Graphic Processing Unit,GPU)已经发展成为一种高度并行化、多线程以及多核的处理器。由于其在浮点运算、并行计算等方面的优异性能,GPU的应用早已不再局限于图像处理,将GPU平台用于处理大规模数据运算的通用计算技术也得到了重大发展。目前,基于现有的通用计算平台,并结合GPU平台加速数据处理已成为如医疗、探测等多领域中广泛应用的业务解决方案。
然而,由于算法复杂,参数众多以及数据耦合度大等原因,在通过GPU平台进行数据处理和函数计算的过程中,每一个步骤或者任何一个参数出错都会导致计算结果错误。并且,由于GPU本身的多线程调试相对困难,当存在错误而又没有进行正确性检测时,还会导致后续调试的难度进一步增大。这些问题都会影响到GPU平台对数据处理的计算性能,进而影响开发效率。
发明内容
本发明实施例解决的问题是如何提高GPU平台的数据处理效率。
为解决上述问题,本发明实施例提供一种基于GPU平台实现数据处理的方法,包括:从通用计算平台的函数体中提取进行函数计算时所需的参数;将所述通用计算平台中数据结构类型为变长数组的每个参数建立单独的参数;将所述通用计算平台中数据结构类型为非变长数组的所有参数建立一个结构体,形成一个结构体型参数;完成所述通用平台到所述GPU平台间的空间地址转换;根据所述GPU平台上所建立的参数的数据结构类型,对应修改所述函数体中的参数申明和参数引用点;在所述GPU平台上运行经过参数申明和参数引用点修改的函数;将函数运行后的计算结果的地址从所述GPU平台的地址空间转换为所述通用计算平台的地址空间。
可选的,所述完成所述通用平台到所述GPU平台间的空间地址转换包括:为所述函数体中的输入型参数在所述GPU平台上的地址空间分配第一空间,并将所述输入型参数的数据复制到所述第一空间中;为所述函数体中的输出型参数在所述GPU平台上的地址空间分配第二空间。
可选的,所述为所述函数体中的输入型参数在所述GPU平台上的地址空间分配第一空间,并将所述输入型参数的数据复制到所述第一空间中包括:当所述输入型参数为变长数组型参数时,在所述第一空间中将所述输入型参数复制为指向所述变长数组在所述通用平台中地址的数据。
可选的,所述在所述GPU平台上运行经过参数申明和参数引用点修改的函数包括:根据自定义设置,在所述GPU平台上启动运行所述函数的线程的维度。
可选的,所述通用计算平台为CPU平台。
可选的,所述基于GPU平台实现数据处理的方法适用于对剂量的计算。
可选的,所述进行函数计算时所需的参数包括:计算剂量的点坐标,等效密度表,等效长度表,源皮距表,通量图表,卷积核表,离轴数据,CT密度表数据,电子矫正表数据。
为了解决上述的技术问题,本发明实施例还公开了一种基于GPU平台实现数据处理的装置,包括:提取单元,适于从通用计算平台的函数体中提取需要进行函数计算时所需的参数;建立单元,适于将所述通用计算平台中数据结构类型为变长数组的每个参数建立单独的参数;将所述通用计算平台中数据结构类型为非变长数组的所有参数建立一个结构体,形成一个结构体型参数;第一转换单元,适于完成所述通用平台到所述GPU平台间的空间地址转换;修改单元,适于根据所述GPU平台上所建立的参数的数据结构类型,对应修改所述函数体中的参数申明和参数引用点;运行单元,适于在所述GPU平台上运行经过参数申明和参数引用点修改的函数;第二转换单元,适于将函数运行后的计算结果的地址从所述GPU平台的地址空间转换为所述通用计算平台的地址空间。
可选的,所述第一转换单元包括:第一分配子单元,适于为所述函数体中的输入型参数在所述GPU平台上的地址空间分配第一空间,并将所述输入型参数的数据复制到所述第一空间中;第二分配子单元,适于为所述函数体中的输出型参数在所述GPU平台上的地址空间分配第二空间。
可选的,所述第一分配子单元包括:复制模块,适于当所述输入型参数为变长数组型参数时,在所述第一空间中将所述输入型参数复制为指向所述变长数组在所述通用平台中地址的数据。
可选的,所述运行单元包括:启动子单元,适于根据自定义设置,在所述GPU平台上启动运行所述函数的线程的维度。
可选的,所述通用计算平台为CPU平台。
与现有技术相比,本发明实施例的技术方案具有以下优点:
通过将通用计算平台到GPU平台的多个参数间的复杂对应关系简化为多个简单的一对一关系,降低了数据耦合度和参数的数目众多带来的复杂性,因此只要通过简单的检验过程,即可保证函数计算中所需要的众多复杂参数的正确性,降低了后续的调试的难度,提高GPU平台的数据处理效率。
附图说明
图1是本发明实施例的一种基于GPU平台实现数据处理的方法的流程图;
图2是本发明实施例的一种基于GPU平台实现数据处理的装置的结构示意图。
具体实施方式
由于GPU在浮点运算、并行计算等方面的优异性能,通过GPU平台处理大规模数据运算的通用计算已成为多领域中广泛应用的业务解决方案。然而,由于算法复杂,参数众多以及数据耦合度大等原因,在通过GPU平台进行数据处理和函数计算的过程中,每一个步骤或者任何一个参数出错都会导致计算结果错误。并且,由于GPU本身的多线程调试相对困难,当存在错误而又没有进行正确性检测时,还会导致后续调试的难度进一步增大。这些问题都会影响到GPU平台对数据处理的计算性能,进而影响开发效率。
本发明实施例通过将通用计算平台到GPU平台的多个参数间的复杂对应关系简化为多个简单的一对一关系,降低了数据耦合度和参数的数目众多带来的复杂性,因此只要通过简单的检验过程,即可保证函数计算中所需要的众多复杂参数的正确性,降低了后续的调试的难度,提高GPU平台的数据处理效率。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
本发明实施例提供了一种基于GPU平台实现数据处理的方法,参照图1,以下通过具体步骤进行详细说明。如图1所示,所述基于GPU平台实现数据处理的方法包括:
步骤S101,从通用计算平台的函数体中提取进行函数计算时所需的参数。
在具体实施中,所述通用计算平台为进行大规模数据运算时,传统使用的计算平台,例如可以是CPU平台。与GPU平台相比,CPU平台主要是为串行指令而优化,其并行方式主要针对的是指令集并行和任务并行,而非数据并行,因此GPU平台在大规模并行运算上相对于传统通用计算平台具有较大优势。
在具体实施中,所述基于GPU平台实现数据处理的方法可以适用于医疗领域中对剂量的函数计算,因此,对应于进行的剂量计算,所述进行函数计算时所需的参数可以相应包括:计算剂量的点坐标,等效密度表,等效长度表,源皮距表,通量图表,卷积核表,离轴数据,CT密度表数据以及电子矫正表数据等参数。
可以理解的是,所述基于GPU平台实现数据处理的方法也可以适用于其他领域,例如探测等领域中的大规模数据运算。根据所适用的具体函数计算类型不同,相应的计算参数也当然不同。
步骤S102,将所述通用计算平台中数据结构类型为变长数组的每个参数建立单独的参数;将所述通用计算平台中数据结构类型为非变长数组的所有参数建立一个结构体,形成一个结构体型参数。
通常数组对存储空间长度的要求是固定的。这样在系统初始化时就可以为其分配相应的固定存储空间。但是在有些情况下,在程序中有些数据的长度只有在实际运行时才能知道,此时就要根据临时需要,申请动态存储空间使用。因而不能静态地为该数据分配存储空间,而需要通过指针的形式动态分配存储空间以适应该变长数组的需要。
之所以不能在一个结构体中设置变长数组,是因为:当参数为变长参数时,如果在一个结构体中包含多个变长参数,则意味着需要在一个结构体中设置包含多个指针型成员以保存指向相关数据的地址。例如:
上述示例定义了一个DataHolder的结构体,其中,定义了两个指向变长数组数据的指针以及一个双精度浮点型参数。通过该结构体DataHolder,想要传递一个val1和两个指向变长数组数据的地址给GPU平台。
在数据传递的过程中,可以调用cudaMalloc和cudaMemcpy两个函数。其中,前者负责在GPU上分配内存,后者负责在GPU和CPU地址间拷贝数据,相关伪代码如下所示:
DataHolder*pHolder;
1、cudaMalloc((void**)&pHolder,sizeof(DataHolder));
2、cudaMalloc((void**)&pHolder->pAddr1,sizeof(int)*100);
//we assume this address point to a array of int*100
3、cudaMalloc((void**)&pHolder->pAddr2,sizeof(int)*100);
//we assume this address point to a array of int*100
……
4、cudaMemcpy(…)
上面的伪代码可以通过编译和链接,但是还未进行第4步的数据拷贝阶段,在运行阶段时就会崩溃。其中,在运行阶段,第1步可以正常运行,第2步和第3步会导致崩溃。这是因为,在第2步中,为第一个变长数组分配了100个存储单元作为其存储空间。同样的,在第3步中,为第二个变长数组分配了100个作为其存储空间。然而由于变长数组的实际数据段长度不确定,可能导致该变长数组占用了后续参数的存储空间,即发生了访问越界。
因此对于变长数组型的参数我们需要为其单独设置一个参数,如:int*pAddr1;在数据传递的过程中,在执行cudaMalloc((void**)&pAddr1,sizeof(int)*100)时,就不会发生上述访问越界的问题。在结构体中则仅能包含非变长数组的简单类型参数。
在具体实施中,可以通过建立一个翻译器执行所述步骤S102,即根据参数的不同类型,分别处理。
在现有的利用GPU平台进行运算加速时,由于是在GPU的计算函数中单独为建立一个参数的方式传入,会导致需要传入的参数个数过多,增加计算函数的复杂度,不利于GPU计算函数的改写。而本发明实施例通过一个结构体包含所有的非变长数组数据,可以减少参数的个数,而且对相应的计算函数的改动较小,只要在相应的计算函数中使用到该参数时,改为该结构体的对应值域即可。
步骤S103,完成所述通用平台到所述GPU平台间的空间地址转换。
在具体实施中,所述步骤S103可以具体包括:为所述函数体中的输入型参数在所述GPU平台上的地址空间分配第一空间,并将所述输入型参数的数据复制到所述第一空间中;为所述函数体中的输出型参数在所述GPU平台上的地址空间分配第二空间。
在上述的具体实施中,当所述输入型参数为变长数组型参数时,可以在所述第一空间中将所述输入型参数复制为指向所述变长数组在所述通用平台中地址的数据。
在上述的具体实施中,可以通过调用上述的cudaMalloc和cudaMemcpy两个函数完成存储空间分配以及所述通用平台和所述GPU平台地址间的数据拷贝。
在具体实施中,可以通过前文所述的翻译器统一完成所述通用平台到所述GPU平台的地址空间转换。所述翻译器相比较于传统的从CPU到GPU加速过程,增加的开销仅为对一个包含所需的参数列表的结构体的赋值过程和该结构体参数的传递过程,所述翻译器由于增加的这两步操作带来的时间开销小于1毫秒,这与后续计算过程中所需要的时间相比较,可认为带来的影响可以忽略。
步骤S104,根据所述GPU平台上所建立的参数的数据结构类型,对应修改所述函数体中的参数申明和参数引用点。
改变原计算函数的参数申明和参数引用点是为了改变原计算函数以适应输出的参数数据结构类型。所述改变后的函数即为在GPU平台地址空间上运行的计算函数。
在通过GPU平台加速运算所述通用平台中运算的函数时,由于所述通用平台和所述GPU平台的内存地址空间不同,且二者的并行化方式不同,从而导致计算函数函数体中参数的形式和参数的数目也会发生变化,所以需要根据这些变化改写相应的计算函数的参数形式与参数数目,即改变原计算函数的参数申明和参数引用点。具体来说,相应的改写可以包括:
1、增加原通用平台计算函数的参数列表中没有的参数。由于所述通用平台和所述GPU平台的内存地址空间不同,在所述通用平台的计算函数中可以直接访问到的某些数据,在GPU平台中可能无法访问。例如,在医疗领域的剂量计算中,一个全局的CT值到密度之间的转换表参数,在原通用平台,如CPU平台的计算函数中,可能就未作为参数传入而直接在函数体中使用,而到GPU平台中就需要将该密度转换表也作为计算函数的一个参数并拷贝到GPU的地址空间上。
2、改变输入参数的类型。例如,在医疗领域的剂量计算中,原通用平台的计算函数中,由于是对传入的坐标点剂量值依次计算,因此该函数仅仅就传入一个点的坐标,而在GPU平台中由于可以同时计算多个点的剂量,所以就要将多个坐标点以数组的形式,将所有要计算的点的坐标都传入。
3、改变输出参数的类型。例如,在医疗领域的剂量计算中,原通用平台的计算函数中,对某点的剂量值的计算值可能是用函数返回值返回,而在GPU平台中由于可以同时计算多个点,因此需要以一个数组的形式保存输出参数的输出结果。
步骤S105,在所述GPU平台上运行经过参数申明和参数引用点修改的函数。
在具体实施中,可以根据自定义设置,在所述GPU平台上启动运行所述函数的线程的维度。所述自定义维度是指在所述GPU平台上启动计算函数的线程的维度。随着硬件的升级,所述自定义维度的设置可以相应增大,以完全发挥硬件的计算能力。
步骤S106,将函数运行后的计算结果的地址从所述GPU平台的地址空间转换为所述通用计算平台的地址空间。
在具体实施中,可以通过前文所述的翻译器统一完成所述通用平台到所述GPU平台的地址空间转换。
原来的通用平台的参数到GPU平台之间对应关系为一个参数对多个引用的参数,而本发明实施例,通过将非变长数组参数封装成一个统一的结构体参数,使对应关系变为一个参数对应一结构体参数,减少了需要传递的参数个数,从而降低了出错的可能,同时能够方便地在结构体中进行正确性检查,降低了参数的数目众多带来的复杂性。通过将通用平台到GPU平台的多个参数间的复杂对应关系简化为多个简单的一对一关系,只要通过相应的简单检验过程,即可保证大规模数据运算所需要的众多复杂参数的正确性。
本发明实施例还公开了一种基于GPU平台实现数据处理的装置。如图2所示,所述基于GPU平台实现数据处理的装置20可包括:提取单元201、建立单元202、第一转换单元203、修改单元204、运行单元205以及第二转换单元206。其中:
所述提取单元201适于从通用计算平台的函数体中提取需要进行函数计算时所需的参数;
所述建立单元202适于将所述通用计算平台中数据结构类型为变长数组的每个参数建立单独的参数;将所述通用计算平台中数据结构类型为非变长数组的所有参数建立一个结构体,形成一个结构体型参数;
所述第一转换单元203适于完成所述通用平台到所述GPU平台间的空间地址转换;
所述修改单元204适于根据所述GPU平台上所建立的参数的数据结构类型,对应修改所述函数体中的参数申明和参数引用点;
所述运行单元205适于在所述GPU平台上运行经过参数申明和参数引用点修改的函数;
所述第二转换单元206适于将函数运行后的计算结果的地址从所述GPU平台的地址空间转换为所述通用计算平台的地址空间。
在具体实施中,所述第一转换单元203可以包括:第一分配子单元,适于为所述函数体中的输入型参数在所述GPU平台上的地址空间分配第一空间,并将所述输入型参数的数据复制到所述第一空间中;第二分配子单元,适于为所述函数体中的输出型参数在所述GPU平台上的地址空间分配第二空间。
在具体实施中,所述第一分配子单元可以包括:复制模块,适于当所述输入型参数为变长数组型参数时,在所述第一空间中将所述输入型参数复制为指向所述变长数组在所述通用平台中地址的数据。
所述运行单元205可以包括:启动子单元,适于根据自定义设置,在所述GPU平台上启动运行所述函数的线程的维度。
在具体实施中,所述通用计算平台可以采用CPU平台,也可以是DSP平台,或者其他具有数据计算能力的处理平台。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (12)
1.一种基于GPU平台实现数据处理的方法,其特征在于,包括:
从通用计算平台的函数体中提取进行函数计算时所需的参数;
将所述通用计算平台中数据结构类型为变长数组的每个参数建立单独的参数;将所述通用计算平台中数据结构类型为非变长数组的所有参数建立一个结构体,形成一个结构体型参数;
完成所述通用计算平台到所述GPU平台间的空间地址转换;
根据所述GPU平台上所建立的参数的数据结构类型,对应修改所述函数体中的参数申明和参数引用点;
在所述GPU平台上运行经过参数申明和参数引用点修改的函数;
将函数运行后的计算结果的地址从所述GPU平台的地址空间转换为所述通用计算平台的地址空间。
2.如权利要求1所述的基于GPU平台实现数据处理的方法,其特征在于,所述完成所述通用计算平台到所述GPU平台间的空间地址转换包括:
为所述函数体中的输入型参数在所述GPU平台上的地址空间分配第一空间,并将所述输入型参数的数据复制到所述第一空间中;
为所述函数体中的输出型参数在所述GPU平台上的地址空间分配第二空间。
3.如权利要求2所述的基于GPU平台实现数据处理的方法,其特征在于,所述为所述函数体中的输入型参数在所述GPU平台上的地址空间分配第一空间,并将所述输入型参数的数据复制到所述第一空间中包括:
当所述输入型参数为变长数组型参数时,在所述第一空间中将所述输入型参数复制为指向所述变长数组在所述通用计算平台中地址的数据。
4.如权利要求1所述的基于GPU平台实现数据处理的方法,其特征在于,所述在所述GPU平台上运行经过参数申明和参数引用点修改的函数包括:根据自定义设置,在所述GPU平台上启动运行所述函数的线程的维度。
5.如权利要求1所述的基于GPU平台实现数据处理的方法,其特征在于,所述通用计算平台为CPU平台。
6.如权利要求1所述的基于GPU平台实现数据处理的方法,其特征在于,所述基于GPU平台实现数据处理的方法适用于对剂量的计算。
7.如权利要求6所述的基于GPU平台实现数据处理的方法,其特征在于,所述进行函数计算时所需的参数包括:计算剂量的点坐标,等效密度表,等效长度表,源皮距表,通量图表,卷积核表,离轴数据,CT密度表数据,电子矫正表数据。
8.一种基于GPU平台实现数据处理的装置,其特征在于,包括:
提取单元,适于从通用计算平台的函数体中提取需要进行函数计算时所需的参数;
建立单元,适于将所述通用计算平台中数据结构类型为变长数组的每个参数建立单独的参数;将所述通用计算平台中数据结构类型为非变长数组的所有参数建立一个结构体,形成一个结构体型参数;
第一转换单元,适于完成所述通用计算平台到所述GPU平台间的空间地址转换;
修改单元,适于根据所述GPU平台上所建立的参数的数据结构类型,对应修改所述函数体中的参数申明和参数引用点;
运行单元,适于在所述GPU平台上运行经过参数申明和参数引用点修改的函数;
第二转换单元,适于将函数运行后的计算结果的地址从所述GPU平台的地址空间转换为所述通用计算平台的地址空间。
9.如权利要求8所述的基于GPU平台实现数据处理的装置,其特征在于,所述第一转换单元包括:
第一分配子单元,适于为所述函数体中的输入型参数在所述GPU平台上的地址空间分配第一空间,并将所述输入型参数的数据复制到所述第一空间中;
第二分配子单元,适于为所述函数体中的输出型参数在所述GPU平台上的地址空间分配第二空间。
10.如权利要求9所述的基于GPU平台实现数据处理的装置,其特征在于,所述第一分配子单元包括:
复制模块,适于当所述输入型参数为变长数组型参数时,在所述第一空间中将所述输入型参数复制为指向所述变长数组在所述通用计算平台中地址的数据。
11.如权利要求8所述的基于GPU平台实现数据处理的装置,其特征在于,所述运行单元包括:
启动子单元,适于根据自定义设置,在所述GPU平台上启动运行所述函数的线程的维度。
12.如权利要求8所述的基于GPU平台实现数据处理的装置,其特征在于,所述通用计算平台为CPU平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510041981.9A CN104615583B (zh) | 2015-01-27 | 2015-01-27 | 基于gpu平台实现数据处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510041981.9A CN104615583B (zh) | 2015-01-27 | 2015-01-27 | 基于gpu平台实现数据处理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104615583A CN104615583A (zh) | 2015-05-13 |
CN104615583B true CN104615583B (zh) | 2017-11-28 |
Family
ID=53150035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510041981.9A Active CN104615583B (zh) | 2015-01-27 | 2015-01-27 | 基于gpu平台实现数据处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104615583B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677502B (zh) * | 2016-01-05 | 2018-12-25 | 惠州市蓝微新源技术有限公司 | 通过cpu内部存储空间存储参数的方法 |
CN106339641A (zh) * | 2016-09-23 | 2017-01-18 | 珠海迈科智能科技股份有限公司 | 一种基于图像处理器的加密方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298522A (zh) * | 2011-09-13 | 2011-12-28 | 四川卫士通信息安全平台技术有限公司 | 一种使用gpu实现sha-1算法的方法 |
CN102682138A (zh) * | 2011-03-15 | 2012-09-19 | 深圳光启高等理工研究院 | 一种数据处理方法 |
CN102982009A (zh) * | 2012-11-06 | 2013-03-20 | 无锡江南计算技术研究所 | 一种用于众核处理器的函数处理方法及系统 |
CN103729180A (zh) * | 2013-12-25 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种快速开发cuda并行程序的方法 |
CN103942083A (zh) * | 2014-04-28 | 2014-07-23 | 中国人民解放军国防科学技术大学 | 一种面向可变参函数的编译实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8570333B2 (en) * | 2008-12-11 | 2013-10-29 | Nvidia Corporation | Method and system for enabling managed code-based application program to access graphics processing unit |
-
2015
- 2015-01-27 CN CN201510041981.9A patent/CN104615583B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682138A (zh) * | 2011-03-15 | 2012-09-19 | 深圳光启高等理工研究院 | 一种数据处理方法 |
CN102298522A (zh) * | 2011-09-13 | 2011-12-28 | 四川卫士通信息安全平台技术有限公司 | 一种使用gpu实现sha-1算法的方法 |
CN102982009A (zh) * | 2012-11-06 | 2013-03-20 | 无锡江南计算技术研究所 | 一种用于众核处理器的函数处理方法及系统 |
CN103729180A (zh) * | 2013-12-25 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种快速开发cuda并行程序的方法 |
CN103942083A (zh) * | 2014-04-28 | 2014-07-23 | 中国人民解放军国防科学技术大学 | 一种面向可变参函数的编译实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104615583A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387989B2 (en) | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform | |
JP6408717B2 (ja) | 画像プロセッサのためのラインバッファユニット | |
CN106547627A (zh) | 一种Spark MLlib数据处理加速的方法及系统 | |
US8854374B2 (en) | Tessellation patterns | |
CN103700123A (zh) | 基于cuda架构的gpu加速x光图像重建方法和装置 | |
CN102393826B (zh) | 一种基于多核并行处理的柔性场景连续碰撞检测方法 | |
EP3678037A1 (en) | Neural network generator | |
CN104615583B (zh) | 基于gpu平台实现数据处理的方法和装置 | |
CN105303506A (zh) | 一种基于html5的数据并行处理方法及系统 | |
Li et al. | Detail preservation and feature refinement for object detection | |
CN107704568A (zh) | 一种测试数据添加的方法及装置 | |
US20240045787A1 (en) | Code inspection method under weak memory ordering architecture and corresponding device | |
CN103809937B (zh) | 一种基于gpu的通视并行处理方法 | |
CN106598552A (zh) | 基于Gridding模块的数据点转换方法及装置 | |
CN107741881A (zh) | 基于GPU的Zernike矩快速计算方法 | |
CN107423030A (zh) | 基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法 | |
CN116415652A (zh) | 一种数据生成方法、装置、可读存储介质及终端设备 | |
Sheffler et al. | Aligning parallel arrays to reduce communication | |
Kim et al. | Optimizing seam carving on multi-GPU systems for real-time content-aware image resizing | |
Griebler et al. | Towards a domain-specific language for patterns-oriented parallel programming | |
US9805497B2 (en) | Collision-culling of lines over polygons | |
CN111105015A (zh) | 一种通用cnn推理加速器及其控制方法、可读存储介质 | |
WO2018137146A1 (zh) | 图形组态语言转换方法及装置 | |
CN102968388A (zh) | 数据布局方法及其装置 | |
CN102982009A (zh) | 一种用于众核处理器的函数处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 201807 No. 2258 Chengbei Road, Jiading Industrial Zone, Jiading District, Shanghai. Patentee after: Shanghai Lianying Medical Technology Co., Ltd Address before: 201807 No. 2258 Chengbei Road, Jiading Industrial Zone, Jiading District, Shanghai. Patentee before: SHANGHAI UNITED IMAGING HEALTHCARE Co.,Ltd. |