【问题标题】:Freeing CUDA memory painfully slow释放 CUDA 内存非常缓慢
【发布时间】:2011-01-10 15:39:21
【问题描述】:

我正在使用cudaMalloc((void**)&(storage->data), size * sizeof(float)) 在 GPU 上分配一些浮点数组(非常大,即 9,000,000 个元素)。在我的程序结束时,我使用cudaFree(storage->data); 释放了这个内存。

问题是第一次释放非常慢,大约 10 秒,而其他几乎是瞬时的。

我的问题如下:什么可能导致这种差异? GPU 上的释放内存通常会那么慢吗?

【问题讨论】:

    标签: c memory-management cuda


    【解决方案1】:

    正如 NVIDIA 论坛上所指出的,这几乎可以肯定是您计时的方式而不是 cudaFree 的问题。

    【讨论】:

    • 是的,这就是问题所在。我在 SO 和 nVidia 论坛上都询问过,以确保有能力的人会回答,而且我都想要我想要的 ;) !太棒了!谢谢!
    【解决方案2】:

    应该不会那么慢,在带有 cuda 2.2 的 Linux 上它只需要几分之一秒。 您是否尝试过运行主机和设备分析器来确切了解速度慢的原因? 你执行了多少个单独的分配?,这确实有一些惩罚,但不是那么大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-17
      • 2012-12-09
      • 2023-03-08
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      相关资源
      最近更新 更多