是否在全局内存中正确使用cudaGetSymbolAddress和cudaMemcpyToSymbol?

是否在全局内存中正确使用cudaGetSymbolAddress和cudaMemcpyToSymbol?,cuda,Cuda,我对CUDA相当陌生,熟悉cudamaloc和cudaMemcpy的正常用法,也熟悉将cudaMemcpyToSymbol复制到恒定内存的用法 然而,我刚刚收到一些代码,它们经常使用cudaGetSymbolAddress和cudaMemcpyToSymbol复制到全局内存,我不知道他们为什么选择这样做而不是cudaMalloc/cudaMemcpy 有人能解释一下什么时候使用cudaGetSymbolAddress和cudaMemcpyToSymbol是有利和合适的吗 谢谢大家! 使用cuda

我对
CUDA
相当陌生,熟悉
cudamaloc
cudaMemcpy
的正常用法,也熟悉将
cudaMemcpyToSymbol
复制到恒定内存的用法

然而,我刚刚收到一些代码,它们经常使用
cudaGetSymbolAddress
cudaMemcpyToSymbol
复制到全局内存,我不知道他们为什么选择这样做而不是
cudaMalloc
/
cudaMemcpy

有人能解释一下什么时候使用
cudaGetSymbolAddress
cudaMemcpyToSymbol
是有利和合适的吗


谢谢大家!

使用
cudamaloc
动态分配全局内存时,要使用的正确复制API是
cudaMemcpy


分配全局内存时:


那么正确使用的API是
cudaMemcpyToSymbol
cudamemcpyfromsmbol

值得注意的是
cudaMemcpy
如果调用
cudaGetSymbolAddress
,也可以与静态声明的设备内存一起使用。如果有多个操作,只查找一次符号可能会稍微快一些。
__device__  int my_data[DSIZE];