2023年6月21日发(作者:)

Windows 7 64bit +VS2008+ CUDA 4.0安装配置完全过程

安装CUDA4.0时,碰到了很多意外,花费了较多时间,最终取得了成功,现对期间的经验教训总结如下,供大家分享,期待提高大家的工作质量和效率。

一 安装环境

Windows 7 64bit 家庭版,VS2008(安装了X64编译器),CUDA 4.0 64bit版本;

二 安装软件

Windows 7 64bit 家庭版是购买笔记本时自带的系统,不再详说。

2.1 安装VS2008

安装的professional版本,在安装时选择自定义安装,选择自己需要的组件,如下图1所示(这里借用了别人的一张图片),注意展开Visual C++子树,选中X64组件。

图1 自定义安装VS2008组件

安装完毕后,对于如何取消90天试用限制问题,采用了别人的破解办法,具体的操作方法如下: 打开 控制面板 Î 添加删除程序, 找到VS2008的安装项,运行VS2008的安装卸载程序,出现如下图2所示界面:

图2 VS2008的安装卸载界面 下载 破解程序,然后右键点击该破解程序,选择以管理员身份运行,出现如下的图3所示界面:

图3 破解程序界面

点击图3右上角 按钮“Bug 微软”,则久违的图4界面出现了: 图4 破解后的界面

输入相应的序列号,就可以了,以下是收集的序列号:

Studio 2008 Professional Edition:

XMQ2Y-4T3V6-XJ48Y-D3K2V-6C4WT

Studio 2008 Team Test Load Agent:

WPX3J-BXC3W-BPYWP-PJ8CM-F7M8T

Studio 2008 Team System:

PYHYP-WXB3B-B2CCM-V9DX9-VDY8T

Studio 2008 Team Foundation Server:

WPDW8-M962C-VJX9M-HQB4Q-JVTDM

2.2 安装CUDA4.0

在nvidia的下载网页上,下载了64bit的开发组件,包括driver、tookit、sdk等主要组件,具体如下:

devdriver_4.0_winvista-win7_64_275.33_

cudatoolkit_4.0.17_win_

gpucomputingsdk_4.0.19_win_

cudatools_4.0.17_win_

CUDA4_

注意驱动选择台式机或者笔记本版本。安装顺序分别是devdriver_4.0Îcudatoolkit_4.0.17ÎgpucomputingsdkÎcudatools。 2.2.1 安装驱动

驱动程序是一个自解压程序包,默认解压到C:NVIDIA,在安装驱动时,发生了类似下面情况如图5:

图5 驱动安装失败

在确定驱动程序版本足够新的前提下,上述情况是因为硬件ID号没有包含在驱动安装包的inf文件里面造成的,解决方法如下:

右键"计算机"点“属性”打开你的设备管理器,然后在显示适配器里面。右键你的显卡,点“属性” 如下图:

图 6 获取GPU硬件ID

如上图6所示,获取GPU硬件ID。我的GPU也是GT540M,硬件ID是:

PCIVEN_10DE&DEV_0DF4&SUBSYS_397D17AA&REV_A1 PCIVEN_10DE&DEV_0DF4&SUBSYS_397D17AA

PCIVEN_10DE&DEV_0DF4&CC_030000

PCIVEN_10DE&DEV_0DF4&CC_0300

这里GT540M的代号是0DF4。

在驱动解压包里面找到子文件夹,然后搜索nv*.inf,不同公司拥有各自的inf文件,按照你买的品牌来确认修改哪个文件。我买的是联想V470A-ifi,那么该文件是,在这几个安装信息里面修改。说明:常见厂商用的文件:

宏碁是

华硕是

联想是

戴尔是

特别说明:是仁宝,夹杂仁宝代工的DELL,联想和Gateway。

打开,搜索0DF4,需要修改的地方有2处,具体如下图7(a)、(b)所示:

图7(a) 图7(b)

主要是把图7(a)中的第2句替换为我们刚才得到的硬件ID:

PCIVEN_10DE&DEV_0DF4&SUBSYS_397D17AA

修改完毕保存后,重新点击,就能够正常安装了。

2.2.2 安装toolkit、SDK

由于toolkit安装时默认到C盘,我选择自定义安装路径到D:盘,不过在选择路径时,要注意toolkit中的profiler路径与其它组件路径相对独立,要仔细设置。另外,如果没有采用默认路径,安装会提示是否恢复默认设置,要仔细选择。

SDK安装比较简单,只要更改好路径就可以,我也是选择安装到D盘。

安装完毕后,重启一遍系统。

三 配置VS2008

3.1 增加cu和cuh扩展名到VS2008

