CUDA:cudaFree(0) 您所在的位置:网站首页 如何释放结构体内存 CUDA:cudaFree(0)

CUDA:cudaFree(0)

2023-09-12 19:44| 来源: 网络整理| 查看: 265

在学习代码的时候,遇到cudaFree(0),疑惑了一下,之前记得是释放显存,那么参数0是做什么操作?查阅资料并记录一下。

1:cudaFree函数API:接收void* devptr指针。释放指针指向的显存。如果输入参数时0,不会进行释放操作。

extern __host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaFree(void *devPtr);

2:那cudaFree(0)的到底是干嘛的呢?

参考1:https://blog.csdn.net/dfdfdsfdfdfdf/article/details/76674734

cuda里面没有对设备的初始化函数InitDevice(),只能每次调用的api函数的时候,加载设备的上下文,自动进行初始化,这将带来问题:

First函数调用的时候,需要自动初始化设备,因此耗时过长无法分析第一个api函数的耗时 处理办法 在程序前加设置初始化函数: cudaFree(0),后面程序就不会再次初始化,cudamalloc()也将很快;一次初始化后,程序cudamalloc()分配的内存不释放,继续使用,所有程序运行结束后,再一起释放。 我这里就把上面参考链接里面的示例代码拿过作为示例,感兴趣的可以去看一下原文中的完整版。

参考2:https://www.cnblogs.com/xingzifei/p/6119452.html 这篇解释的更为详细和具体,感兴趣的可以去参看原文。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有