CUDA主机到设备(或设备到主机)memcpy操作与应用程序渲染图形使用OpenGL在同一图形卡上

时间:2009-11-07 21:52:13

标签: cuda memcpy

我已经在CUDA论坛上发布了我的问题,但不确定是否适合在此处发布链接以获取更多想法,以防两个论坛之间存在大量不同的受众群体。链接是here。对于由此带来的任何不便,我深表歉意,并感谢对此问题的任何评论,因为我还没有收到有关特定CUDA内存访问和管理问题的某些细节的回复。提前谢谢。

1 个答案:

答案 0 :(得分:2)

我不确定这是否相关,如果没有看到更多的代码,但CudaObj的析构函数是从哪里调用的?

你说:

  

但是,如果我这样做,我会在CudaObj的析构函数中调用cudaFree()时遇到错误退出应用程序。这导致在CUDA上下文的清理代码由于错误而没有被执行之后的内存清理代码,留下了一堆内存泄漏。

在描述了如何将cuda设置内容更改为thread2的主要功能之后。如果您从另一个线程调用CudaObj上的析构函数,那么执行cudaFree清理将会出错,原因与您必须将cuda初始化移动到线程2相同。听起来您已经知道了这一点,但是cuda上下文特定于您的流程中的单个线程。根据文档不支持在不同的线程中进行清理,但我自己从未尝试过。 希望这有帮助