![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
TVM文档翻译
文章平均质量分 88
姆克儿
这个作者很懒,什么都没留下…
展开
-
How to Guides -- How to optimize convolution on GPU
Author: Haichen Shen在本教程中,我们将演示如何在 TVM 中编写高性能卷积实现。 我们以正方形大小的输入张量和滤波器为例,并假设卷积的输入具有大批量。 在此示例中,我们使用不同的布局来存储数据,以实现更好的数据局部性。 缓冲区布局是HWCN,代表高度、宽度、通道、批次。preparation and algorithm我们对具有 256 个通道和 14 x 14 维度的输入张量使用固定大小。 批量大小为 256。卷积过滤器包含 512 个大小为 3 x 3 的过滤器。我们使用步幅大翻译 2022-03-20 17:01:02 · 242 阅读 · 0 评论 -
How to Guides -- How to optimize GEMM on CPU
Author: Jian Weng, Ruofei YuTVM 提供抽象接口,允许用户分别描述算法和算法的实现组织(所谓的调度)。 通常,以高性能调度编写算法会破坏算法的可读性和模块化。 此外,尝试各种看似有希望的时间表非常耗时。 在 TVM 的帮助下,我们可以有效地尝试这些时间表以提高性能。在本教程中,我们将演示如何使用 TVM 优化方阵乘法,并通过简单地添加 18 行额外的代码实现比基线快 200 倍。在 CPU 上执行的密集计算应用程序有两个重要的优化:提高内存访问的缓存命中率。 高缓存命中翻译 2022-03-18 15:28:26 · 271 阅读 · 0 评论 -
TVM -- Design and Architecture
本文档适用于想要了解 TVM 架构和/或积极开发项目的开发人员。该页面的组织如下:示例编译流程概述了 TVM 将模型的高级描述转换为可部署模块所采取的步骤。 要开始使用,请先阅读本节。逻辑架构组件部分描述了逻辑组件。 后面的部分是针对每个逻辑组件的特定指南,按组件的名称组织。设备/目标交互页面描述了 TVM 如何与每个受支持的物理设备和代码生成目标进行交互。请随意查看开发人员操作指南以获取有用的开发技巧。本指南提供了架构的一些补充视图。 首先,我们回顾了一个端到端的编译流程,并讨论了关键的数据翻译 2022-03-16 17:00:57 · 4165 阅读 · 0 评论 -
TVM Developer Tutorial
TVM 代码库示例演练了解一个新的代码库可能是一个挑战。 对于像 TVM 这样的代码库尤其如此,其中不同的组件以不明显的方式交互。 在本指南中,我们尝试通过一个简单的示例来说明构成编译管道的关键元素。 对于每个重要步骤,我们都会展示它在代码库中的实现位置。 目的是让新开发人员和感兴趣的用户更快地潜入代码库。代码库结构概述在 TVM 存储库的根目录中,我们有以下子目录,它们共同构成了大部分代码库。src - 用于操作员编译和部署运行时的 C++ 代码。src/relay - Relay 的实现,一翻译 2022-03-08 17:07:35 · 194 阅读 · 0 评论 -
TVM User Tutorial -- Introduction to TOPI
Author: Ehsan M. Kermani这是 TVM Operator Inventory (TOPI) 的介绍性教程。 TOPI 提供了 numpy 风格的通用操作和调度,其抽象程度高于 TVM。 在本教程中,我们将了解 TOPI 如何使我们免于在 TVM 中编写模板代码。from __future__ import absolute_import, print_functionimport tvmimport tvm.testingfrom tvm import tefrom t翻译 2022-03-06 20:25:55 · 383 阅读 · 0 评论 -
TVM User Tutorial -- Quick Start Tutorial for Compiling Deep Learning Models
Author: Yao Wang, Truman Tian这个例子展示了如何使用 Relay python 前端构建一个神经网络,并为带有 TVM 的 Nvidia GPU 生成一个运行时库。 请注意,您需要在启用 cuda 和 llvm 的情况下构建 TVM。TVM 支持的硬件后端概述下图显示了 TVM 当前支持的硬件后端:在本教程中,我们将选择 cuda 和 llvm 作为目标后端。 首先,让我们导入 Relay 和 TVM。import numpy as npfrom tvm impor翻译 2022-03-06 20:15:09 · 288 阅读 · 0 评论 -
TVM User Tutorial -- Blitz Course to TensorIR
Author: Siyuan FengTensorIR 是一种特定领域语言,用于深度学习项目,有两个广泛的用途:在各种硬件后端上实现转换和优化程序。自动张力化程序优化的抽象。import tvmfrom tvm.ir.module import IRModulefrom tvm.script import tir as Timport numpy as npIRModuleIRModule 是TVM的中心数据结构,它包含深度学习程序。它是研究IR变换和建模的基本对象。这是IRMo翻译 2022-03-06 16:39:39 · 323 阅读 · 0 评论 -
TVM User Tutorial -- Optimizing Operators with Auto-scheduling
Author: Lianmin Zheng, Chengfan Jia在本教程中,我们将展示 TVM 的自动调度功能如何在无需编写自定义模板的情况下找到最佳调度。与基于模板的 AutoTVM 依赖手动模板来定义搜索空间不同,自动调度程序不需要任何模板。 用户只需编写计算声明,无需任何调度命令或模板。 自动调度器可以自动生成一个大的搜索空间,并在空间中找到一个好的调度。我们在本教程中使用矩阵乘法作为示例。请注意,本教程不会在 Windows 或最新版本的 macOS 上运行。 要让它运行,您需要将本教翻译 2022-03-06 15:42:58 · 118 阅读 · 0 评论 -
TVM User Tutorial -- Optimizing Operators with Schedule Templates and AutoTVM
Authors: Lianmin Zheng, Chris Hoge在本教程中,我们将展示如何使用 TVM 张量表达式 (TE) 语言编写调度模板,AutoTVM 可以搜索这些模板以找到最佳调度。 这个过程称为Auto-Tuning,它有助于自动化优化张量计算的过程。本教程建立在前面关于如何使用 TE <tensor_expr_get_started> 编写矩阵乘法的教程的基础上。自动调整有两个步骤。第一步是定义搜索空间。第二步是运行搜索算法来探索这个空间。在本教程中,您可以了解如翻译 2022-03-06 13:43:05 · 107 阅读 · 0 评论 -
TVM User Tutorial -- Working with Operators Using Tensor Expression
Author: Tianqi Chen在本教程中,我们将关注 TVM 如何与张量表达式 (Tensor Expression, TE) 一起定义张量计算并应用循环优化。 TE 用纯函数式语言描述张量计算(即每个表达式都没有副作用)。 从 TVM 的整体来看,Relay 将计算描述为一组算子,每个算子都可以表示为一个 TE 表达式,其中每个 TE 表达式接受输入张量并产生一个输出张量。这是 TVM 中张量表达式语言的介绍性教程。 TVM 使用特定领域的张量表达式来进行有效的内核构建。 我们将通过两个使翻译 2022-03-03 14:53:22 · 194 阅读 · 0 评论 -
TVM User Tutorial -- Compiling and Optimizing a Model with the Python Interface (AutoTVM)
Compiling and Optimizing a Model with the Python Interface (AutoTVM)Author: Chris Hoge注:在练习这一节之前需要自行完成TVM的安装!在 TVMC 教程中,我们介绍了如何使用 TVM 的命令行界面 TVMC 编译、运行和调整预训练的视觉模型 ResNet-50 v2。 TVM 不仅仅是一个命令行工具,它是一个优化框架,具有可用于多种不同语言的 API,为您在使用机器学习模型时提供了极大的灵活性。在本教程中,我们将介翻译 2022-02-28 20:32:23 · 467 阅读 · 0 评论 -
TVM User Tutorial -- Introduction
TVM 使用教程翻译 Introduction翻译 2022-02-28 17:00:34 · 164 阅读 · 0 评论