所有,我知道CUDA需要一些时间来初始化,如OpenCV文档中所述,但是我的初始调用的长度是非常长的。我觉得我做错了什么,但我不确定。
我通过cv::gpu::setDevice(0);
电话手动初始化CUDA。这需要1-3秒的预期。但是,当我输入我的第一个测试函数并执行:
cv::gpu::Mat input_img(input->rows, input->cols, input->type());
或
cv::gpu::Mat input_img; //This is instant
input_img.create(input->rows, input->cols, input->type();
这些需要45秒才能执行。
现在我已经亲自编写了一些测试CUDA应用程序并且他们不需要这么长时间来传输图像,这让我相信我编写的OpenCV不正确或者使用OpenCV的程序不正确。有人有什么建议吗?
编辑:看到我感到困惑,因为分配设备内存并不能生成任何PTX,因此我非常确定JIT编译器是否正在运行create
来电......