10 2021 档案
摘要:TVM量化代码解析 TVM量化,非常方便,即插即用。使用加入了伪量化后的pass,替代原来的pass,一个官方提供的示例: def test_mul_rewrite(): """a test case where rhs of mul is not constant""" data=relay.va
阅读全文
摘要:如何在 GPU 上优化卷积 将演示如何在 TVM 中编写高性能卷积实现。正方形大小的输入张量和过滤器为例,假设卷积的输入具有大batch批量。在这个例子中,使用不同的布局存储数据,实现更好的数据局部性。缓冲区布局是 HWCN,代表高度、宽度、通道、批次。 准备和算法 对具有 256 个通道和 14
阅读全文
摘要:全文翻译(全文合集):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning 摘要 人们越来越需要将机器学习应用到各种各样的硬件设备中。现在的框架依赖于特定于供应商的算子库,针对窄带的服务器级GPU进行优化。将工作负荷部署
阅读全文
摘要:全文翻译(四) TVM An Automated End-to-End Optimizing Compiler 6.3 嵌入式GPU评估 对于移动GPU实验,在配备ARM Mali-T860MP4 GPU的Firefly-RK3399板上,运行端到端管道。基线是供应商提供的库,即ARM计算库(v18
阅读全文
摘要:全文翻译(三) TVM An Automated End-to-End Optimizing Compiler 5. 自动化优化 考虑到一组丰富的调度原语,剩下的问题是为DL模型的每一层,找到最佳的算子实现。在这里,TVM为与每个层关联的特定输入shape和布局,创建一个专门的算子。这种专门化提供了
阅读全文
摘要:全文翻译(二): TVM: An Automated End-to-End Optimizing Compiler for Deep Learning 3.优化计算图 计算图是在DL框架中表示程序的常用方法。图3显示了两层卷积神经网络的计算图表示示例。这种高级表示与低级编译器中间表示(IR,如LLV
阅读全文
摘要:全文翻译(一):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning 摘要 人们越来越需要将机器学习应用到各种各样的硬件设备中。现在的框架依赖于特定于供应商的算子库,针对窄带的服务器级GPU进行优化。将工作负荷部署到新平
阅读全文
摘要:Tesla Model汽车架构与FSD供应链 特斯拉Model 3和Model Y平台架构 特斯拉model Y和Model 3 怎么做平台架构。 通过特斯拉透露的信息,Model 3 和 model Y 将近有76%的零件共用,看看机械架构平台。 车身以及底盘信息 轴距:Model Y的轴距(下图
阅读全文
摘要:华为自动驾驶产业链 从执行路径看,华为入局智能电动车的思路清晰,不直接参与整车制造,而是聚焦ICT技术,以提供软硬件解决方案为核心,帮助车企造好车。 同时,华为将联合产业链企业为车企提供「全栈式供应」,因此预计与华为绑定较深部分Tier2供应商未来将迎来业务高增长,值得重点关注。 一、华为入局,打开
阅读全文
摘要:特斯拉fsd全自动驾驶与华为自动驾驶 华为自动驾驶能力很强。 不认为这会对特斯拉造成威胁或者压力。 因为特斯拉的核心竞争力并不是自动驾驶… 起码身边的车主来说,100个车主里能有一个买fsd的就不错了…甚至有30%的人根本没开过ap。 自动驾驶、辅助驾驶这东西现在还是个很小众的需求,锦上添花的东西,
阅读全文
摘要:DPU(Data Processing Unit)数据处理器 DPU:5G边缘云 5G时代带来通信带宽的巨大提升,更多的带宽使能更多的应用。数据量的迅猛增多,服务器网络带宽的快速增长,都已经远超计算能力的增长,有线速I/O处理需求的应用程序,受到CPU和内存的限制,现有系统因为CPU资源占用,致延迟
阅读全文
摘要:GPU显卡架构 GPU架构“征途之旅”即日起航 如果成为一个资深DIY玩家,想与众多DIY高手“高谈阔论”GPU架构设计,先必须弄明白显卡GPU架构设计的基本思想和基本原理,读懂GPU架构图正是这万里长征的第一步。 GPU显卡架构图 分析如下问题: 一、顶点、像素、着色器是什么; 二、SIMD与MI
阅读全文
摘要:华为公有云架构解决方案 华为公有云架构 华为公有云的主要服务如弹性云服务器(ECS)、弹性伸缩服务(AS)、云硬盘 (EVS)、云硬盘备份(VBS)、对象存储服务(OBS) 、虚拟私有云(VPC)、弹性负 载均衡(ELB)、Anti-DDOS流量清洗、云数据库(RDS)、IAM统一身份认证、云监控
阅读全文
摘要:云服务与设备供应商 云服务提供商正在摆脱硬件提供商 云服务提供商通过购买基础架构将其群集,以软件的形式向用户提供服务,软件是云服务提供商的自然优势。 随着云计算变得越来越成熟,云服务提供商逐渐转向硬件研发。 自云计算兴起以来的十多年中,云服务提供商一直在寻找OEM、ODM来购买服务器、存储、网络设备
阅读全文
摘要:硬件专业化和软件映射的敏捷框架 概述 随着摩尔定律接近尾声,设计专用硬件及将应用程序映射到专用硬件的软件,都是很有前途的解决方案。硬件设计决定了峰值性能,软件也很重要,决定了实际性能。硬件/软件(HW/SW)协同优化硬件加速和软件映射,提高整体性能。当前的流程将硬件和软件设计隔离。由于编程层次低,设
阅读全文
摘要:GPGPU台积电7nm制程 36氪获悉,壁仞科技宣布其首款通用GPU“BR100”正式交付台积电生产。这一芯片采用了台积电7纳米的制程工艺,已进入流片阶段,预计将在明年面向市场发布。 壁仞科技本次交付流片的通用 GPU —— BR100,具有高算力、高通用性、高能效三大优势,采用先进的 7 纳米制程
阅读全文
摘要:LLVM Clang前端编译与调试 iOS 关于编译 一、Objective-C 编译过程 为什么需要重新编译? 编译步骤 二、编译步骤的详细说明 1.预处理 2.编译 词法分析 语法分析 clang static analyzer 3.生成 LLVM IR LLVM Backend 三、编译完成生
阅读全文
摘要:Clang调试诊断信息Expressive Diagnostics 除了快速和实用,目标是使 Clang用户友好。命令行编译器,使编译器生成的诊断(错误和警告消息)尽可能有用。有几种方法可以做到这一点。依据命令行编译器经验,将 Clang 输出与 GCC 4.9 的输出进行对比。 Column Nu
阅读全文
摘要:Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序。像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上。 运行编译器的计算机称为主机,运行新程序的计算机称为目标。当主机和目标是同一类型的机器时,编译器是本机编译器。
阅读全文
摘要:JIT Compiler编译器
阅读全文
摘要:Cache 与Memory架构及数据交互
阅读全文
摘要:自动微分原理与示例机器学习的同学在学习过程中会经常遇到一个问题,那就是对目标函数进行求微分,线性回归这类简单的就不说、复杂的如神经网络类那些求导过程。本文介绍了五种微分方式,最后两种才是自动微分。前两种方法求出了原函数对应的导函数,后三种方法只是求出了某一点的导数。假设原函数是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
阅读全文
摘要:探索 TVM 进行量化方法 Relay框架 如上图所示,有两种不同的并行工作正在进行中 自动整数量化 - 采用 FP32 框架图,在 Relay 中自动转换为 Int8。 接受预量化整数模型 - 这种方法接受预量化模型,引入称为 QNN 的Relay方言,生成 Int8 Relay图。 关于 Rel
阅读全文
摘要:CPU0 处理器的架构及应用 简介 CPU0 是一个 32 位的处理器,包含 R0..R15, IR, MAR, MDR 等缓存器,结构如下图所示。 图 1 :CPU0 处理器的结构 其中各个缓存器的用途如下所示: IR 指令缓存器 R0 常数缓存器, 值永远为 0。 R1~R11 通用型缓存器。
阅读全文
摘要:Creating an LLVM Backend for the Cpu0 Architecture Backend structure TargetMachine structure Add AsmPrinter Add Cpu0DAGToDAGISel class Handle return r
阅读全文