使eclipse解析或忽略CUDA内核启动参数

时间:2015-08-12 14:11:03

标签: c++ eclipse c++11 cuda

我正在开发一个使用C ++ 11和CUDA的C ++项目。

我想使用eclipse的语法高亮和解析功能,特别是去符号和实时错误检查。但是,当我使用“纯”eclipse时,CUDA内核启动参数表示法通过<<<>>>>打破解析,整个调用标记为无效。当我使用Eclipse Nsight 7时,它不会解析像constexpr这样的C ++ 11相关内容,因此无法解析我的模板化类型。 (见https://devtalk.nvidia.com/default/topic/830892/nsight-editor-does-not-parse-c-11-shows-syntax-error/

有没有办法(黑客,插件,......)使常规eclipse处理那些<<<<>>>?

1 个答案:

答案 0 :(得分:1)

对于这个特殊问题(支持constexpr),您现在可以使用CUDA 9附带的nsight (基于CDT 8.4)。

带有nsight插件的自定义CDT(需要CUDA 9)

如果您仍想使用更新的CDT版本,则自CUDA 9以来有一个新选项:它附带一个安装程序<cuda-install-path>/bin/nsight_ee_plugins_manage.sh,允许将nsight插件添加到现有的eclipse安装中。

在CUDA 9之前

解决方法可能是将内核启动包装在宏中:

#ifdef PARSED_BY_ECLIPSE
#define CALL_CUDA_KERNEL(cmd) (void)0 /* do nothing */
#else
#define CALL_CUDA_KERNEL(cmd) cmd
#endif

将符号PARSED_BY_ECLIPSE添加到用于索引的配置中。