gpt4 book ai didi

c++ - OpenCL copyto() 消耗更多时间

转载 作者:搜寻专家 更新时间:2023-10-31 02:12:56 26 4
gpt4 key购买 nike

我正在比较 OpenCL UMat 和 OpenCL Mat,我运行了 cvtColor() 函数 500 次。

int OpenCL_UMat()
{
Mat img;
UMat uimage, U1;
img = imread("image_path");
for (int i = 1; i < 500; i++)
{
img.copyTo(uimage); // Here it takes 1 sec
cvtColor(uimage, U1, CV_BGR2GRAY);
}
imshow("image1", U1);
return 0;
}

int OpenCL_Mat()
{
Mat img, img1;
img = imread("image_path");
for (int i = 1; i < 500; i++)
{
cvtColor(img, img1, CV_BGR2GRAY);
}
imshow("image1", img);
return 0;
}

以微秒为单位的代码输出是
__________________________________
| OpenCL UMat= 2368720 微秒-|
|________________________________|
| OpenCL Mat = 312200 微秒-----|
|______________________________|

从上面的代码中我发现 copyto() 函数需要时间将图像从 RAM 加载到 GPU,所以当 copyto() 函数运行时,它需要 1 秒来执行。

有没有我可以直接使用 UMat 的选项。
像这样
UMat img = imread("image_path");

最佳答案

你可以使用

UMat img = imread("image_path").getUMat(ACCESS_READ);

关于c++ - OpenCL copyto() 消耗更多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42040482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com