是否在全局内存中正确使用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];