Str*_*ger 46

它支持NVIDIA硬件,支持计算能力2.0和CUDA 3.1:

CUDA C / C++ 新增的语言功能包括:

对函数指针和递归的支持使得将许多现有算法移植到Fermi GPU变得更加容易

http://developer.nvidia.com/object/cuda_3_1_downloads.html

函数指针: http ://developer.download.nvidia.com/compute/cuda/sdk/website/CUDA_Advanced_Topics.html#FunctionPointers

递归: 我在NVIDIA的网站上找不到代码示例,但在论坛上有人发布了这个:

__device__ int fact(int f)
{
  if (f == 0)
    return 1;
  else
    return f * fact(f - 1);
}
Run Code Online (Sandbox Code Playgroud)

  • 拥有"最近"的硬件是不够的.并非所有最近的卡都是费米(又名计算能力2.0).目前,还没有费米移动GPU. (2认同)

Mat*_*gro 12

是的,请参阅NVIDIA CUDA编程指南:

设备功能仅支持为计算能力2.0的设备编译的设备代码中的递归.

你需要一张费米卡来使用它们.


tts*_*ras 9

即使它只支持特定芯片的递归,你有时也可以通过"模拟"递归逃脱:看看我如何使用CUDA光线跟踪器的编译时递归.


use*_*567 7

在CUDA 4.1版本中,CUDA仅支持__device__函数的递归,但不支持__global__函数的递归.


小智 5

仅在兼容设备上具有2.0计算能力之后