关于cu和.cuh文件高亮 VS2010

本文介绍如何在VS2010环境下配置CUDA编程环境,包括C/C++和CUDA关键字高亮显示、CUDA函数高亮及代码提示等功能。通过详细步骤指导读者设置文件扩展名、复制必要文件并安装VisualAssistX来增强开发体验。
部署运行你感兴趣的模型镜像

原文地址:http://www.haogongju.net/art/94989

CUDA C/C++关键字和函数高亮显示:

在上面HelloWorldCuda.cu文件中发现CUDA C/C++的关键字__global__等没有高亮显示,而且还有下划曲线。下面进行CUDA C/C++关键字和函数的语法高亮显示,配置Visual AssistX 函数高亮,代码提示等功能

下面是关于代码高亮的设置。共三个设置

1.       .cu文件中C/C++关键字高亮

这个设置是让VS2010编辑.cu文件时,把.cu文件里的C/C++语法高亮。

设置方法: 在VS2010的菜单 依次点击:“Tools|Options…|Text Editor|File Extension”,在这个界面里: “Editor”下拉框选“Microsoft Visual C++”,在“Extension”文本框输入.cu 点击“Add”按钮 ,重复工作把.cuh 添加为vc++类型,点击确定按钮。 把全部.cu文件关闭,再打开,.cu文件C++关键字就高亮了。如果不行就重启VS2010。但是CUDA的关键字还是黑色的,下一步把CUDA关键自高亮显示。

2.       CUDA关键字高亮

为了让CUDA的关键字,如__device__、dim3之类的文字高亮,需要如下步骤:

把SDK_PATH\C\doc\syntax_highlighting\usertype.dat 复制到X:\Program Files (X86)\Microsoft Visual Studio 10.0\Common7\IDE\ 目录下  

这里 X:是安装VS2010盘符,这是win7 64位下的路径。

注意:win7 64系统不要复制到这个目录里,复制到这里是不会CUDA关键字高亮的:

X:\Program Files \Microsoft Visual Studio 10.0\Common7\IDE\
(如果你的win7是32位的,可能正好是上面这个目录,应该会高亮的,这是win7 64位和32位的差别)

再次强调:SDK_PATH要换成你安装SDK的实际路径,不要直接使用这个字符串。

VS2010需要重启,重启后打开.cu文件,CUDA的关键字应该变成蓝色了。

 

3. CUDA 函数高亮,及CUDA函数输入代码提示
 实现这个功能就要使用VAssistX了。 首先安装支持VS2010的Visual AssistX, 在CUDA 安装前、后安装都行。需要两步实现需要的功能:

a) 让Visual AssistX支持CUDA函数高亮和代码完成。在VS2010菜单里依次点击: “VAssistX->Visual assist X Options->Projects->C/C++Directories”在这个界面的 “Platform”下拉框选 Custom,在“Show Directories for..“下拉框选 Other include files, 然后在下面的输入框里,新建、添加三个路径,点击确定,三个路径分别如下:

 SDK_PATH的\c\common\inc
       SDK_PATH的\shared\inc
       X:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include

这里SDK_PATH要用你安装的SDK路径代替,X:是你的CUDA toolkit安装盘符。

这样分别在这三个目录里面的.h文件定义的函数和类型VAssistX会帮我们在编辑文件时候实现高亮和完成代码。如果少包含一个路径,这个目录里的.h定义的函数和类型就不会高亮和提示了。

 

b)让Visual AssistX支持.cu文件,也就让Visual AssistX帮我们实现.cu文件高亮和代码完成功能,需要编辑注册表。首先关闭VS2010,点击开始菜单输入regedit打开注册表,找到如下位置:HKEY_CURRENT_USER\Software\Whole Tomato\Visual Assist X\VANet10。在右边找到ExtSource项目,鼠标右键选修改,在原有文字后添加如下文字:.cu;.cuh; 确定后
 关闭注册表,重新打开vs2010,Visual AssistX开始支持.cu及.cuh文件的语法高亮及代码完成。此时.cu文件的CUDA函数是高亮的,使用函数名符号就会自动提示函数全称,参数类型等信息了。

