小编Jab*_*ber的帖子

删除内核中的 cudaMalloc 分配的内存

我想cudaMalloc使用delete[];删除内核内部分配的数组;但是内存检查器显示访问冲突,数组保留在内存中,内核继续执行。

#include "cuda_runtime.h"
#include "device_launch_parameters.h"

__global__ void kernel(int *a)
{
    int *b = new int[10];

    delete[] b; // no violation

    delete[] a; // Memory Checker detects access violation.
}

int main()
{
    int *d_a;
    cudaMalloc(&d_a, 10 * sizeof(int));

    kernel<<<1, 1>>>(d_a);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)
  1. 设备代码分配的内存cudaMallocnew设备代码中分配的内存有什么区别?
  2. 是否可以删除cudaMalloc设备代码中分配的内存?

谢谢

cuda

1
推荐指数
1
解决办法
357
查看次数

标签 统计

cuda ×1