cudaMemcpySymbolToSymbol在哪里?

cudaMemcpySymbolToSymbol在哪里?,cuda,Cuda,我试图在同一台设备上将一个符号的内容复制到另一个符号。我找不到任何支持这一点的人 __device__ int someData; __constant__ int someConst; ) 或 有没有一种更简单的方法可以从一个符号复制到另一个符号?没有符号到符号的API调用。如果要多次执行此操作,最好的方法可能是在设置代码中执行以下操作: __device__ int someData; __constant__ int someConst; int * _D, * _C; cudaGet

我试图在同一台设备上将一个符号的内容复制到另一个符号。我找不到任何支持这一点的人

__device__ int someData;
__constant__ int someConst;
)


有没有一种更简单的方法可以从一个符号复制到另一个符号?

没有符号到符号的API调用。如果要多次执行此操作,最好的方法可能是在设置代码中执行以下操作:

__device__ int someData;
__constant__ int someConst;

int * _D, * _C;
cudaGetSymbolAddress((void **)&_D, someData);
cudaGetSymbolAddress((void **)&_C, someConst);
它获取GPU内存中两个符号的地址,然后改用
cudaMemcpy
,因此:

cudaMemcpy(_C, _D, sizeof(int), cudaMemcpyDeviceToDevice);
这样做可以消除符号查找开销,并减少对设备到设备复制调用的操作

__device__ int someData;
__constant__ int someConst;

int * _D, * _C;
cudaGetSymbolAddress((void **)&_D, someData);
cudaGetSymbolAddress((void **)&_C, someConst);
cudaMemcpy(_C, _D, sizeof(int), cudaMemcpyDeviceToDevice);