未按我在Visual Studio中使用nvcc的预期应用uint =“ unsigned int”

问题描述 投票:0回答:1

对不起,VS2013仍然存在,但我认为这不是问题。相同的代码可以在linux上正确编译。我假设我需要定义uint而不是编辑100多行代码。我在以下代码的第一行上收到“错误:显式类型丢失(假定为“ int”)”

__device__ uint inline get_smid(void)
{
  uint ret;
  asm("mov.u32 %0, %%smid ;" : "=r"(ret) );
  return ret; 
}

在应用程序的属性处只有CUDA =>主机=>我放入的预处理程序定义

WIN32;uint="unsigned int"

这似乎可以修复“假定的int”,但现在我收到“错误:期望声明”用源中的unsigned int替换uint可以编译而不会出错。有很多uint,这在linux构建中会中断。除了'uint =“ unsigned int”'之外还需要其他吗?可能是导致NVCC接受uint而不给出错误的开关?

刚刚发现了很多ushort,我猜也是一样的问题。另外,查看Linux构建,源代码是用gcc编译的,但是链接是用nvcc完成的,所以有所不同。

====样本CUDA具有ushort ====我一定没有正确设置包含,因为这些变量可能可以使用。

c++ cuda nvcc
1个回答
0
投票

我放弃了尝试像示例CUDA程序那样定义uint或ushort

typedef unsigned int uint;
typedef unsigned short ushort;

所以我只是将它们放在需要它的每个cu文件中。

© www.soinside.com 2019 - 2024. All rights reserved.