tir_to_llvm_ir

TVM在编译过程中,经历了 graph LR A[3rd IR] --> B[Relay IR] B --> C[TIR] C --> D[LLVM IR] C -->E[Source] 这一系列的过程。其中在生成cpu、rocm、nvptx、hexagon等平台的相关代码的时候,会先由TVM的TIR转换为LLVM IR,在后续由LLVM生...

阅读全文

Linux_shell中提取文件名和路径

首先假设我的文件全称:/home/luna/Desktop/Software/softHLA/HLAreporter.v103/HLAreporter.sh. 获取文件名使用${},${str##*/}这个命令的作用就是去掉变量str从左边算起的最后...

阅读全文

packfunc

为实现多种语言支持,需要满足以下几点: 部署:编译结果可以从python/javascript/c++调用。 Debug: 在python中定义一个函数,在编译函数中调用。 链接:编写驱动程序以调用设备特定代码(如CUDA),可以在编译的host侧调用 原型:python侧定义IR PASS,并从C++后端调用该代码 接口暴露:c++后端代码暴露到pyth...

阅读全文

【TVM教程】 自定义relay算子

本文为tvm 教程的翻译版。这部分介绍了如何在tvm中添加新的relay算子,具体的是以一个累乘(cumprod)算子为例进行介绍。 新增relay算子基本是下面几个步骤: 定义新增算子的属性节点(Attribute Node),声明在编译时已知的固定参数 为新增算子编写类型关系,以集成到relay的类型系统中 使用C++ RELAY_REGISTER_O...

阅读全文

【TVM模型编译】2. relay算子构造

从TVM的官方Tutorial里面,介绍了如何新增自定义算子。(这是我翻译的) 之前的文章讲到了onnx 算子转换到Relay IR的过程下面以Conv2d算子介绍,编译过程中 Relay IR是如何被调用的。 relay 算子调用上面的get_relay_op实际上是查找所有 relay ir算子,其代码在python/tvm/relay/frontend...

阅读全文

【tvm解析】3. Operator Strategy 机制

Relay Operator Strategy是建立Relay IR与TOPI算子库的桥梁,通过Relay Operator Strategy,每个Relay IR至少与一个compute和一个schedule注册关联起来。至少一个原因在于,一个算子在不同后端设备上有不同的实现,而且一个算子可能有多种计算算法,适应不同场景。 在增加relay IR 的教程里...

阅读全文

tvm-多线程代码生成和运行

调用链tvm搜索算子在需要多线程运行的算子,是在codegen阶段时插入TVMBackendParallelLaunch的调用。TVMBackendParallelLaunch 是tvm的线程池并行化入口,具体如下 12345678910111213141516171819/*! * \brief The callback function to execu...

阅读全文

C++'s most vexing parse

C++’s most vexing parse 是 Scott Meyers 在其名著《Effective STL》中创造的一个术语。Scott 用这个术语来形容 C++ 标准对于 declaration 语句的消歧义(ambiguity resolution)约定与常人的认知相悖。 最令人烦恼的解析 (most vexing parse)是C++中的一种反...

阅读全文

【TVM模型编译】1. onnx2relay

上一篇介绍了onnx模型在tvm中优化的总体流程。 在这一篇中,介绍onnx模型到relay模型的转换流程,主要涉及了以下几个方面: onnx算子到relay算子转换 relay算子实现 这一篇介绍onnx算子到relay算子转换过程 onnx算子到relay算子转换12# onnx -> relaymod, params = relay.fron...

阅读全文

【TVM模型编译】0.onnx模型优化流程.md

本文以及后续文章,着重于介绍tvm的完整编译流程。后续文章将会按照以上流程,介绍tvm源码。其中涉及一些编程技巧、以及tvm概念,不在此部分进行进一步讲解,另有文章进行介绍。 首先介绍一下,从onnx模型转为tvm模型的基本步骤。大致可以分为以下几步: onnx模型转到relay IR 基于Relay IR优化 导出优化模型 加载运行模型 1234567...

阅读全文