【发布时间】:2014-04-14 08:48:36
【问题描述】:
我正在尝试通过 CUDA 扩展向量支持,例如,覆盖向量结构中的运算符。我可以通过修改默认的 vector_types.h 文件来做到这一点。但是,在我无权修改它的多用户环境中是不可能的。
因此,我决定创建一个新的 vector_types.h 并且不包含原始的 vector_types.h。但似乎 nvcc 会自动包含这个文件,即使我没有将它包含在我的代码中。所以我的问题是,有没有办法改变 nvcc 的这种行为?
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
我认为您的问题的简短回答是否定的。
nvcc是一个编译器驱动工具,所以它“在后台”做了很多步骤。如果您想了解发生了什么,请阅读nvccmanual 并了解dryrun。但我认为您不会找到一种标准方法(例如编译开关)来告诉nvcc不要从标准系统包含路径中包含vector_types.h文件。您可以尝试覆盖系统包含路径-isystem,但您基本上需要在本地安装完整的 CUDA。 -
如果你在多用户环境下无法更改CUDA的系统版本,如果你有足够的磁盘空间可以下载CUDA工具包并安装本地副本,并带有适当的路径定义从该副本中工作,您可以根据需要对其进行修改。
-
感谢 cmets 我想我将不得不查看手册以查看是否有解决方案。只需将您的 cmets 作为答案,如果我无法从手册中找到解决方案,我将接受它。