gpt4 book ai didi

CUDA __global__ 函数递归

转载 作者:行者123 更新时间:2023-12-02 21:49:34 25 4
gpt4 key购买 nike

我在 CUDA 中有一个 __global__ 函数。它可以调用自己吗?

这是我的例子:

__global__ void 
force_create_empty_nodes (struct NODE *Nodes, int topnode, int bits, int no, int x, int y,
int z, struct topnode_data *TopNodes)
{
/// * Some code *///
force_create_empty_nodes <<<1, 8>>>(Nodes, topnode+1, bits+1, no+1,
x+1, y+1, z+1, TopNodes);
}

我收到的错误是:

error: kernel launch from __device__ or __global__ functions requires separate compilation mode

这是我的 make 命令:

nvcc -c -arch compute_35 cudaForceNodes.cu -o obj/cudaForceNodes.o

最佳答案

从另一个内核调用一个内核称为动态并行。它的文档是 here

它需要:

  1. 计算能力 3.5 的设备。您可以通过运行 cuda deviceQuery 示例来了解设备的计算能力。
  2. 编译命令中的各种开关,包括指定 cc3.5 架构编译的开关、单独(设备)编译所需的开关以及与设备运行时链接的开关。

由于您的 GT550M 不是 cc 3.5 设备,因此您将无法使用此功能。没有其他方法可以从内核内部调用内核。

关于CUDA __global__ 函数递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com