我正在运行一个 C 程序,在其中调用两次 cuda 主机函数。我想清理这两个调用之间的设备内存。有没有办法可以刷新 GPU 设备内存?我使用的是计算能力为2.0的Tesla M2050
如果您只想将内存归零,那么cudaMemset
这可能是最简单的方法。例如:
const int n = 10000000;
const int sz = sizeof(float) * n;
float *devicemem;
cudaMalloc((void **)&devicemem, sz);
kernel<<<...>>>(devicemem,....);
cudaMemset(devicemem, 0, sz); // zeros all the bytes in devicemem
kernel<<<...>>>(devicemem,....);
Run Code Online (Sandbox Code Playgroud)
请注意,该值cudaMemset
采用的是字节值,并且指定范围内的所有字节都设置为该值,就像标准 C 一样memset
。如果您有特定的字值,那么您将需要编写自己的 memset 内核来分配值。
归档时间: |
|
查看次数: |
4577 次 |
最近记录: |