一、TVM简介
什么是
TVM
?TVM
是一个开源深度学习编译栈,支持CPU
、GPU
以及特定的加速器。它旨在缩小以生产力为中心的深度学习框架与以性能和效率为中心的硬件后端之间的差距。通常与深度学习框架配合使用,为不同的后端提供端到端编译。常见的应用场景包括:- 需要兼容所有主流模型作为输入,并针对任意类型的目标硬件生成优化部署模型
- 对部署模型的推理延迟、吞吐量等性能指标有严格的要求
- 自定义模型算子、自研目标硬件、自定义模型优化流程的场景
TVM结构图:
通用机器学习模型基于TVM的转换流程:
TVM和其他框架比如NNVM、XLA的区别?
站在TVM的角度来看,NNVM和XLA都是计算图级别的优化(High-Level优化),侧重点在于内存复用、布局转换和自动微分。
而TVM采用的是一种Low-Level的表示,进行的是内存布局、并行模式、局部性和硬件原语等优化。
二、为什么做国际化
TVM
目前虽然还处于研发测试阶段,但不论是从社区活跃度还是科研/生产的角度来看,其意义和潜力都是巨大的。但是TVM
相关的手册、资料、教程等十分稀缺,官方手册目前尚且不能保证紧跟TVM内部细节,更不提其它来源的资料。也正由于TVM相关资料少,导致深入使用TVM的难度剧增,尤其对于非英语语种人士而言,几乎没有选择,这并不利于让更多的人轻松加入到TVM
的使用中。
TVM
官方手册作为其正式描述文档,无论是覆盖面还是准确度都具有不可替代的地位,对其形成国际化翻译意义是重大的。
三、我们完成的工作
截至目前,通过对Apache TVM的代码添加了若干修改,我们已经顺利完成了TVM文档国际化支持,并将其发布在了Apache TVM的一个fork 版本,未来计划将此部分代码提交到Apache/TVM: main
。任何人可以轻松参照 国际化部署说明文档,为TVM文档提供以下语种版本的翻译:
- Bengali
- Catalan
- Czech
- Danish
- German
- English
- Spanish
- Finnish
- French
- Croatian
- Italian
- Lithuanian
- Dutch
- Polish
- Brazilian Portuguese
- Russian
- Slovenian
- Swedish
- Turkish
- Ukrainian
- Simplified Chinese
- Traditional Chinese
当然,我们在进行相关工作时已经尝试与Apache TVM官方以及社区取得沟通,并获得积极的支持。
在此郑重感谢所有提供指引、帮助以及支持的人!
四、我们正在进行的工作
基于上述已经完成的国际化工作,我们正致力于TVM中文手册翻译工作,您可以随时访问TVM中文查看已经取得的成果。我们的翻译工作是持续的,将与Apache TVM英文手册保持同步(当然可能存在延时),期待更多的人能够加入到我们。关于作者信息、捐赠者贡献、版权等内容,请查阅在TVM中文声明。
项目流程抽象:
我们还需要什么?
- 翻译者–Translator
- 对计算机相关中英词汇、英语、中文有一定程度了解的人都可以加入到我们的翻译工作中。
- 复核者–Reviewer
- 对计算机尤其深度学习方向有一定程度了解的人。如果您对TVM有较为深入的了解,相信你一定可以胜任!
- 翻译者–Translator
五、附加信息
作者邮箱:a_flying_fish@outlook.com
翻译项目网址:https://www.transifex.com/TVMChinese/tvmchinese_0_8_dev/
声明及补充信息:https://chinese.tvm.wiki/declaration_zh_CN.html
内容引用:
https://zhuanlan.zhihu.com/p/353660224