0
可以说我malloc
一些结构在内核中,我执行了一些计算。然后我想返回这些变量,但是当我初始化内核时,它们并没有作为指针发送,所以如果我想返回这些值。我会怎么做呢?下面的示例代码。我如何有效地返回内核malloc数据回到CPU
我只是问这是一个普遍的问题,不解决下面的代码。我遇到过其他问题,我不知道怎么去解决这个问题。我明白,你可以抛出一个指针并将结果复制到它上面。然而,如果结果的大小不是预先确定的,那么这将非常困难。所以我在问是否有更好的方法。
__global__ void addKernel()
{
int* c = (int*)malloc(sizeof(int) * 32);
#pragma unroll
for (int i = 0; i < 32; i++){
c[i] += 1;
}
}
我已经阅读过这个部分,但并没有准备好放弃这个想法:)我正在考虑使用uva和一个标题来指示数据是否被gpu和cpu操纵继续扫描位置。这是个好主意吗?如果你想让我把代码写出来,我会在家以后做。 –
我想你应该提供一些关于你正试图解决的问题的更多信息。有许多不同的策略可以用来处理输出可变数据量的内核,您通常不需要设备端malloc。 –