Cuda内存分配

问题描述 投票:0回答:1

实际上,我正在使用jetson TX2。我从相机捕获图像,为unsigned char * image。然后,我需要做一些图像处理。为此,我使用了GPU。使用Jetson TX2,我们可以避免数据主机/设备和设备/主机的传输,因为RAM在GPU和CPU之间共享。为此,我使用:

int height = 6004 ;
int width = 7920 ;
int NumElement = height*width ;
unsigned char *img1 ;
cudaMallocManaged(&img1, NumElement*sizeof(unsigned char));

使用该方法,PCI没有限制。我的问题是如何将缓冲区中的图像分配给img1。此方法有效,但时间太长:

for(int i =0 ; i<NumElement ; i++)
    img[i] = buffer[i] ;

[我使用朴素的for循环失去了GPU的优势...如果我仅使用该方法:

img = buffer

类似,进入内核时出现问题..

谢谢您的帮助! :)

image-processing memory-management cuda nvidia-jetson
1个回答
0
投票

cudaMemcpy一起使用cudaMemcpyDefault,类似

cudaMemcpy(&buffer[0], &img[0], NumElement * sizeof(char), cudaMemcpyDefault);

您也可能使用memcpy

© www.soinside.com 2019 - 2024. All rights reserved.