【TVM教程】为 NVIDIA GPU 自动调度神经网络
💡
原文中文,约33900字,阅读约需81分钟。
📝
内容提要
Apache TVM 是一个深度学习编译框架,支持 CPU、GPU 和加速芯片。本文介绍如何使用 auto-scheduler 对 NVIDIA GPU 上的神经网络进行自动调优,通过将网络划分为子图并独立优化来提升性能。推荐使用 NHWC 布局以获得最佳效果,并提供了调优过程中的参数设置和代码示例。
🎯
关键要点
- Apache TVM 是一个深度学习编译框架,支持 CPU、GPU 和加速芯片。
- 使用 auto-scheduler 对 NVIDIA GPU 上的神经网络进行自动调优。
- 将网络划分为子图并独立优化以提升性能。
- 推荐使用 NHWC 布局以获得最佳效果。
- 提供了调优过程中的参数设置和代码示例。
- 自动调优神经网络需要将网络划分为小的子图。
- 每个子图被视为一个搜索任务,任务调度器动态分配时间资源。
- auto-scheduler 无需任何调度模板,直接使用计算声明。
- 本教程无法在 Windows 或最新版本的 macOS 上运行。
- 使用 Relay 前端 API 定义网络,可以从多个框架加载模型。
- 通过 NHWC 布局实现的性能最佳,推荐将模型转换为 NHWC 布局。
- 提取搜索任务及其权重以优化网络的端到端延迟。
- 设置调优和启动搜索任务的选项,包括测试次数和日志记录。
- 调优过程中打印的信息用于调试,显示任务的延迟和速度。
- 可以通过强制终止进程提前终止调优。
- 自动调优后,用找到的最佳调度来编译网络。
- 推荐使用多核高性能 CPU 加快搜索速度。
- 可以从以前的日志文件恢复搜索,支持并行化测试。
🏷️
标签
➡️