tvm
文章平均质量分 89
Adenialzz
Keep Learning.
展开
-
TVM:设计与架构
TVM:设计与架构本文档适用于想要了解 TVM 架构和/或积极开发项目的开发人员。页面组织如下:示例编译流程概述了 TVM 将模型的高层描述转换为可部署模块所采取的步骤。要开始使用,请先阅读本节。逻辑架构组件部分描述了逻辑组件。后面的部分是针对每个逻辑组件的特定指南,按组件的名称组织。设备/目标交互描述了 TVM 如何与每种支持的物理设备和代码生成目标进行交互。请查看开发人员操作指南以获取有用的开发技巧。本指南提供了架构的一些补充视图。首先,我们回顾了一个端到端的编译流程,并翻译 2022-01-20 22:34:22 · 895 阅读 · 0 评论 -
TVM:编译深度学习模型快速上手教程
TVM:编译深度学习模型快速上手教程本文将展示如何使用 Relay python 前端构建一个神经网络,并使用 TVM 为 Nvidia GPU 生成一个运行时库。 注意我们需要再构建 TVM 时启用了 cuda 和 llvm。TVM支持的硬件后端总览在本教程中,我们使用 cuda 和 llvm 作为目标后端。我们先导入 Relay 和 TVM:import numpy as npfrom tvm import relayfrom tvm.relay import testingimpor翻译 2022-01-20 18:17:35 · 1530 阅读 · 0 评论 -
TVM:使用 Auto-scheduling 来优化算子
TVM:使用 Auto-scheduling 来优化算子在本教程中,我们将展示 TVM 的 Auto-scheduling 功能如何在无需编写自定义模板的情况下找到最佳 schedule。与基于模板的 AutoTVM 依赖手动模板定义搜索空间不同,auto-scheduler 不需要任何模板。 用户只需编写计算声明,无需任何调度命令或模板。 auto-scheduler 可以自动生成一个大的搜索空间,并在该空间中找到一个好的 schedule。我们在本教程中同样使用矩阵乘法作为示例。import o翻译 2021-11-17 21:14:40 · 922 阅读 · 0 评论 -
TVM:使用 Schedule 模板和 AutoTVM 来优化算子
TVM:使用 Schedule 模板和 AutoTVM 来优化算子在本文中,我们将介绍如何使用 TVM 张量表达式(Tensor Expression,TE)语言编写 Schedule 模板,AutoTVM 可以搜索通过这些模板找到最佳 Schedule。这个过程称为自动调整(Auto Tuning),它有助于自动优化张量计算的过程。本教程需基于之前介绍的如何使用 TE 来写一个矩阵乘法的教程。Auto Tuning 有两步:第一步是定义一个搜索空间第二步是运行相应的搜索算法来探索这个空间本翻译 2021-11-17 20:40:13 · 1221 阅读 · 0 评论 -
TVM:使用Tensor Expression (TE)来处理算子
TVM:使用Tensor Expression (TE)来处理算子在本教程中,我们将聚焦于在 TVM 中使用张量表达式(TE)来定义张量计算和实现循环优化。TE用纯函数语言描述张量计算(即每个表达式都没有副作用)。当在 TVM 的整体上下文中查看时,Relay 将计算描述为一组算子,并且其中每一个算子都可以表示为 TE 表达式,每个 TE 表达式获取输入张量并生成输出张量。本文是TVM中 TE 语言的入门教程。TVM 使用领域专用(domain specific)的张量表达式来高效地构造内核。我们以两个翻译 2021-11-13 23:16:34 · 2092 阅读 · 2 评论 -
TVM:简介
TVM:简介概述Apache TVM 是一个用于 CPU、GPU 和机器学习加速器的开源机器学习编译器框架。它旨在使机器学习工程师能够在任何硬件后端上高效地优化和运行计算。本教程的目的是通过定义和演示关键概念,引导您了解 TVM 的所有主要功能。新用户应该能够从头到尾完成本教程的工作,并能够操作 TVM 进行自动模型优化,同时对 TVM 架构及其工作原理有基本的了解。内容介绍安装 TVM使用命令行界面编译和优化模型使用 Python 接口编译和优化模型使用张量表达式使用运算符使用模板和 A翻译 2021-11-07 20:05:12 · 3903 阅读 · 0 评论 -
TVM:交叉编译和RPC
TVM:交叉编译和RPC之前我们介绍了 TVM 的安装、本机demo和树莓派远程demo。本文将介绍了在 TVM 中使用 RPC 进行交叉编译和远程设备执行。通过交叉编译和 RPC,我们可以在本地机器上编译程序,然后在远程设备上运行它。 当远程设备资源有限时很有用,例如 Raspberry Pi 和移动平台。 在本文中,我们将使用 Raspberry Pi 作为 CPU 示例,使用 Firefly-RK3399 作为 OpenCL 示例。在远程设备上构建 TVM Runtime首先我们要在远程设备上翻译 2021-11-07 16:32:59 · 853 阅读 · 0 评论 -
TVM:在树莓派上部署预训练的模型
TVM:在树莓派上部署预训练的模型之前我们已经介绍如何通过Python接口(AutoTVM)来编译和优化模型。本文将介绍如何在远程(如本例中的树莓派)上部署预训练的模型。在设备上构建 TVM Runtime首先我们需要再远程设备上安装 TVM。注意:本节和下一节中的所有指令都应在目标设备上执行,例如 树莓派。 我们假设它运行着 Linux。由于我们在本地机器上进行编译,因此远程设备仅用于运行生成的代码。 我们只需要在远程设备上构建 TVM Runtime。这里在我们安装 tvm 的文章中已经详翻译 2021-11-06 19:48:31 · 1891 阅读 · 0 评论 -
TVM:通过Python接口(AutoTVM)来编译和优化模型
TVM:通过Python接口(AutoTVM)来编译和优化模型上次我们已经介绍了如何从源码编译安装 tvm,本文我们将介绍在本机中使用 tvm Python 接口来编译优化模型的一个demo。TVM 是一个深度学习编译器框架,有许多不同的模块可用于处理深度学习模型和运算符。 在本教程中,我们将学习如何使用 Python API 加载、编译和优化模型。在本文中,我们将使用 Python 接口的 tvm 完成以下任务:为 tvm runtime 编译一个预训练好的 ResNet50-v2 模型在编译翻译 2021-11-06 15:54:56 · 1170 阅读 · 3 评论 -
TVM:源码编译安装
TVM:Linux源码编译安装笔者环境:OS:Ubuntu 18.04CMake:3.10.2gcc:7.5.0cuda:11.1编译安装过程总览本文将简介 tvm 的编译安装过程,包含两个步骤:通过C++代码构建共享库设置相关的语言包(如Python包)源码获取官网教程提供了两种源码获取方式:通过下载页面直接下载通过 github 仓库来下git clone --recursive https://github.com/apache/tvm tvm注意一定要原创 2021-11-06 11:54:39 · 1711 阅读 · 0 评论