让vs2008的文本编辑器识别.cu与.cuh格式文件,首先是tools-options-text

editor,添加过程如图9: 图9

在工具Î项目和解决方案 ÎVC++ 项目设置ÎC/C++ 文件扩展名,加上*.cu,

包括的扩展名(Extensions To Include)加上;.cuh.,使得工程自动识别cu文件。如图10:

图10

3.2 语法高亮设置

把默认路径在:C:ProgramDataNVIDIA CorporationNVIDIA GPU

Computing SDK 4.0docsyntax_highlightingvisual_studio_8文件夹下的文件拷到VS2008安装目录的common7IDE目录下就可以了。

3.3 添加CUDA bin、include、lib路径到VS2008

工具Î选项Î 项目和解决方案ÎVC++目录,我是64bit的操作系统,所以选择平台为x64(我就是粗心忽略了这里导致惨痛后果,耽误大量时。然后依次设置可执行文件、包含文件、库文件、源文件就可以了。具体如间)下图11(a)-(d)所示。

图11(a)可执行文件设置

图11(b)包含文件设置 图11(c)库文件设置

图11(d)源文件设置

考虑到软件安装好不会再随意变动,因此这里采用的都是绝对路径。

3.4 编译cutil链接库以及环境变量设置

cutil链接库是CUDA程序运行必需库,但CUDA4.0中没有提供现成的,需要自己编译并得到,,, 共4个文件。进入D:NVIDIA GPU Computing SDK 4.0Ccommon,找到cutil_,打开,设置编译平台为x64,然后分别编译Debug,Release就可以了。

图 12

为了防止自己的程序编译好运行时出现找不到cutil*.dll的错误警告,需要把上述cutil*.dll所在路径加入系统环境变量。

图 13 做好上述工作,注销一遍系统。

四 CUDA程序编译配置

由于赵开勇博士的wizard只更新到了支持SM13,不支持SM20/21,所以我选择nvidia自带的编译rules。这种方式缺点是:每次建立一个工程,都要设置一遍,显得非常繁琐,这里我们详细记录一下以备忘。

1)新建一个空的Win32控制台应用程序

图14

2)配置运行平台,设置为x64,因为默认没有,所以要自主设定。

图15

3)加入自己的*.cu、*.cuh、*.cpp、*.h文件,然后右键点击待设置工程,设置“自定义生成规则”。 图16

4)选择规则文件

图17

如果没有上述规则,则点击“查找现有的”按钮,选择*.rules文件所在路径。或者把toolkit中的..visual_studio_integrationrules下的4个*.rules文件拷贝到VS2008中..VCProjectDefaults下就可以。

5)右键点击待设置工程,选择“属性”,使得C++编译器、链接器和CUDA编译器能够兼容工作。主要设置项包括C/C++Î代码生成Î运行库、链接器Î输入Î附加依赖项、链接器Î高级Î目标计算机、CUDA Runtime API Î GPU

ÎGPU Architecture(1)(-3)、CUDA Runtime APIÎHostÎtarget machine platform(目标计算机)和Runtime library(运行时库)。总体而言比较繁琐。其中运行时库要吻合,如/MD /MT /MDD /MTD。目标计算机都是X64。如图18所示。 图18(a) C/C++Î代码生成Î运行库

图18(b) 链接器Î输入Î附加依赖项

图18(c) 链接器Î高级Î目标计算机 图18(d) CUDA Runtime API Î GPU ÎGPU Architecture(1)-(3)

图18(e) CUDA Runtime APIÎHostÎtarget machine platform(目标计算机)和Runtime library(运行时库)

如果能够确保上述工作全部完整无误设置,应该能够正确编译程序了。

五 编译CUDA代码时的注意事项和常见问题解决

1 找不到头文件

检查VS2008的工具Î选项Î 项目和解决方案ÎVC++目录设置情况,确认:1)是否平台设置错了;2)最好采用绝对路径;3)检查在输入路径时有无失误; 2 找不到cutil*.lib

1)进入D:NVIDIA GPU Computing SDK 4.0Ccommonlib,看是否有cutil*.lib存在,如果不存在,进入D:NVIDIA GPU Computing SDK 4.0Ccommon,找到cutil_,在x64平台, debug和release编译模式下,即可生成。

2)进入VS2008 工具Î选项Î链接器Î输入Î附加依赖项,看是否添加入了cutil*.lib和。

3 链接错误

这是因为C++编译器和CUDA编译器的运行时库不一致所致。请按照图18(a)和18(e)说明来修正;

4 程序编译好,运行提示找不到cutil*.dll

这是因为cutil*.dll的路径没有被找到所致,解决方法见图13。

