c++ - 多个文件中的 Cuda 内核函数

标签 c++ linker cuda

我想知道是否可以从不同的 .cu 文件调用相同的内核函数。我的意思是,我的程序有不同的类,它们都有一些共同的功能,但内存大小不同;例如:

void Bitmap8::Or(const Bitmap8 &b1, const Bitmap8 &b2);

// the function above is as same as this one (of course they are in two different files)

void Bitmap4::Or(const Bitmap4 &b1, const Bitmap4 &b2);

它们都有不同的内存大小分配。我为他们创建了一个独特的 CUDA 内核来执行这些操作。在我编译程序时是否可能存在一些冲突?因为我一直有这样的错误:

1>Bitmap8.cu.obj : error LNK2005: "void * __cdecl big_random_block(int)" (?big_random_block@@YAPAXH@Z) already defined in Bitmap4.cu.obj

还有很多

提前致谢

最佳答案

是的,可以从不同的文件调用相同的函数。我的错误与标题的双重包含有关!问题解决了

关于c++ - 多个文件中的 Cuda 内核函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10028891/

相关文章:

c++ - 在 Windows 上检测进程内存注入(inject)(反黑客)

c - 在 C 中使用静态函数和变量的原因

cuda - 在 Ubuntu 上安装多个 CUDA/cuDNN 版本的最佳解决方案

cuda - 在CUDA编程中,是否有有效的方法将图形映射到 block 上?

c++ - 如何检查 win32 exe 文件是否已经在运行? (使用 win32 API 代码)

c++ - 测试后无法取消 MPI 请求

c++ - C/C++ 中的#error 是如何工作的?

linux - 链接时未定义对符号 'socket@GLIBC_2.4' 的引用

Linux 等效于 Windows DLL 转发器或 MacOS reexport_library

cuda - CUDA 是否保证 float 为 4 个字节?