visual-studio-2010 - 为 CUDA 内核调用设置 Visual Studio Intellisense

标签 visual-studio-2010 cuda intellisense gpu

我刚刚开始 CUDA 编程,并且进展顺利,我的 GPU 被识别出来了。我已经使用这个非常有用的指南在 Visual Studio 中部分设置了 Intellisense:
http://www.ademiller.com/blogs/tech/2010/10/visual-studio-2010-adding-intellisense-support-for-cuda-c/

和这里:
http://www.ademiller.com/blogs/tech/2011/05/visual-studio-2010-and-cuda-easier-with-rc2/

但是,Intellisense 仍然无法接收这样的内核调用:

// KernelCall.cu
#include <iostream>
#include "cuda.h"
#include "cuda_runtime.h"
#include "device_launch_parameters.h"

__global__ void kernel(void){}

int main()
{
    kernel<<<1,1>>>();

    system("pause");
    return 0;
}

行 kernel<<<1,1>>>() 带有红色下划线,特别是第一个箭头左侧的一个箭头,错误为“错误:预期和表达式”。但是,如果我将鼠标悬停在该函数上,它的返回类型和参数会正确显示。它仍然编译得很好,我只是想知道如何摆脱这个小烦恼。

最佳答案

Visual Studio 为 C++ 提供 IntelliSense,火箭科学家博客中的技巧基本上依赖于 CUDA-C 与 C++ 的相似性,仅此而已。

在C++语言中,正确解析尖括号很麻烦。你有 <作为小于和用于模板,以及 <<作为转变,记得不久前我们不得不在嵌套的模板声明之间放置一个空格。

所以事实证明,提出这种语法的 NVIDIA 人并不是语言专家,他碰巧选择了最糟糕的分隔符,然后将其增加了三倍,好吧,你会遇到麻烦。令人惊讶的是,Intellisense 在看到这一点时竟然能正常工作。

我知道在 CUDA 中获得完整 IntelliSense 的唯一方法是从运行时 API 切换到驱动程序 API。 C++ 只是 C++,而 CUDA 仍然是(某种)C++,没有 <<<>>>语言解析必须解决的坏处。

关于visual-studio-2010 - 为 CUDA 内核调用设置 Visual Studio Intellisense,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6061565/

相关文章:

visual-studio - 为什么 Visual Studio 会复制我的菜单和按钮?重新安装和配置文件删除后仍然存在

c# - 框架约定的静态检查

c# - 如何在 C# 中为我的应用程序提供等效的 Excel-VBA 环境

cuda - CUDA 设备功能如何工作?

Windows 终端/Powershell 智能感知

c# - 如何在 Visual Studio 2019 中为 c# 定义默认名称字段建议

java - 从 servlet 运行 C++ exe

c# - 生产项目的代码指标(C#、Visual Studio)的常用值

ubuntu - 在 Ubuntu 10.04 上安装 OpenCL

c++ - 如何同时使用推力和 valgrind 来检测内存泄漏?