CUDA

时间:2017-11-11 07:12:48

标签: variables scope cuda

以下代码给出了一个错误:

Node *nodes;
__device__ Node *nodes;

错误: error: variable "nodes" has already been defined

为什么主机和设备中的变量名称不一致?
我认为它应该是可能的,因为它们有不同的范围。

1 个答案:

答案 0 :(得分:1)

  

我认为它应该是可能的,因为它们有不同的范围。

这是你的错。它们没有不同的范围。它们被标记为存在于不同的逻辑CUDA存储空间中,但这并不意味着不同的范围,因为C ++定义它。两者都在同一编译单元中编译和发出为符号,这就是发出编译器错误的原因。