摘要:
自动微分原理与示例机器学习的同学在学习过程中会经常遇到一个问题,那就是对目标函数进行求微分,线性回归这类简单的就不说、复杂的如神经网络类那些求导过程。本文介绍了五种微分方式,最后两种才是自动微分。前两种方法求出了原函数对应的导函数,后三种方法只是求出了某一点的导数。假设原函数是f(x,y)=x2y+ 阅读全文
摘要:
AI多种并行算法 并行模型 模型并行( model parallelism ):分布式系统中的不同机器(GPU/CPU等)负责网络模型的不同部分 —— 例如,神经网络模型的不同网络层被分配到不同的机器,或者同一层内部的不同参数被分配到不同机器;[14] 数据并行( data parallelism 阅读全文
摘要:
LLVM与Clang局部架构与语法分析 Clang与LLVM LLVM整体架构,前端用的是clang,广义的LLVM是指整个LLVM架构,一般狭义的LLVM指的是LLVM后端(包含代码优化和目标代码生成)。 源代码(c/c++)经过clang--> 中间代码(经过一系列的优化,优化用的是Pass) 阅读全文
摘要:
LLVM语法语义指令特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元。每个模块由函数,全局变量和符号表条目组成。模块可与 LLVM 链接器组合在一起,后者合并函数(全局变量)定义,解析前向声明 阅读全文
摘要:
AI中pass架构设计优化 Relay 和 TVM IR,包含一系列优化passes,可提高模型的性能指标,例如平均推理,内存占用,或特定设备的功耗。有一套标准优化,及特定机器学习的优化,包括常量折叠,死代码消除,算子布局更改,算子融合,缓冲区处理和循环转换等。这些passes中的每一个都构造为一个 阅读全文
摘要:
Relay IR表示 Relay IR简介本节介绍了 Relay IR——第二代 NNVM。期待两种背景的读者——具有编程语言背景的读者和熟悉计算图表示的,深度学习框架开发人员。简要总结了设计目标,讨论要点。• 支持传统的数据流式编程和转换。• 支持函数式作用域,let-binding,成为功能齐全 阅读全文
摘要:
TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍。TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度。TOPI 如何在 TVM 中,编写样板代码。 from __future__ import absolute_import, pri 阅读全文
摘要:
Conda安装Glossary词汇表 https://docs.conda.io/projects/conda/en/latest/glossary.html#anaconda-glossary .condarc Activate/Deactivate environment Anaconda An 阅读全文
摘要:
如何在 CPU 上优化 GEMM (TL;DR) TVM 提供抽象接口,允许用户分别描述算法和算法的实施组织(所谓的调度)。通常,在高性能调度中编写算法,会破坏算法的可读性和模块化。尝试各种看似有前途的调度也很耗时。在 TVM 的帮助下,可以有效地尝试这些调度,提高性能。 将演示如何使用 TVM 优 阅读全文
摘要:
一些量化(quantization)技巧 对象:对权重量化,对特征图量化(神经元输出),对梯度量化(训练过程中) 过程:在inference网络前传,在训练过程(反传) 一步量化(仅对权重量化), 两步量化(对神经元与特征图量化,第一步先对feature map进行量化,第二步再对权重量化)。 32 阅读全文