用户
 找回密码
 立即注册
IChocolateKapa 该用户已被删除
发表于 2013-8-21 09:16:46
61171
1、请问PTX文件只有.cu文件存在时才能够预编译成功吗?
2、现在遇到的问题时,工程中有多个C++文件,一个.cu文件,main函数在其中一个C++文件中,这套代码经过修改,所用到的是一个CUDA的库函数,而.cu文件并没有用到,如果不删掉.cu文件的话,每次编译程序,都会生成一个新的ptx文件,但是如果删掉.cu文件的话,就不会在生成新的PTX文件<当然,因为这个.CU文件用不到,所以删掉以后仍然可以正常运行,只是不会再有新的ptx文件生成了>,这是为什么?
3、而且很奇怪的是,我再把这个.cu文件加入到工程中以后,也不会再生成新的ptx文件了,这是为什么?
我刚刚接触PTX,实在不懂这个道理,求指点。
使用道具 举报 回复
发表于 2013-8-21 12:17:32
楼主您好,

您的工程中的原.cu可能使用了custom build(即原项目中的.cu的类型为自定义), 然后自定义命令行里有类似nvcc -ptx your.cu  -o your.ptx的字样。

而您从项目中删除了此cu又添加后,此.cu将不再包含原来的自定义构建规则了。从而不再参与编译。

此外,将.cu添加到项目中,自定义生成.ptx或者.cubin,然后再将同名的.ptx/.cubin手工用driver api载入调用是driver api项目的常见做法,请勿惊慌。

感谢来访。
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册