【问题标题】:CUDA memcpy device to device errorCUDA memcpy 设备到设备错误
【发布时间】:2014-10-05 12:28:20
【问题描述】:

我想使用 cudaMemcpy 复制设备内存中的数据,这是我的代码

unsigned char* red_src  ;
unsigned char* blue_src ;
unsigned char* green_src;

checkCudaErrors(cudaMalloc(&red_src,   sizeof(unsigned char) * numRowsSource * numColsSource));
checkCudaErrors(cudaMalloc(&blue_src,   sizeof(unsigned char) * numRowsSource * numColsSource));
checkCudaErrors(cudaMalloc(&green_src,   sizeof(unsigned char) * numRowsSource * numColsSource));

//bla bla ..........

//initialization
compute_g<<<grid, block>>>(red_src, strictInteriorPixels,g_red, numRowsSource, numColsSource );
compute_g<<<grid, block>>>(blue_src, strictInteriorPixels,g_blue, numRowsSource, numColsSource );
compute_g<<<grid, block>>>(green_src, strictInteriorPixels,g_green, numRowsSource, numColsSource );

float *blendedValsRed_1 ;
float *blendedValsRed_2 ;

//set memory
checkCudaErrors(cudaMalloc(&blendedValsRed_1,   sizeof(float) * numRowsSource * numColsSource));
checkCudaErrors(cudaMalloc(&blendedValsRed_2,   sizeof(float) * numRowsSource * numColsSource));

checkCudaErrors(cudaMemcpy(blendedValsRed_1, red_src, sizeof(float) * numRowsSource * numColsSource,cudaMemcpyDeviceToDevice));
checkCudaErrors(cudaMemcpy(blendedValsRed_2, red_src, sizeof(float) * numRowsSource * numColsSource,cudaMemcpyDeviceToDevice));

它可以编译,但是当我尝试运行它时,cudaMemcpy 出现错误,说:

tintin ~/programming/cs344/Problem Sets/Problem Set 6 $  optirun ./HW6 source.png     destination.png 
CUDA error at: student_func.cu:365
invalid argument cudaMemcpy(blendedValsRed_1, red_src, sizeof(float) * numRowsSource  * numColsSource,cudaMemcpyDeviceToDevice)

任何人都可以提供帮助,谢谢!

【问题讨论】:

    标签: cuda


    【解决方案1】:

    我不太确定这是否是您错误的确切原因,但这是您做错的一件事:

    您正在为red_src 分配内存,大小为sizeof(unsigned char) * SOMETHING

    checkCudaErrors(cudaMalloc(&red_src,   sizeof(unsigned char) * numRowsSource * numColsSource));
    

    在尝试以sizeof(float) * SOMETHING 的大小访问它时:

    checkCudaErrors(cudaMemcpy(blendedValsRed_1, red_src, sizeof(float) * numRowsSource * numColsSource,cudaMemcpyDeviceToDevice));
    

    【讨论】:

      猜你喜欢
      • 2016-02-09
      • 2013-07-04
      • 2016-01-19
      • 1970-01-01
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 2020-10-06
      相关资源
      最近更新 更多