我致电CuctxDestroy后,重复使用CumeMalloc内存是安全的吗?

Is it safe to reuse cuMemAlloc memory after I call cuCtxDestroy?

本文关键字:内存 CumeMalloc 安全 CuctxDestroy      更新时间:2023-10-16

在调用CuctxDestroy之后使用cumemalloc内存分配是安全的吗?

,例如

cuCtxCreate()
void *d_buffer;
cuMemAlloc(d_buffer, ....);
cuCtxDestroy();
// In another place but same thread
cuCtxCreate();
kernel_call<<<..>>>(d_buffer); // Use the device allocation previously created

no,分配是上下文的一部分。

当您破坏上下文时,您还会破坏与之相关的任何资源,包括内存分配。

即使没有上下文破坏,如果您尝试使用在另一个上下文下创建的CUdeviceptr(即分配(,那么当其他上下文不是当前的情况下,您应该获得"无效的设备指针"错误(或内核运行时错误,一个错误,如果将其传递给内核,例如"非法访问"(

还要注意,您将在此处与运行时API语法(<<<..>>>(混合使用驱动程序API使用情况,因此我并不是建议您写的内容实际上在任何特定情况下都很理智,只是试图回答您的问题。