我有一个USB3相机,我需要将捕获的图像加载到DirectX纹理中。目前,我只是在用户模式下在我的代码中这样做-抓取图像并将它们上传到GPU,这当然会导致CPU的某些开销和大约5-7毫秒的延迟。
在一台新的PC上有Nvidia Quadro GPU卡,它支持GPUDirect,据我所知,这可以在GPU和中央处理器之间更快地共享内存,但我不确定如何利用它。为了将图像直接捕获到GPU缓冲区,摄像头驱动程序是否需要支持它?或者是我可以在代码中配置的东西?
发布于 2017-08-02 21:32:33
你的前提是错误的
据我所知,这可以在
和CPU之间更快地共享内存。
GPUDirect是NVIDIA技术,支持设备之间的PCI到PCI传输,而不是CPU和GPU之间的传输。事实上,在两个PCI设备之间传输数据时,它会删除CPU副本。
要在您的情况下使用GPUDirect,您需要有一个采集卡,这将通过PCI连接(您的相机将连接到采集卡)。然后,您可以直接将帧传输到GPU。
不能评论它是否会比USB传输更快。
https://stackoverflow.com/questions/38681759
复制相似问题