如何在媒体基础中支持多 GPU 系统
How to support multi-GPU systems in Media Foundation?
我需要在正确的GPU上创建D3D设备和上下文,这是实现编码器的GPU。
MFT_ENUM_ADAPTER_LUID
的文档说它需要Windows 10,实际上NVENC MFT即使在Win10上也不会公开该属性。
MFT_ENUM_HARDWARE_URL_Attribute
的文档说该值是设备驱动程序的符号链接,实际上NVENC MFT不返回任何GUID链接,该值与MFT_FRIENDLY_NAME_Attribute
中的值相同,特别是L"NVIDIA H.264 Encoder MFT"
MFT_ENUM_HARDWARE_VENDOR_ID_Attribute
似乎工作正常,返回L"VEN_10DE"
,以便我可以将其解析为一个数字并与DXGI_ADAPTER_DESC
结构VendorId
字段匹配。但是,该属性的文档指出支持是可选的。
不喜欢可选,我想要可靠。如何将硬件编码器 MFT 与 GPU 匹配?AMD即将推出带有两个GPU的PC,例如华硕FX505DY,供应商ID技巧不适用于此类系统。
MFT 实例 [至少在实例化阶段] 不是特定于设备的。如果系统中有两个启用了 NVENC 的视频适配器,则编码器 MFT 是相同的,具有相同的 CLSID。
您可以通过MFT_MESSAGE_SET_D3D_MANAGER
消息指定要使用的 GPU,该参数包装 D3D 设备并且特定于 GPU。您可以在此处为编码器选择 GPU。
此外,仅供参考,NVIDIA H.264编码器MFT特别无法与除主视频适配器(包括但不限于此)以外的任何东西正常工作,如果不是无处不在,至少在大量系统中。据我了解,这是Nvidia的错误,他们将在MFT实现中修复。
- 编译时未启用intel oneApi CUDA支持
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 使用CMake检测支持的C++标准
- 为什么istream不支持右值提取
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 扩展光电二极管探测器以支持多个传感器
- MSVC是否支持C++11样式的属性而不是__declspec
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- 如何在GPU支持下编译tflite?
- 强制 Dlib python 仅使用 CPU 支持进行安装;在具有 Cuda 和所有内容的 GPU 机器上
- NVCC 致命:安装 CUDA9.0 时'compute_20'不受支持的 GPU 架构
- 如何在媒体基础中支持多 GPU 系统
- 在笔记本电脑上开发不支持 GPU 的 OpenCL 应用程序
- Opencv错误:没有GPU支持(编译库时没有CUDA支持)
- OpenCV:不支持GPU(该库是在不支持CUDA的情况下编译的)
- OpenCV错误:没有GPU支持:2.4.10和CUDA v7.5
- 使用OpenCv 2.4.10 + Cuda 7.5 + W10不支持GPU