compilation - 使用Rose编译器将Cuda Source转换为Source

标签 compilation cuda rose-compiler-framework

我想知道Rose编译器对cuda的支持程度。我正在尝试为cuda构建源代码到源代码翻译器。可以使用Rose编译器吗?我应该使用哪种Rose编译器发行版?

我知道这已经在前面讨论过(玫瑰编译器中对cuda的支持),但是我不明白是否有cuda支持。 Rose用户手册也没有太多信息。

最佳答案

Rose的C ++前端和Fortran前端似乎集成得很好。 Rose系统设计恕我直言,它不容易与其他前端解析器集成(例如,您可能需要解析Cuda),尽管您可以通过足够的努力来做到。 (Rose最初仅使用C ++,并移植了Fortran)。
如果您在Rose手册中没有看到对Cuda的明确提及,那么它就很像,因为它根本不存在。

如果要使用从源到源的转换来处理Cuda,则既需要Cuda解析器,又需要一组适当的转换机制,例如Rose所拥有的。

我无法为您提供Cuda解析器,但是我的公司确实以DMS Software Reengineering Toolkit的形式提供了具有工业实力的源到源程序转换系统。

DMS已被用于在大型C ++系统上进行大规模转换,因此我认为在此方面它至少与Rose一样胜任。 DMS也已用于处理超大型C和Fortran系统以及Java,C#,ECMAScript,PHP和许多其他语言的其他代码,因此我可以肯定地说将不同的前端集成到DMS中要容易得多。

据我了解,Cuda是C99的衍生产品。 DMS具有C前端,并明确支持构建各种C语言。大多数C99已经使用方言机制构建。那可能是一个很好的起点。

您可以尝试使用其他工具(例如ANTLR)作为替代工具,但是我认为,在解析,分析和转换实际代码的复杂系统的能力方面,ANTLR,Rose和DMS很快就会变得非常不同。

关于compilation - 使用Rose编译器将Cuda Source转换为Source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919249/

相关文章:

c++ - 在 Windows 7 上构建支持 cuda5 的 Opencv 2.4.3 时 nvcc 出现问题

c++ - 如何获得适合 gpu 内存的最大数组大小?

c - 在 AssignOp 之后在 ROSE 编译器中插入赋值

compiler-errors - 使用ROSE编译器框架的g++编译器错误

c++ - Visual Studio下CMake构建问题

c - Visual Studio 编译单独的文件

c - 链接 OpenSSL 时不引用 BIO 函数

linux - 如何配置 makefile?

cuda - 在 GTX Titan 卡中重叠内核执行和数据传输的最佳策略是什么?