[英]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.