Nvidia GPUDirect и захват камеры на GPU
У меня есть камера USB3, и мне нужно иметь захваченные изображения для загрузки в текстуру DirectX. В настоящее время я просто делаю это в своем коде в пользовательском режиме - собираю изображения и загружаю их в графический процессор, что, конечно, приводит к определенным накладным расходам на ЦП и задержке в ~5-7 миллисекунд.
На новом ПК установлена видеокарта Nvidia Quadro, которая поддерживает GPUDirect
Насколько я понимаю, это позволяет быстрее разделять память между графическим процессором и процессором, но я не уверен, как мне воспользоваться этим. Для того, чтобы захватывать изображения непосредственно в буферы GPU, драйвер камеры должен его поддерживать? Или это то, что я могу настроить в своем коде?
1 ответ
Ваша предпосылка неверна
как я понимаю, это позволяет быстрее разделять память между GPU и CPU
GPUDirect - это технология NVIDIA, которая поддерживает передачу данных с PCI на PCI между устройствами, а не между процессором и графическим процессором. Фактически он удаляет копию процессора при передаче данных между двумя устройствами PCI.
Для использования GPUDirect в вашем случае вам необходимо иметь карту захвата, которая будет подключена через PCI (ваша камера будет подключена к карте захвата). Затем вы можете передавать кадры непосредственно в графический процессор.
Не могу комментировать, если это будет быстрее, чем передача по USB.