- 博客(18)
- 资源 (1)
- 收藏
- 关注
翻译 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 274
翻译 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 309
翻译 TVM -- Design and Architecture
本文档适用于想要了解 TVM 架构和/或积极开发项目的开发人员。该页面的组织如下:示例编译流程概述了 TVM 将模型的高级描述转换为可部署模块所采取的步骤。 要开始使用,请先阅读本节。逻辑架构组件部分描述了逻辑组件。 后面的部分是针对每个逻辑组件的特定指南,按组件的名称组织。设备/目标交互页面描述了 TVM 如何与每个受支持的物理设备和代码生成目标进行交互。请随意查看开发人员操作指南以获取有用的开发技巧。本指南提供了架构的一些补充视图。 首先,我们回顾了一个端到端的编译流程,并讨论了关键的数据
2022-03-16 17:00:57 4236
翻译 TVM Developer Tutorial
TVM 代码库示例演练了解一个新的代码库可能是一个挑战。 对于像 TVM 这样的代码库尤其如此,其中不同的组件以不明显的方式交互。 在本指南中,我们尝试通过一个简单的示例来说明构成编译管道的关键元素。 对于每个重要步骤,我们都会展示它在代码库中的实现位置。 目的是让新开发人员和感兴趣的用户更快地潜入代码库。代码库结构概述在 TVM 存储库的根目录中,我们有以下子目录,它们共同构成了大部分代码库。src - 用于操作员编译和部署运行时的 C++ 代码。src/relay - Relay 的实现,一
2022-03-08 17:07:35 219
翻译 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 462
翻译 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 320
翻译 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 369
翻译 TVM User Tutorial -- Optimizing Operators with Auto-scheduling
Author: Lianmin Zheng, Chengfan Jia在本教程中,我们将展示 TVM 的自动调度功能如何在无需编写自定义模板的情况下找到最佳调度。与基于模板的 AutoTVM 依赖手动模板来定义搜索空间不同,自动调度程序不需要任何模板。 用户只需编写计算声明,无需任何调度命令或模板。 自动调度器可以自动生成一个大的搜索空间,并在空间中找到一个好的调度。我们在本教程中使用矩阵乘法作为示例。请注意,本教程不会在 Windows 或最新版本的 macOS 上运行。 要让它运行,您需要将本教
2022-03-06 15:42:58 160
翻译 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 120
翻译 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 225
翻译 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 497
原创 有帮助的博客整理
Ubuntuubuntu关于软件源ubuntu安装程序无法获得锁ubuntu调整系统界面大小 本人VMware最适分辨率1718x888
2021-11-15 15:43:00 102
原创 AVX application for Linux | Linux中使用AVX指令集编程踩坑
背景:学习使用SIMD AVX指令集,已经完成了一份代码,在Windows中能正常运行,想迁移到Linux中,结果却出现两个问题,最终逐渐排坑至可以正常运行。环境:windows 10, ubuntu 20.04目录一、Windows下正常运行代码二、Ubuntu中运行问题一:编译错误三、Ubuntu运行问题二:Segmentation fault (core dumped)四、成功运行结果参考资料一、Windows下正常运行代码#include<immintrin.h>#includ
2021-10-12 21:22:34 3366 1
原创 R Package ‘nnet’ 详解
起因:在一次构建模型的过程中发现,用caret Package中的nnet method比使用nnet Package中的nnet效果更好(合作者的说明,准确性待验证),因此来更深层次的学习nnet与catet Package中nnet的实现原理Survey on R 'nnet' Package获取文档文档内容nnet介绍使用方法使用类formula正常理解X、Y方法运行实例如下参数说明原理学习获取文档从CRAN Packages By Name网站中获取到nnet与caret的文档。nnet相对
2021-09-20 20:05:20 5337
原创 解决“各种”软件图标显示错误问题
本文为转载自其他用户,转载太多甚至没有找到原创,我的再次转载旨在说明这个方法的正确性,实在太强了!!!以及防止下次再出现问题找不到解决方法,那就太难过了~方法如下:step 1:新建记事本,写入(复制粘贴)内容如下,保存(任意位置)rem 关闭explorer.exetaskkill /f /im explorer.exeattrib -h -i %userprofile%\AppDat...
2021-01-11 10:19:06 898
原创 Markdown学习笔记
Markdown是一种轻量级标记语言,排版语法很简洁,也非常常用,CSDN博客的默认编写方式就是Markdown,以下为本人学习Markdown的笔记,为Markdown正文形式,显示形式可以复制全文到任意编辑器中查看。本笔记的学习自网络教程[Markdown语法](https://markdown.com.cn "我用的语法教程"),内容为Markdown基本语法,很简单,只要有点基础,过一遍就能学会,不做笔记,最多耗时半小时笔记标题后的快捷键是**MarkdownPad2**应用程序中的快捷键
2020-12-23 13:51:44 298
原创 解决The package java.awt is not accessible
第一次写这个东东,也不会有人看,随缘记录点东西最近开始学java,用了eclipse IDE,但是在用awt和swing包的时候报错,The package java.awt is not accessible还有The package java.swing is not accessible结论在这个网址,不过图我已经截过来了翻译过来就是“如果你用了modules(模块)的话,你必须...
2019-11-19 02:47:52 58476 52
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人