| 语言 | 格式 | 评分 |
|---|---|---|
zh | .pdf | 3 |
| 摘要 | ||
文档详细介绍了亿联网络技术股份有限公司杭州分公司在部署TVM过程中的经验和解决方案。主要内容包括选择TVM的原因,如其相比OpenVino的灵活性和性能优化能力,以及TVM对多种硬件平台的支持。文档还描述了在Windows环境下部署TVM的具体步骤,包括日志文件的生成和使用,以及针对32位系统的特殊处理方法。此外,文档还讨论了多线程运行时问题的处理方案,并提供了相应的代码示例。 | ||
| AI总结 | ||
## 《亿联TVM部署》总结
### 公司信息
厦门亿联网络技术股份有限公司杭州分公司在视频会议和语音通信领域进行了TVM(TensorVM)的部署。
### 选择TVM的原因
1. **OpenVino的局限性**:OpenVino是一个黑盒子,无法直接部署包含深度可分离卷积的网络模型。
2. **TVM的优势**:
- 支持多种硬件平台(如Intel/ARM CPU、NVIDIA/ARM GPU、VTA等)。
- 通过自动调优(autotuning)实现性能优化。
3. **部署灵活性**:TVM能够满足亿联网络对硬件支持和性能的需求。
### Windows平台部署步骤
1. 从Ubuntu上的autotvm获取日志文件。
2. 使用该日志文件在Windows上生成.dll文件。
3. **32位系统 workaround**:
- 使用特定选项生成日志文件(如:`options = ["-shared", "-fPIC", "-m32"]`)。
- 指定目标平台(如:`llvm -mcpu=i686 -mtriple=i686-linux-gnu`)。
- 使用clang进行32位编译。
### 多线程问题
文档中提供了一个多线程处理的C++代码示例,展示了如何通过线程进行模型推理。主要步骤包括:
1. 创建线程并执行推理任务。
2. 使用`CreateThread`和`WaitForSingleObjectEx`进行线程同步。
3. 处理线程完成或失败的情况。
### 总结
亿联网络选择了TVM而非OpenVino,主要是因为TVM支持多种硬件平台且能够通过自动调优实现性能优化。在Windows平台上,通过特定的编译选项和日志生成方法解决了32位系统的兼容性问题。此外,文档还提供了多线程处理的代码示例,展示了如何在多线程环境中使用TVM进行模型推理。 | ||
P1
P2
P3
P4
P5
P6
下载文档到本地,方便使用
文档评分














亿联TVM部署