gpt4 book ai didi

c++ - 在 CUDA 内核中使用虚函数

转载 作者:太空狗 更新时间:2023-10-29 23:09:18 26 4
gpt4 key购买 nike

所以我想在设备上分配一个带有虚函数的对象,然后调用内核并执行其中的一些虚函数。我已经尝试了两种方法来做到这一点,但都不起作用:

1) 使用 cudaMalloc 和 cudaMemcpy 从主机分配和复制对象。这会复制包含主机内存指针的虚函数表,这在设备上执行时显然会使内核崩溃。

2) 从第二个内核分配对象,将设备内存指针保存到对象并将该指针传递给原始内核。但是,由于内核不同,内核执行时函数在设备内存中的位置不同,虚函数表不正确,使用时会导致内核崩溃。

我能否只对在调用函数的内核中创建的对象使用虚函数?

当我分配我的对象以获得正确的虚函数表时,我能否以某种方式引用原始内核?

我什至明白这里的实际问题是什么吗?

最佳答案

Do I even understand what the actual problem is here?

其中一部分。

正如您在 cuda 中试验的那样,C++ 并未得到完全支持。只有从 4.0 开始你才能使用虚函数。

  1. 确保您拥有 4.0 驱动程序/api。

  2. 发布您的错误日志。

关于c++ - 在 CUDA 内核中使用虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722942/

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