经过上面的安装,开发程序应该没问题了,但会发现有如下的问题:

1. VS2010显示.cu文件时,有很多CUDA函数下有波浪线

2. 在.cu文件里使用VS2010的“Go to definition”功能查无法找到CUDA函数的定义。

这两个问题的原因是VS2010不认识这些函数,没有指定它们在那个头文件里包含的。解决方法其实是一样的,把CUDA tookit 和CUDA SDK的头文件路径加到VS2010的VC++目录里面。


原文地址:http://www.slyar.com/blog/win7-vs2010-vax-1845.html

VS2010 visual assistant 安装

首先下载 Visual Assist X 10.6.1845 原版及破解补丁,

下载以后解压缩,首先安装原版。然后(只针对VS2010),将压缩包内的 VA_X.dll 复制到以下文件夹内,覆盖原文件

WinXP系统:

%USERPROFILE%\Local Settings\Application Data\Microsoft\VisualStudio\10.0\Extensions\Whole Tomato Software\Visual Assist X\10.6.1845.0

Win7系统:

%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Whole Tomato Software\Visual Assist X\10.6.1845.0

这样就可以成功破解了。


您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### C++中 `.cuh` 文件与 `.h` 文件作为头文件的区别 在C++编程中,`.cuh` 文件 `.h` 文件都用作头文件,但它们的使用场景功能存在显著差异。以下是两者的主要区别: #### 1. 文件命名约定及用途 - **`.h` 文件**:这是标准的C/C++头文件扩展名,通常用于声明函数、类、结构体、宏以及其他全局变量或常量[^1]。头文件的主要目的是提供接口定义,供其他源文件包含并使用。 - **`.cuh` 文件**:这是CUDA(Compute Unified Device Architecture)专用的头文件扩展名,主要用于CUDA程序中的主机代码设备代码的声明[^2]。`.cuh` 文件通常包含与CUDA相关的宏、模板、类函数声明。 #### 2. CUDA相关特性支持 - **`.h` 文件**:不直接支持CUDA特性的声明,例如`__global__`、`__device__`、`__host__`等关键字[^1]。这些关键字是CUDA特有的,用于区分主机代码设备代码。 - **`.cuh` 文件**:专门设计用于支持CUDA特性。它允许在同一文件中声明既能在主机上运行又能被GPU调用的函数,例如通过`extern "C"`声明跨语言兼容性[^2]。 #### 3. 编译与链接过程 - **`.h` 文件**:在标准C++编译过程中,`.h` 文件仅在预处理阶段被包含到源文件中,并不会单独生成目标文件。 - **`.cuh` 文件**:虽然`.cuh` 文件也是头文件,但它可能包含CUDA内核函数的声明。在CUDA编译流程中,`.cuh` 文件的内容会被传递给NVCC(NVIDIA CUDA Compiler),以确保正确处理CUDA特定语法[^3]。 #### 4. 跨语言兼容性 - **`.h` 文件**:主要用于纯C/C++环境中,不涉及跨语言调用问题。 - **`.cuh` 文件**:常用于需要跨语言调用的场景,例如在C++代码中调用CUDA内核函数。通过`extern "C"`声明,可以避免C++名称修饰带来的问题。 #### 示例代码对比 以下是两个文件类型的简单示例: ##### `.h` 文件示例 ```cpp // example.h #ifndef EXAMPLE_H #define EXAMPLE_H void host_function(); #endif // EXAMPLE_H ``` ##### `.cuh` 文件示例 ```cpp // example.cuh #ifndef EXAMPLE_CUH #define EXAMPLE_CUH #include <cuda_runtime.h> extern "C" void host_function(); __global__ void device_function(); #endif // EXAMPLE_CUH ``` ### 总结 `.h` 文件适用于通用的C/C++开发,而`.cuh` 文件则专为CUDA编程设计,能够更好地支持CUDA特有的语法功能。选择哪种文件类型取决于具体的开发需求环境。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值