繁体   English   中英

NumaPro Cuda设备功能-返回多个阵列和本地内存

[英]NumaPro Cuda Device Function - Return multiple Arrays and local memory

如果您想编写一个返回多个数组的设备函数,是否有人知道cuda.jit装饰器的正确语法是什么?

如果我的设备函数应返回一个float并具有两个整数参数,则我的装饰器将是:

@cuda.jit('float64(int64,int64)', device=True, inline=True)

现在,我希望函数采用两个整数参数和两个浮点数,并返回2个浮点数数组和2个整数数组,它们的长度都相同(在3到5之间),具体取决于输入参数。 我怎么做? 正确吗:

@cuda.jit(restype=[float64[:], int64[:], float64[:], int64[:]], argtypes=[int64, int64, float64, float64], device=True, inline = True)

同样在我的函数中,我将使用以下cuda.local.array()创建要返回的数组: cuda.local.array()由于我使用inline = True,我怀疑这将起作用并且只能由相应线程访问数组,对吗?

现在,我希望函数采用两个整数参数和两个浮点数,并返回2个浮点数数组和2个整数数组

您真正要说的是,您希望JIT内核返回一个元组(两个数组)。 不幸的是,在nopython前端中,我认为这是不合法的。 nopython中没有对象支持,因此您无法实例化并返回一个元组对象。

同样在我的函数中,我将使用以下命令创建要返回的数组:cuda.local.array()

不幸的是,这也不被支持。 返回作为参数传递给函数的数组是合法的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM