DirectML 工具

以下工具可用于增强 DirectML 并将其集成到 AI 应用中。

ONNX 运行时上线 (Olive)

Olive 是一种易于使用的硬件感知模型优化工具,包含模型压缩、优化和编译等方面的行业领先技术。 可以通过具有 DirectML 并用作目标后端的 Olive 来传递模型,Olive 包含最适合的优化技术,因此能够输出最高效的模型。 有关如何使用 Olive 的更多信息和示例,请参阅 Olive 的文档

DxDispatch

DxDispatch 是用于启动 DirectX 12 计算程序的简单命令行可执行文件,无需编写所有 C++ 样本。 为该工具提供的输入是一个 JSON 模型,该模型将定义资源、可调度对象(计算着色器、DirectML 运算符和 ONNX 模型)以及要执行的命令。 有关更多信息,请参阅 Github 上的 DxDispatch 指南

DirectMLX

DirectMLX 是 DirectML 的 C++ 仅标头帮助程序库,旨在更轻松地将单个运算符组合到图形中。 有关更多信息,请访问 DirectMLX 文档

ONNX 运行时性能测试

onnxruntime 性能测试是一种工具,用于度量在 onnxruntime 框架中使用不同的执行提供程序 (EP) 运行 ONNX 模型时的性能。 它可以报告每个 EP 和模型的延迟、吞吐量、内存使用情况和 CPU/GPU 利用率等指标。 onnxruntime 性能测试还可以比较不同 EP 和模型的结果,并生成图表和表格以进行分析。

要将 onnxruntime 性能测试与 directml ep 配合使用,请安装 onnxruntime-directml 包,并将 directml 指定为命令行参数中的 EP。 例如,如下命令将使用 directml ep 和默认设置对 resnet50 模型执行性能测试:

onnxruntime_perf_test -m resnet50 -e directml

性能测试将输出 directml ep 和 resnet50 模型的平均延迟、峰值工作集内存和平均 CPU/GPU 利用率。 还可以使用其他选项来自定义性能测试,例如更改迭代次数、批大小、并发、预热运行、模型输入和输出格式。 有关更多详细信息,请参阅 onnxruntime 性能测试文档