0

我正在尝试将 cpp 文件转换为 .cu 文件。但是,编译器会报告 cpp 中所有 typedef 和静态函数的错误。它也不会检测范围解析运算符并为它们报告错误。

4

1 回答 1

2

CUDA 对预处理器宏的扩展方式进行了一些重大更改,因为它多次通过预处理器运行代码以扩展 CUDA 结构并分离主机和设备代码。这可能会破坏现有的大型代码库。

在这种情况下(甚至对于新编写的项目),我的一般策略是将所有现有代码保留在 .cpp 文件中,并且只将尽可能少的代码移动到 .cu 文件中。我只是将 .cu 文件和 .cpp 文件中所需的 typedef 和定义移动到单独的头文件中,然后围绕 CUDA 调用和内核启动编写小型包装函数,然后从现有的 .cpp 文件中调用它们。

于 2012-11-02T09:58:28.033 回答