首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法找到编译CUDA的.cubin或.ptx文件

无法找到编译CUDA的.cubin或.ptx文件
EN

Stack Overflow用户
提问于 2015-07-27 16:49:47
回答 1查看 1.2K关注 0票数 1

我正在使用Visual 2013从事CUDA (7.0)项目。这个项目是64位。我正在使用驱动程序API,需要从ptx或cubin file.But加载模块,我找不到文件。在VS中,我使用Properties->CUDA C/C++ ->Common->NVCC编译类型,将其改为-cubin或ptx .the编译器完成,但我找不到该文件。我只能看到kernel.cu.obj和kernel.cu.cache文件在输出调试directory.What中会出错吗?

更新:

如果我转到Properties->CUDA C/C++ ->公共->保存预处理文件并设置YES.Then,我会看到.ptx和其他中间stuff.But,据我所知,该选项不是必须的,以获得.ptx?Also演示CUDA SDK项目,比如"matrixMulDrv“spitr ptx,我不知道区别在哪里。

下面是matrixMulDrv项目编译命令:

C:\ProgramData\NVIDIA公司\CUDA Samples\v7.0\0_Simple\matrixMulDrv>"C:\Program Files\NVIDIA GPU计算Toolkit\CUDA\v7.0\bin\nvcc.exe“-gencode=arch=compute_20,code=\"compute_20,compute_20\“-使用-本地-env-cl-2013年版本-ccbin "C:\Program (x86)\Microsoft 12.0\VC\bin\x86_amd64”-I./ ./公用/inc -I./ -I"C:\Program \NVIDIA计算工具包\CUDA\V7.0/include“I././Toolkit/inc -I"C:\Program \NVIDIA计算工具包\CUDA\CUDA\V7.0\包括“-G -保持-dir x 64 \Debug -maxrregcount=0 -机器64 -ptx -cudart静态-Xcompiler "/wd 4819”-o data/matrixMul_kernel64.ptx "C:\ProgramData\NVIDIA公司\CUDA

下面是我的项目CUDA内核编译命令:

文件\visual studio 2012\Projects\ProjectName\ProjectName>"C:\Program Files\NVIDIA GPU计算Toolkit\CUDA\v7.0\bin\nvcc.exe“-gencode=arch=compute_20,code=\"sm_20,使用-本地-env-cl-版本2013 -ccbin "C:\Program (x86)\Microsoft 12.0\VC\bin\x86_amd64“-I"E:\Documents\visual Studio 2012\Projects\XXXXXX\XXXXX\XXXXX\包括”-I"E:\Documents\visual studio 2012\-ccbin\XXXXX\包括“-I"E:\Documents\visual studio 12.0\VC\bin\x86_amd64E:\-I\visual studio 2012\-I\XXXXXXX\XXXXXX\XXXXXXX\包括“-I"E:\Documents\visual studio 2012\Projects\XXXXXXX\XXXXXXX\XXXXXX\包括”-I“E:\-I\visual studio 2012\XXXXXX\XXXXXX\包括”-I"E:\Documents\visual studio 2012\Projects\XXXXXXX\XXXXXX\XXXXXX包括“-I”E:\-I\visual studio 2012\-I\XXXXXX\包括“-I"C:\ProgramData\NVIDIA GPU计算工具包\CUDA\V7.0/包括”-I"C:\ ProgramData\\CUDA Sample\V7.0\公用\inc“-I"E:\Documents\visual studio -I”C:\ProgramData\NVIDIA计算工具包\CUDA\V7.0\包括“-I”C:\-I程序文件\NVIDIA GPU计算工具包\CUDA\V7.0\包括“-G -保持-dir x64\Debug -maxrregcount=0 -机器64 -编译-cudart静态-g -DWIN32 -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_UNICODE -DUNICODE -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd "E:\Documents\visual studio

可以看到matrixMulDrv项目被设置为使用这一行matrixMulDrv编译.ptx,而在我的项目中,我有-o x64\Debug\skernel.cu.obj .But,我在这两个项目上都有相同的CUDA编译器设置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-01 02:51:52

Visual中的CUDA项目既可以继承项目级别的编译设置(在这种情况下,它们是在project Properties...CUDA...Device中定义的),也可以在文件级别继承它们(在这种情况下,可以右键单击文件以显示其属性并在类似的位置找到它们)。

该文件可以从全局项目设置继承其设置,也可以替换它们(如果您在文件级别选择了这些设置)。

这些设置中的一些将确定在nvcc编译该文件时将生成何种类型的输出(因此实际上需要什么编译开关)。普通CUDA运行时API项目需要将它们的模块编译成(“混合”)对象文件(即.o),但是CUDA驱动程序API项目通常需要以.cubin文件或.ptx文件的形式出现的cuda“对象”。

有一些设置可以修改这一代,例如,要将一个文件从典型的CUDA运行时API编译转换为典型的驱动程序API编译,可以将“生成混合对象文件(--ptx)”选项从“生成混合对象文件(--ptx)”改为“生成混合对象文件(--ptx)”。

如果您在文件级别执行此操作,则需要对每个需要更改其设置的文件执行此操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31658832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档