CUDA:在内核中使用 realloc
我知道可以在内核内部使用malloc
在GPU的全局内存上分配内存。是否也可以使用realloc
?
I know that it is possible to use malloc
inside the kernel to allocate memory on GPU's global memory. Is it also possible to use realloc
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以为您的数据类型编写自己的重新分配设备函数。
只需为新数组分配新空间,将旧值复制到新数组,释放旧数组空间,返回具有更多空间的新数组。
大约像下面的代码片段:
但一定要调用它,如果你真的需要它。还要添加适当的错误检查。
You could write you own realloc device function for your data type.
Just allocate the new space for a new array, copy the old values to the new, free the old array space, return the new with more space.
Approximately like the following code fragment:
But be sure to call it, if you really need it. Also add proper error checking.
在Cuda编程指南中,当他们介绍
malloc
和free
函数时,没有提到realloc
。我会假设它不存在。如果您想确切地了解它,为什么不编写一个简单的内核并尝试使用它呢?
In the Cuda Programming Guide, when they introduce
malloc
andfree
functions, there is no mention ofrealloc
. I would assume that it does not exist.If you want to know it for sure, why don't you write a simple kernel and try using it?