gpt4 book ai didi

c++ - 我怎样才能让 Doxygen 知道 CUDA 内核调用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:39 24 4
gpt4 key购买 nike

我正在尝试使用 Doxygen 记录一个用 CUDA C 编写的项目。该文档工作正常。然而,调用者图不包括内核调用,如 GPU_foo<<<1,1>>>() .

例如,在这个简单的例子中:

#include<stdio.h>

/*!
* @brief global hello foo
*/
__global__ void global_hello(void){

printf("Hello\n");

}


/*!
* @brief CPU hello foo
*/
void hello(void){

printf("Hello\n");
}

/*!
* @brief main
*/
int main(){

hello();

global_hello<<<1,1>>>();

return 0;
}

使用相应的 Doxyfile:

PROJECT_NAME = TEST
PROJECT_NUMER = 2.1

OUTPUT_LANGUAGE = English
EXTRACT_ALL = YES
FILE_PATTERNS = *.cpp *.h *.c *.cu
RECURSIVE = NO
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
HAVE_DOT = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES

查看生成的文档时,调用图如下所示:

main -----> hello

而不是想要的:

      ------> global_hello
/
main
\
------> hello

如何让 Doxygen 知道 CUDA 内核调用?

问题是 Doxygen 不知道包含“<<< >>>”的行是一个函数调用。我不需要调用图来区分函数调用和内核调用。如果解析器将内核视为普通函数调用就足够了。

总结。有没有办法告诉 Doxygen 将带有 <<<>>> 的行解释为函数调用?有人建议修改Doxygen的内部解析器方法,应该怎么做?

最佳答案

如果 doxygen 无法识别 CUDA 函数,您将无能为力:

引用 doxygen manual :

Note The completeness (and correctness) of the call graph depends on the doxygen code parser which is not perfect.

而且doxygen的代码解析器不容易扩展。

关于c++ - 我怎样才能让 Doxygen 知道 CUDA 内核调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31049944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com