Complex* h_signal = (Complex*)malloc(sizeof(Complex) * NX);
// Initalize the memory for the signal
for ( i = 0; i < np; i++)
{
fscanf(fp,“%f”,&x[i]);
h_signal[i].x = x[i];
h_signal[i].y = 0;
}
if(np<NX)
{
for(i=np;i<NX;i++)
{
h_signal[i].x=0.0;
h_signal[i].y=0.0;
}
}
Complex* d_signal;
cudaMalloc((void**)&d_signal, mem_size);
// Copy host memory to device
cudaMemcpy(d_signal, h_signal, mem_size,cudaMemcpyHostToDevice
Complex* h_signal = (Complex*)malloc(sizeof(Complex) * NX);
// Initalize the memory for the signal
for ( i = 0; i < np; i++)
{
fscanf(fp,“%f”,&x[i]);
h_signal[i].x = x[i];
h_signal[i].y = 0;
}
if(np<NX)
{
for(i=np;i<NX;i++)
{
h_signal[i].x=0.0;
h_signal[i].y=0.0;
}
}
Complex* d_signal;
cudaMalloc((void**)&d_signal, mem_size);
// Copy host memory to device
cudaMemcpy(d_signal, h_signal, mem_size,cudaMemcpyHostToDevice);
cudaMemcpy(d_signal, h_signal, mem_size,cudaMemcpyHostToDevice;
就是这句执行完之后h_signal中的值并没有传到d_signal上,而且我 在cudaMalloc((void**)&d_signal, mem_size);之后让它输出到屏幕,发现开辟的内存空间也有问题