我想弄明白为什么cudaMemcpyFromSymbol()存在.似乎'符号'func可以做的一切,nonSymbol cmds可以做到.
符号func似乎可以轻松移动数组或索引的一部分,但这可以很容易地使用nonSymbol函数完成.我怀疑nonSymbol方法会运行得更快,因为不需要符号查找.(目前尚不清楚符号查找计算是在编译还是运行时完成.)
我为什么要用cudaMemcpyFromSymbol()vs cudaMemcpy()?
tal*_*ies 11
cudaMemcpyFromSymbol是从设备内存中任何静态定义的变量进行复制的规范方法.
cudaMemcpy不能直接用于复制到静态定义的设备变量或从静态定义的设备变量复制,因为它需要设备指针,并且在运行时托管代码是未知的.因此,需要可以询问设备上下文符号表的API调用.这两个选项要么是cudaMemcpyFromSymbol在一个操作中进行符号查找和复制,要么cudaGetSymbolAddress返回可以传递给的地址cudaMemcpy.如果你只想做一个副本,前者可能更有效,后者如果你想在主机代码中多次使用地址.