我试图在Windows中使用opencl来加速opencv 3.0。我有一个集成的GPU。 Opencv规范预测,对于iGPU的sobel运营商来说,速度提升了10倍。 但与cpu相比,它实际上让我减速1秒。该 代码和机器规格如下。任何人都可以解释这个并给我提高速度的提示。
void OpenCLTest::on_pushButton_clicked()
{
UMat oclImage;
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), ".",
tr("Image Files (*.png *.jpg *.jpeg *.bmp)"));
Mat regImage = cv::imread(fileName.toStdString());
regImage.copyTo(oclImage);
double t = (double)getTickCount();
// speed test - start
Sobel(oclImage, oclImage, -1, 1, 1, 9);
// speed test - end
t = ((double)getTickCount() - t)/getTickFrequency();
cout << "Times passed in seconds: " << t << endl;
}
我使用“cv :: ocl :: haveOpenCL()”检查了ocl,并且工作正常。 使用的图像是24位800x600,res是96 dpi。
cpu和gpu的时间测量值
cpu - 0.121774秒
gpu - 1.14634秒
规格:
Os:Windows 7 64位
CPU - 采用Radeon(tm)高清显卡的AMD C-60 APU,速度--997 MHz
GPU - AMD Radeon HD 6290显卡
opencl - OpenCL 1.2,Loveland计算单位:2 @ 275MHz
Ram - 6 gb
编译器 - mingw 4.92
IDE - QT 5.6(qt创建者)
由于
阿迈勒