2023年6月21日发(作者:)

Windows 7 64bit +VS2008+ CUDA 4.0安装配置完全过程

安装CUDA4.0时,碰到了很多意外,花费了较多时间,最终取得了成功,现对期间的经验教训总结如下,供大家分享,期待提高大家的工作质量和效率。

一 安装环境

Windows 7 64bit 家庭版,VS2008(安装了X64编译器),CUDA 4.0 64bit版本;

二 安装软件

Windows 7 64bit 家庭版是购买笔记本时自带的系统,不再详说。

2.1 安装VS2008

安装的professional版本,在安装时选择自定义安装,选择自己需要的组件,如下图1所示(这里借用了别人的一张图片),注意展开Visual C++子树,选中X64组件。

图1 自定义安装VS2008组件

安装完毕后,对于如何取消90天试用限制问题,采用了别人的破解办法,具体的操作方法如下: 打开 控制面板 Î 添加删除程序, 找到VS2008的安装项,运行VS2008的安装卸载程序,出现如下图2所示界面:

图2 VS2008的安装卸载界面 下载 破解程序,然后右键点击该破解程序,选择以管理员身份运行,出现如下的图3所示界面:

图3 破解程序界面

点击图3右上角 按钮“Bug 微软”,则久违的图4界面出现了: 图4 破解后的界面

输入相应的序列号,就可以了,以下是收集的序列号:

Studio 2008 Professional Edition:

XMQ2Y-4T3V6-XJ48Y-D3K2V-6C4WT

Studio 2008 Team Test Load Agent:

WPX3J-BXC3W-BPYWP-PJ8CM-F7M8T

Studio 2008 Team System:

PYHYP-WXB3B-B2CCM-V9DX9-VDY8T

Studio 2008 Team Foundation Server:

WPDW8-M962C-VJX9M-HQB4Q-JVTDM

2.2 安装CUDA4.0

在nvidia的下载网页上,下载了64bit的开发组件,包括driver、tookit、sdk等主要组件,具体如下:

devdriver_4.0_winvista-win7_64_275.33_

cudatoolkit_4.0.17_win_

gpucomputingsdk_4.0.19_win_

cudatools_4.0.17_win_

CUDA4_

注意驱动选择台式机或者笔记本版本。安装顺序分别是devdriver_4.0Îcudatoolkit_4.0.17ÎgpucomputingsdkÎcudatools。 2.2.1 安装驱动

驱动程序是一个自解压程序包,默认解压到C:NVIDIA,在安装驱动时,发生了类似下面情况如图5:

图5 驱动安装失败

在确定驱动程序版本足够新的前提下,上述情况是因为硬件ID号没有包含在驱动安装包的inf文件里面造成的,解决方法如下:

右键"计算机"点“属性”打开你的设备管理器,然后在显示适配器里面。右键你的显卡,点“属性” 如下图:

图 6 获取GPU硬件ID

如上图6所示,获取GPU硬件ID。我的GPU也是GT540M,硬件ID是:

PCIVEN_10DE&DEV_0DF4&SUBSYS_397D17AA&REV_A1 PCIVEN_10DE&DEV_0DF4&SUBSYS_397D17AA

PCIVEN_10DE&DEV_0DF4&CC_030000

PCIVEN_10DE&DEV_0DF4&CC_0300

这里GT540M的代号是0DF4。

在驱动解压包里面找到子文件夹,然后搜索nv*.inf,不同公司拥有各自的inf文件,按照你买的品牌来确认修改哪个文件。我买的是联想V470A-ifi,那么该文件是,在这几个安装信息里面修改。说明:常见厂商用的文件:

宏碁是

华硕是

联想是

戴尔是

特别说明:是仁宝,夹杂仁宝代工的DELL,联想和Gateway。

打开,搜索0DF4,需要修改的地方有2处,具体如下图7(a)、(b)所示:

图7(a) 图7(b)

主要是把图7(a)中的第2句替换为我们刚才得到的硬件ID:

PCIVEN_10DE&DEV_0DF4&SUBSYS_397D17AA

修改完毕保存后,重新点击,就能够正常安装了。

2.2.2 安装toolkit、SDK

由于toolkit安装时默认到C盘,我选择自定义安装路径到D:盘,不过在选择路径时,要注意toolkit中的profiler路径与其它组件路径相对独立,要仔细设置。另外,如果没有采用默认路径,安装会提示是否恢复默认设置,要仔细选择。

SDK安装比较简单,只要更改好路径就可以,我也是选择安装到D盘。

安装完毕后,重启一遍系统。

三 配置VS2008

3.1 增加cu和cuh扩展名到VS2008

