호스트에서 double 배열을 Device의 float 배열로 복사하는 방법이 있습니까? 나는 정밀도의 손실에 관심이 없다? 내가 다음 경우가 있습니다cudaMemcpy 배열을 부동 배열
double* host = new[N];
... // Perform some calculations on host array
float* device;
cudaMalloc((void**) &device, N * sizeof(float));
cudaMemcpy(device, host, N * sizeof(float), cudaMemcpyHostToDevice);
것은 내가 오류 잘못된 인수를 얻고 있었다 작성된 코드 위에 시도. 호스트 배열을 float으로 변경하는 것 외에 다른 해결책이 있습니까?
memcpy 또는 cudaMemcpy의 역할에 대해 잘 모릅니다. float 또는 double의 정밀도를 고려하지 않고 바이트 대 바이너리 복사를 수행합니다. 따라서 코드를 실행해도 오류가 발생하지 않더라도 장치 벡터에 쓰레기가 생깁니다. –