QT环境下编译CUDAWord下载.docx
- 文档编号:21638895
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:14
- 大小:979.26KB
QT环境下编译CUDAWord下载.docx
《QT环境下编译CUDAWord下载.docx》由会员分享,可在线阅读,更多相关《QT环境下编译CUDAWord下载.docx(14页珍藏版)》请在冰豆网上搜索。
CUDA的主要工具是nvcc,它会执行所需要的程序,将CUDA程序编译并执行。
下面介绍了三种配置cudanvcc的方法。
这里推荐使用第三种方法。
2.1、方法一(NV自带的修改模板方法)
2.1.1、在CUDASDK安装目录下的project目录下新建文件夹,命名为想要建立的工程名字,比如test。
并在project文件夹下找到SDK自带的template文件夹,将template文件夹下所有的文件copy到test下。
2.1.2、将copy到test文件夹下的所有文件文件名中的template改为test。
test.sln与test.vcproj是vs8系列的工程文件,test_vc7.sln与test_vc7.vcproj是vs7系列的工程文件,可以根据自己VisualStudio的版本选择要更改的工程文件,其它两个可以删除。
在VisualStudioC++2005Express中,可以将test_vc7.sln与test_vc7.vcproj删除。
2.1.3、将*.cu、*.sln和*.vcproj用记事本等文字编辑软件打开,使用查找替换功能将以上文件中所有的template改为test。
2.1.4、使用*.sln文件打开整个工程,可以任意更改代码,编译运行。
2.1.5、修改输出文件路径(可选,如不改变,可执行文件输出到上两级目录下的bin目录中),如使用了CUDASDK中的动态链接库,将相应的动态链接库拷贝到可执行文件的同一目录下。
总结:
这种方法是NV公司为windows下使用vs编译cuda提供的标准方法(参见\SDK\doc\CUDA_SDK_release_notes_windows.txt),使用公司提供的模板更改为自己想要建立的工程,也可以参照以上方法,在SDKProject库中的找到与自己想建立工程相近的其它工程做更改。
但是费时费力,不推荐使用。
2.2、方法二(设定custombuildtool执行cuda)
2.2.1、首先建立一个win32console模式的emptyproject,并建立一个新的源文件,此处以main.cu为例。
P1.建立一个win32project
P2.设定为emptyproject
P3.建立main.cu
2.2.2、在solutionexplorer中main.cu上右键单击,选择property。
在打开的对话框中选择General,确定Tool的选项是CustomBuildTool。
P4.确认Tool选项
2.2.3、选择CustomBulidStep,在CommandLine中分别设定模式参数
(1)、Release模式:
"
$(CUDA_BIN_PATH)\nvcc.exe"
-ccbin"
$(VCInstallDir)bin"
-c-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT-I"
$(CUDA_INC_PATH)"
-o$(ConfigurationName)\$(InputName).obj$(InputFileName)
(2)、Debug模式:
-c-D_DEBUG-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd-I"
-o$(ConfigurationName)\$(InputName).obj$(InputFileName)
P5.设定CommandLine参数
如果计算机中没有安装NV显卡,使用模拟模式,需增加两个额外的设定。
新建两个模式EmuRelease和EmuDebug。
P6.新建模式
(1)
P6.新建模式
(2)
对新建立的EmuRelease和EmuDebug的CommandLine分别设定为:
(1)、EmuRelease模式:
-deviceemu-c-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT-I"
-o$(ConfigurationName)\$(InputName).obj$(InputFileName)
(2)、EmuDebug模式:
-deviceemu-c-D_DEBUG-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd-I"
3.1.4、对所有的设定模式,均在CustomBuildStep的Outputs中加入$(ConfigurationName)\$(InputName).obj。
P7.设定Outputs
2.2.5、右键单击project,选择Property,再选择Linker,对所有模式修改以下设定:
(1)、General/EnableIncrementalLinking:
No
(2)、General/AdditionalLibraryDirectories:
$(CUDA_LIB_PATH)
(3)、Input/AdditionalDependencies:
cudart.lib
P8.设定Linker参数
(1)
P9.设定Linker参数
(2)
2.2.6设置头文件路径
Tools->
Options,弹出以下对话框
将右边的下拉框选择IncludeFiles,点击添加按钮,将C:
\ProgramFiles\NVIDIACorporation\NVIDIACUDASDK\common\inc选入到头文件搜索路径中。
2.2.7选择链接库文件路径
同上库头文件路径选择,将右边下拉框选择LibraryFile,选择路径C:
\ProgramFiles\NVIDIACorporation\NVIDIACUDASDK\common\lib。
2.2.8、完成,可以编写cuda程序,并直接编译执行了(编译方式于C++相同)
总结:
这种方法不需要借助模板,也不需要使用第三方的软件。
但是这种操作复杂,而且仅对配置的单个project有效。
如果重新建立一个project又要重新配置一遍。
故不推荐使用。
需要注意的是,当需要使用CUDASDK中的动态链接库(以dll为后缀)时,将动态链接库和生成的可执行文件放在同一个路径下。
P10.完成
2.3、方法三(使用CUDA_VS_Wizard执行cuda)
2.3.1、解压CUDA_VS_Wizard并安装。
2.3.2、将CUDASDK安装目录下的bin\win32文件夹下的四个文件夹(Debug,EmuDebug,Release,EmuRelease)的路径全部加入环境变量中的path变量中。
第一节中讲到
2.3.3、使用vc直接建立工程。
在工程选项里选择CUDAWinApp。
2.4.4、如果是在模拟模式下运行,需要在解决方案中右键属性,在ConfigurationProperities中将Configuration设置为Emu模式。
P14.模拟模式设置
(1)
P15.模拟模式设置
(2)
2.3.5、完成。
这种方法虽然使用了第三方的工具,但只需要配置一次即可,而且配置简单,以后每次建立cuda程序都可以直接生成。
如果是建立预定义头文件的工程,则建立的cuda程序,会自带一个sample.cu,可以选择在sample.cu的基础上更改或删除sample.cu重新建立.cu文件。
如果是建立空工程则没有。
建立方法.cu文件的方法是建立.cpp文件或.txt文件改名为.cu文件即可。
推荐使用。
3、语法高亮设置。
3.1、找到CUDASDK安装目录下doc\syntax_highlighting\自带的文件usertypt.dat,将其copy到MicrosoftVisualStudio安装目录的\Common7\IDE下。
3.2、在VisualStudio做以下设置:
在Tools->
Options->
TextEditor->
FileExtension中添加cu。
P16.设置高亮
3.3、重新启动VisualStudio,完成高亮设置。
(1)语法高亮:
将NVIDIACUDASDK\doc\syntax_highlighting\visual_studio_8里面的usertype.dat文件copy到MicrosoftVisualStudio8\Common7\IDE目录下面。
(2)设置VC2008环境
进入Tools|Options|ProjectsandSolutions|VC++Directories添加(visualAssist里面也可以同样设置VAssistx->
Projects->
c/c++Directories->
PlatForm:
Custom->
Stableincludefiles/sourcefiles里面加入)
Includefiles:
cuda\sdk\common\inc(目录可能不一样,第一节的目录)
Libraryfiles:
cuda\sdk\common\lib
Sourcefiles:
cuda\sdk\common\src
进入VC++ProjectSettings:
C/C++Fileextensions:
添加*.cu,在Texteditor-Fileextension:
添加cu对应editor到MicrosoftVC++editor。
(3)Assist关联.cu文件
关闭已经打开的Visualstudio,之后进入注册表编辑:
HKEY_CURRENT_USER\Software\WholeTomato\VisualAssistX\VANet9\找到右边的ExtSource项,将其值添加.cu;
.cuh;
之后关闭。
(4)在VS的Tools|Options|Projectsandsolutions|VC++projectsetting里面的rulesfilesearchpath里面添加CUDASDK安装目录的common目录的CUDA.rules文件所在路径C:
\ProgramData\NVIDIACorporation\NVIDIACUDASDK\common\。
(5)新建项目->
项目名上右键->
选择custombuildrules…->
然后勾选新添加进去的Rulefiles,如CUDABuildRule2.3.0。
在工程中添加.cu文件,右键点击cu文件->
选择Properties->
ConfigurationProperties->
General->
Tool的下拉列表中选择上一步勾选的BuildRule的名称,例如“CUDABuildRulev2.2.0”->
确定。
a)将C:
\DocumentsandSettings\AllUsers\ApplicationData\NVIDIACorporation\NVIDIAGPUComputingSDK\C\doc\syntax_highlighting\visual_studio_8中的usertype.dat拷贝到C:
\ProgramFiles\MicrosoftVisualStudio8\Common7\IDE中
b)打开VS2005,选择工具-选项-文本编辑器-文件扩展名,在扩展名编辑框中填入cu,在编辑器下拉菜单中选择MicrosoftVisualC++,单击添加,然后点击确定。
c)打开注册表,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Languages\FileExtensions\.cpp下面添加子键.cu然后copy.cpp的键值到.cu。
这样才能表示cu也是VS下的VC的工程文件。
d)打开VS,运行下VA(建立一个CPP工程,折腾到VA能用为止),关掉IDE,否则注册表不会添加对应信息。
e)HKEY_CURRENT_USER\Software\WholeTomato\VisualAssistX\VANet8在ExtSource键添加键值.cu
f)打开VisualAssist属性,在projects的C/C++Directoriescustom下面添加CUDA的头文件目录,这样才能在VisualAssist生成规则的时候找到CUDA自身的特殊定义才能生成VisualAssist的关键字,如__global__.
添加的目录有C:
\CUDA\include,C:
\DocumentsandSettings\AllUsers\ApplicationData\NVIDIACorporation\NVIDIAGPUComputingSDK\C\common\inc
Sourcefile中添加C:
\DocumentsandSettings\AllUsers\ApplicationData\NVIDIACorporation\NVIDIAGPUComputingSDK\C\common\src
从下载CUDAToolkit和CUDASDK,注意相应的系统版本。
然后安装Tookit和SDK(我没有改默认路径,直接装在C盘了)。
同时推荐装个CUDA的Wizzard,参考OpenHero的
QT安装
QT4.6.3+VS2008安装配置全过程
一、下载两个安装EXE,qt-win-opensource-4.6.3-vs2008.exe和qt-vs-addin-1.1.5.exe
二、系统中已经安装了VS2008及SP1补丁包;
三、然后安装两个EXE文件,最好先安装qt-win-opensource-4.6.3-vs2008.exe;
四、配置QT:
控制面板->
系统->
高级->
环境变量,在“系统变量”这个组合框中,找到“Path”变量,在"
Path"
的最后面添加"
d:
\work\Qt463\bin\"
,(假设你的安装目录是“d:
\work\Qt463\”以下的命令都是依照这个安装目录进行操作)
五、接下来,开始->
程序->
MicrosoftVisualStudio2008->
VisualStudioTools->
VisualStudio2008命令提示
六、在命令行中键入:
回车
cd/Dd:
\work\Qt463回车
configure
(注意:
如果机器中存在多个编译器,你想要指定一个编译器,需要把configure替换成configure-platformwin32-msvc)
nmake回车
七、编译成功之后,打开VS2008,工具->
选项->
项目和解决方案
->
VC++目录中,
A.在“包含文件”中加入以下目录:
\work\Qt463\include
\work\Qt463\include\Qt
\work\Qt463\include\QtCore
\work\Qt463\include\QtGui
\work\Qt463\include\QtHelp
\work\Qt463\include\QtNetwork
\work\Qt463\include\QtOpenGL
\work\Qt463\include\QtScript
\work\Qt463\include\QtSql
\work\Qt463\include\QtSvg
\work\Qt463\include\QtTest
\work\Qt463\include\QtUiTools
\work\Qt463\include\QtWebKit
\work\Qt463\include\QtXml
\work\Qt463\include\QtXmlPatterns
\work\Qt463\src
B.在“库文件”中加入以下目录:
D:
\work\Qt463\lib
八、好了,VS2008和QT的安装配置已经全部完成,你可以放心开发QT程序了。
如何在windows环境下使用visualstudio2008开发qt
管理提醒:
本帖被xtfllbl从GeneralQtProgramming移动到本区(2010-07-07)
虽然qt提供LGPL版本,并且自带qtcreater作为IDE,但是因为种种原因(比如没有emacs绑定),需要利用visualstudio作为开发和编译环境。
具体怎么做呢?
首先需要下载一些工具。
这些工具都是免费的:
visualstudioexpress2008:
qt的sdk,我们下载LGPL的版本:
qt的visual开发插件:
下载完毕后,依次安装:
visualstudioexpress2008
qt的sdk
qt的visual开发插件
安装过程没有什么可以说的,完全按照默认来就可以了。
安装完毕后,还不能用,因为我们需要用visualstudio做qt开发,qtsdk是默认用mingw的g++编译的。
visualstudio编译的时候会提示没有库文件:
qtmain.lib。
我们需要把qt重新用visualstudio编译一遍。
方法如下:
开启visualstudio的命令行:
开始——所有程序——visualstudio2008——visualstudiotools——命令提示
进到qt目录里面:
cdc:
\qt\2009.04\qt\
运行:
configure-platformwin32-msvc2008
nmake
编译完成后(可能需要两个小时的时间),开启visualstudio,就可以新建qtproject并成功编译了。
ps:
其实我自己编译到webkit出现问题了。
。
不过还是将就用了。
引用:
最后新建一个QT项目,
1右键项目,选择自定义生成规则,选择CUDA和CUDA2.3。
,如果没有这两个,则看下前面CUDA在vs中的安装。
主要是看下怎样添加生成规则,在工具-》选项-》项目和解决方案-》vc++项目设置-》规则文件搜索路径,中添加C:
\ProgramData\NVIDIACorporation\NVIDIAGPUComputingSDK\C\common路径可能不同。
2右键项目,属性,连接器,输入,附加依赖项中添加(qtmaind.libQtCored4.libQtGuid4.lib)cudart.libcutil32.lib如果是cu文件,则需要将右键项目,属性,连接器,系统改为控制台(/SUBSYSTEM:
CONSOLE)
3右键项目,属性,常规,附加库目录中加入($(QTDIR)\lib);
$(CUDA_LIB_PATH);
$(NVSDKCUDA_ROOT)\common\lib
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QT 环境 编译 CUDA
![提示](https://static.bdocx.com/images/bang_tan.gif)