CUDA 内核的 Uncrustify 命令

Uncrustify command for CUDA kernel

我想将 uncrustify(通过 Atom 编辑器中的美化和配置文件)应用于 CUDA 代码。但是,我不知道如何告诉 uncrustify 识别具有以下结构的 CUDA 内核调用:

kernelName <<<N,M>>> (arg0,arg1,...);

然而,uncrustify 与 <<< >>> 有问题,应用它会产生以下不愉快的结果

kernelName << < N, M >> >
    (arg0,arg1,...);

我想让它看起来更像一个函数调用,同时避免将 <<< 格式化为 << <。理想情况下,结果看起来像

kernelName <<< N, M >>> (arg0,arg1,
      ...); // line break if argument list is too long

我可以在 config.cfg 中添加哪些参数来实现上述结果?

非常感谢。

查看 uncrustify 的整个文档,我发现了 2 个可能影响您的 CUDA 内核样式的参数:

sp_compare                                { Ignore, Add, Remove, Force     }
 Add or remove space around compare operator '<', '>', '==', etc

并且:

align_left_shift                          { False, True }
  Align lines that start with '<<' with previous '<<'. Default=true

您可以尝试使用这些参数来更接近解决方案,尽管我会尝试类似的方法:

sp_compare     =   Remove
align_left_shift   = False