随笔分类 -  TVM系列

摘要:支持的TVM硬件后端概述 下图显示了 TVM 目前支持的硬件后端: 在本教程中,将选择 cuda 和 llvm 作为目标后端。首先,让导入 Relay 和 TVM。 import numpy as np from tvm import relay from tvm.relay import test 阅读全文
posted @ 2022-07-22 23:55 牛犁heart 阅读(704) 评论(0) 推荐(0) 编辑
摘要:TensorIR是一种用于深度学习的特定领域语言,主要有两个目的。 在各种硬件后端进行程序变换和优化的实现 用于自动张量化程序优化的抽象 import tvm from tvm.script.parser import ir_module from tvm.ir.module import IRMo 阅读全文
posted @ 2022-07-22 21:36 牛犁heart 阅读(471) 评论(0) 推荐(0) 编辑
摘要:与基于模板的AutoTVM不同(会依赖手动模板定义搜索空间),自动调度器不需要任何模板。用户只需要编写计算声明,而不需要任何调度命令或模板。自动调度器可以自动生产一个大的搜索空间,并在空间中找到一个好的调度。 本节以矩阵乘法为例 导入依赖包 import os import numpy as np 阅读全文
posted @ 2022-07-22 20:45 牛犁heart 阅读(208) 评论(0) 推荐(0) 编辑
摘要:本节学习如何使用TVM 张量表达式(TE)语言来编写调度模板,这些模板可以被autoTVM搜索到,以找到最佳调度。这个过程称为auto-Tuning,它有助于优化张量计算的自动化过程。 本节建立在如何使用TE编写矩阵乘法的基础上 auto-tuning的步骤如下: 第一搜索空间 第二运行一个搜索算法 阅读全文
posted @ 2022-07-21 23:54 牛犁heart 阅读(760) 评论(0) 推荐(0) 编辑
摘要:在本教程中,把注意力转向 TVM 如何使用张量表达式(Tensor Expression,简称 TE)定义张量计算并应用循环优化。TE 以纯函数式语言描述张量计算(即每个表达式都没有副作用)。从 TVM 的整体来看,Relay 将计算描述为一组算子,这些算子都可以表示为 TE 表达式,每个 TE 表 阅读全文
posted @ 2022-07-20 23:49 牛犁heart 阅读(885) 评论(0) 推荐(0) 编辑
摘要:Step 0: Imports from tvm.driver import tvmc Step 1: Load a model 下载模型: wget https://github.com/onnx/models/raw/b9a54e89508f101a1611cd64f4ef56b9cb62c7c 阅读全文
posted @ 2022-07-17 18:32 牛犁heart 阅读(399) 评论(0) 推荐(0) 编辑
摘要:TVM整体流程(参考:TVM介绍) 机器学习模型在用TVM优化编译器框架进行变换时的步骤: 从Tensorflow/pytorch或ONNX等框架导入模型 import层是TVM从其他框架中导入模型的地方 注:TVM为每个前端提供的支持水平不尽相同,可尝试将模型转换为ONNX 转换到Relay Re 阅读全文
posted @ 2022-07-16 19:47 牛犁heart 阅读(1803) 评论(0) 推荐(0) 编辑
摘要:docker安装 可自行到https://tvm.apache.org/docs/install/docker.html 官网下载安装 环境: 系统: ubuntu22.04系统, docker版本: 20.10.17 cuda: 11.6 因此在安装时选用了nvidia/cuda:11.6.1-d 阅读全文
posted @ 2022-07-15 00:05 牛犁heart 阅读(1092) 评论(0) 推荐(1) 编辑