让vs2008的文本编辑器识别.cu与.cuh格式文件,首先是tools-options-text

editor,添加过程如图9: 图9

在工具Î项目和解决方案 ÎVC++ 项目设置ÎC/C++ 文件扩展名,加上*.cu,

包括的扩展名(Extensions To Include)加上;.cuh.,使得工程自动识别cu文件。如图10:

图10

3.2 语法高亮设置

把默认路径在:C:ProgramDataNVIDIA CorporationNVIDIA GPU

Computing SDK 4.0docsyntax_highlightingvisual_studio_8文件夹下的文件拷到VS2008安装目录的common7IDE目录下就可以了。

3.3 添加CUDA bin、include、lib路径到VS2008

工具Î选项Î 项目和解决方案ÎVC++目录,我是64bit的操作系统,所以选择平台为x64(我就是粗心忽略了这里导致惨痛后果,耽误大量时。然后依次设置可执行文件、包含文件、库文件、源文件就可以了。具体如间)下图11(a)-(d)所示。

图11(a)可执行文件设置

图11(b)包含文件设置 图11(c)库文件设置

图11(d)源文件设置

考虑到软件安装好不会再随意变动,因此这里采用的都是绝对路径。

3.4 编译cutil链接库以及环境变量设置

cutil链接库是CUDA程序运行必需库,但CUDA4.0中没有提供现成的,需要自己编译并得到,,, 共4个文件。进入D:NVIDIA GPU Computing SDK 4.0Ccommon,找到cutil_,打开,设置编译平台为x64,然后分别编译Debug,Release就可以了。

图 12

为了防止自己的程序编译好运行时出现找不到cutil*.dll的错误警告,需要把上述cutil*.dll所在路径加入系统环境变量。

图 13 做好上述工作,注销一遍系统。

四 CUDA程序编译配置

由于赵开勇博士的wizard只更新到了支持SM13,不支持SM20/21,所以我选择nvidia自带的编译rules。这种方式缺点是:每次建立一个工程,都要设置一遍,显得非常繁琐,这里我们详细记录一下以备忘。

1)新建一个空的Win32控制台应用程序

图14

2)配置运行平台,设置为x64,因为默认没有,所以要自主设定。

图15

3)加入自己的*.cu、*.cuh、*.cpp、*.h文件,然后右键点击待设置工程,设置“自定义生成规则”。 图16

4)选择规则文件

图17

如果没有上述规则,则点击“查找现有的”按钮,选择*.rules文件所在路径。或者把toolkit中的..visual_studio_integrationrules下的4个*.rules文件拷贝到VS2008中..VCProjectDefaults下就可以。

5)右键点击待设置工程,选择“属性”,使得C++编译器、链接器和CUDA编译器能够兼容工作。主要设置项包括C/C++Î代码生成Î运行库、链接器Î输入Î附加依赖项、链接器Î高级Î目标计算机、CUDA Runtime API Î GPU

ÎGPU Architecture(1)(-3)、CUDA Runtime APIÎHostÎtarget machine platform(目标计算机)和Runtime library(运行时库)。总体而言比较繁琐。其中运行时库要吻合,如/MD /MT /MDD /MTD。目标计算机都是X64。如图18所示。 图18(a) C/C++Î代码生成Î运行库

图18(b) 链接器Î输入Î附加依赖项

图18(c) 链接器Î高级Î目标计算机 图18(d) CUDA Runtime API Î GPU ÎGPU Architecture(1)-(3)

图18(e) CUDA Runtime APIÎHostÎtarget machine platform(目标计算机)和Runtime library(运行时库)

如果能够确保上述工作全部完整无误设置,应该能够正确编译程序了。

五 编译CUDA代码时的注意事项和常见问题解决

1 找不到头文件

检查VS2008的工具Î选项Î 项目和解决方案ÎVC++目录设置情况,确认:1)是否平台设置错了;2)最好采用绝对路径;3)检查在输入路径时有无失误; 2 找不到cutil*.lib

1)进入D:NVIDIA GPU Computing SDK 4.0Ccommonlib,看是否有cutil*.lib存在,如果不存在,进入D:NVIDIA GPU Computing SDK 4.0Ccommon,找到cutil_,在x64平台, debug和release编译模式下,即可生成。

2)进入VS2008 工具Î选项Î链接器Î输入Î附加依赖项,看是否添加入了cutil*.lib和。

3 链接错误

这是因为C++编译器和CUDA编译器的运行时库不一致所致。请按照图18(a)和18(e)说明来修正;

4 程序编译好,运行提示找不到cutil*.dll

这是因为cutil*.dll的路径没有被找到所致,解决方法见图13。