如何从主机的自定义类数组变量拷贝到CUDA设备上的一个float数组

2025-05-19 19:17:46
推荐回答(1个)
回答1:

假定目的地数组有足够内存,与原数组属同一类型变量,可以用memcpy();
例如:
#include
#include
int main(){
double a[]={1,2,3,4,5,6,7,8};
double b[10];
int i;
memcpy(b,a,sizeof(a));
for (i=0;i<8;i++) printf("%g ",b[i]);
return 0;
}
输出: 1 2 3 4 5 6 7 8

如果变量类型不同,那么循环赋值就是了:
int a[]={1,2,3,4,5,6,7,8};
double b[10];
int i ;
for (i=0;i<8;i++) b[i ] = a[i ];
(当然,这个 8 你也可以 用 sizeof(a)/sizeof(int) 代替 -- 由程序算出来 )。