自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

转载 转载:【AI系统】感知量化训练 QAT

本文将会介绍感知量化训练(QAT)流程,这是一种在训练期间模拟量化操作的方法,用于减少将神经网络模型从 FP32 精度量化到 INT8 时的精度损失。QAT 通过在模型中插入伪量化节点(FakeQuant)来模拟量化误差,并在训练过程中最小化这些误差,最终得到一个适应量化环境的模型。文中还会讨论伪量化节点的作用、正向和反向传播中的处理方式,以及如何在 TensorRT 中使用 QAT 模型进行高效推理。

2024-12-14 08:05:17 64

转载 转载:【AI系统】低比特量化原理

计算机里面数值有很多种表示方式,如浮点表示的 FP32、FP16,整数表示的 INT32、INT16、INT8,量化一般是将 FP32、FP16 降低为 INT8 甚至 INT4 等低比特表示。模型量化则是一种将浮点值映射到低比特离散值的技术,可以有效的减少模型的参数大小、内存消耗和推理延迟,但往往带来较大的精度损失。尤其是在极低比特(

2024-12-14 08:04:30 50

转载 转载:【AI系统】模型压缩基本介绍

随着神经网络模型的复杂性和规模不断增加,模型对存储空间和计算资源的需求越来越多,使得部署和运行成本显著上升。模型压缩的目标是通过减少模型的存储空间、减少计算量或提高模型的计算效率,从而在保持模型性能的同时,降低模型部署的成本。:通过压缩模型参数或使用更高效的表示方式,可以显著减少模型所需的存储空间,从而降低模型在部署和执行过程中的存储成本。:通过减少模型计算过程中的乘法和加法操作,可以降低模型的计算开销,达到模型运算加速的目的。

2024-12-14 08:03:18 33

转载 转载:【AI系统】EfficientFormer 系列

本文主要介绍一种轻量化的 Transformer 结构,在获得高性能的同时,能够保持一定的推理速度。以延迟为目标进行优化设计。通过延迟分析重新探讨 ViT 及其变体的设计原则。

2024-12-14 08:02:31 26

转载 转载:【AI系统】MobileFormer

在本文中,将介绍一种新的网络-MobileFormer,它实现了 Transformer 全局特征与 CNN 局部特征的融合,在较低的成本内,创造一个高效的网络。通过本文,让大家去了解如何将 CNN 与 Transformer 更好的结合起来,同时实现模型的轻量化。

2024-12-14 08:01:35 25

转载 转载:【AI系统】MobileVit 系列

自 Vision Transformer 出现之后,人们发现 Transformer 也可以应用在计算机视觉领域,并且效果还是非常不错的。但是基于 Transformer 的网络模型通常具有数十亿或数百亿个参数,这使得它们的模型文件非常大,不仅占用大量存储空间,而且在训练和部署过程中也需要更多的计算资源。所以在本文中会介绍关于 Transformer 一些轻量化工作。

2024-12-14 08:00:35 43

转载 转载:【AI系统】GhostNet 系列

本文主要会介绍 GhostNet 系列网络,在本文中会给大家带来卷积结构的改进方面的轻量化,以及与注意力(self-attention)模块的进行结合,部署更高效,更适合移动计算的 GhostNetV2。让读者更清楚的区别 V2 与 V1 之间的区别。

2024-12-14 07:59:22 58

转载 转载:【AI系统】EfficientNet 系列

本文主要介绍 EfficientNet 系列,在之前的文章中,一般都是单独增加图像分辨率或增加网络深度或单独增加网络的宽度,来提高网络的准确率。而在 EfficientNet 系列论文中,会介绍使用网络搜索技术(NAS)去同时探索网络的宽度(width),深度(depth),分辨率(resolution)对模型准确率的影响。以及如何加速训练推理速度。

2024-12-14 07:58:22 46

转载 转载:【AI系统】FBNet 系列

本文主要介绍 FBNet 系列,在这一篇会给大家带来三种版本的 FBNet 网络,从基本 NAS 搜索方法开始,到 v3 版本的独特方法。在本文中读者会了解到如何用 NAS 搜索出最好的网络和训练参数。

2024-12-14 07:56:30 35

转载 转载:【AI系统】ESPNet 系列

本文将会介绍 ESPNet 系列,该网络主要应用在高分辨率图像下的语义分割,在计算内存占用、功耗方面都非常高效,重点介绍一种高效的空间金字塔卷积模块(ESP Module);而在 ESPNet V2 上则是会更进一步给大家呈现如何利用分组卷积核,深度空洞分离卷积学习巨大有效感受野,进一步降低浮点计算量和参数量。

2024-12-14 07:55:35 28

转载 转载:【AI系统】MobileNet 系列

在本文会介绍 MobileNet 系列,重点在于其模型结构的轻量化设计,主要介绍详细的轻量化设计原则,基于这原则,MobileNetV1 是如何设计成一个小型,低延迟,低功耗的参数化模型,可以满足各种用例的资源约束。可以更方便的实现分类,检测,嵌入和分割等功能。会结合目前较流行的深度学习技术,在 V1 的基础会分别讲解 V2,V3,V4 做出的改进升级,让读者们更深入了解轻量级网络结构的设计思路与过程。

2024-12-14 07:54:44 42

转载 转载:【AI系统】ShuffleNet 系列

本文会介绍 ShuffleNet 系列,重点在于其模型结构的轻量化设计,涉及如何降低深度网络计算量,在本文中会着重会讲解逐点分组卷积(Pointwise Group Convolution)和通道混洗(Channel Shuffle)两种新的运算,而 V2 版本则会从设备运算速度方面考虑将网络进行轻量化。

2024-12-14 07:53:51 22

转载 转载:【AI系统】SqueezeNet 系列

本文将介绍 SqueezeNet 系列网络,在轻量化模型这个范畴中,Squeezenet 是最早的研究。主要针对了一些组件进行轻量化。与以往的网络都只讲网络如何设计不同。SqueezeNext 则从硬件角度分析如何加速,从而更全面地了解网络结构的设计。

2024-12-14 07:52:55 39

转载 转载:【AI系统】Transformer 模型小型化

自 Vision Transformer 出现之后,人们发现 Transformer 也可以应用在计算机视觉领域,并且效果还是非常不错的。但是基于 Transformer 的网络模型通常具有数十亿或数百亿个参数,这使得它们的模型文件非常大,不仅占用大量存储空间,而且在训练和部署过程中也需要更多的计算资源。所以在本文中会介绍关于 Transformer 一些轻量化工作。

2024-12-14 07:51:59 28

转载 转载:【AI系统】轻量级CNN模型新进展

在本文会接着介绍 CNN 模型的小型化,除了第二篇文章提到的三个模型外,在本文会继续介绍 ESPNet 系列,FBNet 系列,EfficientNet 系列和 GhostNet 系列。

2024-12-13 07:08:41 35

转载 转载:【AI系统】轻量级CNN模型综述

神经网络模型被广泛的应用于工业领域,并取得了巨大成功。然而,由于存储空间以及算力的限制,大而复杂的神经网络模型是难以被应用的。首先由于模型过于庞大,计算参数多(如下图所示),面临内存不足的问题。其次某些场景要求低延迟,或者响应要快。所以,研究小而高效的 CNN 模型至关重要。本文将介文绍一些常见的 CNN 小型化结构,如:SqueezeNet 系列(2016),ShuffleNet 系列(2017),MobileNet 系列(2017),ESPNet 系列(2018),FBNet 系列(2018),Effi

2024-12-13 07:07:29 54

转载 转载:【AI系统】推理参数

本文将介绍 AI 模型网络参数方面的一些基本概念,以及硬件相关的性能指标,为后面让大家更了解模型轻量化做初步准备。值得让人思考的是,随着深度学习的发展,神经网络被广泛应用于各种领域,模型性能的提高同时也引入了巨大的参数量和计算量(如下图右所示),一般来说模型参数量越大,精度越高,性能越好(如下图左所示)。但由于大部分的神经网络模型的参数量很大,无法满足直接部署到移动端的条件,因此在不严重影响模型性能的前提下对模型进行重新设计,来减少网络参数量和计算复杂度,提升运算能力是目前相当热门的研究方向。

2024-12-13 07:04:58 48

转载 转载:【AI系统】推理引擎示例:AscendCL

AscendCL(Ascend Computing Language)是一套用于在昇腾平台上开发神经网络应用的 C 语言 API 库,提供运行资源管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等 API,能够实现利用昇腾硬件计算资源、在昇腾 CANN 平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。简单来说,就是统一的 API 框架,实现对所有资源的调用。

2024-12-13 07:00:24 37

转载 转载:【AI系统】昇腾推理引擎 MindIE

MindIE(Mind Inference Engine,昇腾推理引擎)是华为昇腾针对 AI 全场景业务的推理加速套件。通过分层开放 AI 能力,支撑用户多样化的 AI 业务需求,使能百模千态,释放昇腾硬件设备算力。支持多种主流 AI 框架,提供多层次编程接口,帮助用户快速构建基于昇腾平台的推理业务。业界标准 RPC 接口高效对接业务层,支持 Triton 和 TGI 等主流推理服务框架,实现小时级应用部署。

2024-12-13 06:59:23 45

转载 转载:【AI系统】推理引擎架构

在深入探讨推理引擎的架构之前,让我们先来概述一下推理引擎的基本概念。推理引擎作为 AI 系统中的关键组件,负责将训练好的模型部署到实际应用中,执行推理任务,从而实现智能决策和自动化处理。随着 AI 技术的快速发展,推理引擎的设计和实现面临着诸多挑战,同时也展现出独特的优势。本文将详细阐述推理引擎的特点、技术挑战以及如何应对这些挑战,为读者提供一个较为全面的视角。

2024-12-13 06:58:21 134

转载 转载:【AI系统】推理系统架构

推理系统架构是 AI 领域中的一个关键组成部分,它负责将训练好的模型应用于实际问题,从而实现智能决策和自动化。在构建一个高效的推理系统时,我们不仅需要考虑其性能和准确性,还需要确保系统的可扩展性、灵活性以及对不同业务需求的适应性。在本文中,我们将主要以 NVIDIA Triton Inference Server 为基础深入探讨推理系统架构的各个方面。

2024-12-13 06:56:39 33

转载 转载:【AI系统】推理流程全景

本文介绍神经网络模型在部署态中的两种方式:云侧部署和边缘侧部署。其中,云侧部署适用于云服务器等具备强大计算能力和存储空间的环境,可以实现高吞吐量和集中的数据管理,但可能面临高成本、网络延迟和数据隐私等挑战。边缘侧部署适用于边缘设备和移动设备等资源受限的环境,可以通过模型优化、硬件加速和分布式计算等方式降低延迟和能耗,但也面临有限算力、数据分散和安全性风险等挑战。两种部署方式都有自己的优势和局限性,需要根据具体应用场景来选择合适的部署方式。

2024-12-13 06:55:11 33

转载 转载:【AI系统】推理系统介绍

推理系统是一个专门用于部署神经网络模型,执行推理预测任务的 AI 系统。它类似于传统的 Web 服务或移动端应用系统,但专注于 AI 模型的部署与运行。通过推理系统,可以将神经网络模型部署到云端或者边缘端,并服务和处理用户的请求。因此,推理系统也需要应对模型部署和服务生命周期中遇到的挑战和问题。在本文中,将首先概述训练和推理的基本流程,随后深入分析训练阶段与推理阶段之间的差异。接着,将深入探讨推理系统的优化目标以及面临的挑战。

2024-12-13 06:53:44 18

转载 转载:【AI系统】推理系统引言

在深入探讨推理系统与推理引擎之前,首先需要明确“推理”这一概念。推理,简单来说,就是在利用大量数据训练好模型的结构和参数后,使用小批量数据进行一次前向传播,从而得到模型输出的过程。在此过程中,并不涉及模型梯度和损失的优化。推理的最终目标,便是将训练好的模型部署到实际的生产环境中,使 AI 真正运行起来,服务于日常生活。推理系统,是一个专门用于部署神经网络模型,执行推理预测任务的 AI 系统。它类似于传统的 Web 服务或移动端应用系统,但专注于 AI 模型的部署与运行。

2024-12-13 06:52:13 31

转载 转载:【AI系统】Ascend C 编程范式

在完成算子分析后,可以正式开始开发算子代码,其第一步应该完成对于核函数的定义和封装。在本文将介绍如何对函数原型进行定义,并介绍核函数定义中应该遵循的规则;随后将介绍函数原型中所需实现的内容;最后本文将完成核函数的封装,便于后续对于核函数的调用。函数原型定义本样例中,函数原型名为add_custom,根据算子分析中对算子输入输出的分析,确定有 3 个参数 x,y,z,其中 x,y 为输入内存,z 为输出内存。根据核函数定义的规则,使用__global__函数类型限定符来标识它是一个核函数,可以被。

2024-12-13 06:50:59 23

转载 转载:【AI系统】Ascend C 语法扩展

Ascend C 采用华为自研的毕昇编译器,设备侧编程采用 C/C++语法扩展允许函数执行空间和地址空间作为合法的类型限定符,提供在主机(Host)侧和设备(Device)侧独立执行的能力,同时提供针对不同地址空间的访问能力。Ascend C 算子采用标准 C++ 语法和一组编程类库 API 进行编程,可以根据自己的需求选择合适的 API。(外部数据存储空间)和(核上内存空间);类库 API 分为高阶 API 和基础 API。

2024-12-13 06:49:40 25

转载 转载:【AI系统】算子开发编程语言 Ascend C

本文将深入探讨昇腾算子开发编程语言 Ascend C,这是一种专为昇腾 AI 处理器算子开发设计的编程语言,它原生支持 C 和 C++标准规范,最大化匹配用户的开发习惯。Ascend C 通过多层接口抽象、自动并行计算、孪生调试等关键技术,极大提高算子开发效率,助力 AI 开发者低成本完成算子开发和模型调优部署。通过本文内容的学习,读者将能够理解 Ascend C 编程语言的核心概念、编程模型和优势,以及如何利用这些工具提高 AI 算子的开发效率和性能。

2024-12-13 06:47:19 41

转载 转载:【AI系统】CANN 算子类型

一元算子通过对单个操作数进行操作,如取反或递增,而二元算子对两个操作数执行操作,例如加法或赋值。关系算子用于比较值之间的关系,逻辑算子用于在逻辑表达式中组合条件。位运算符操作二进制位,而赋值算子将值分配给变量。算子在编程语言中定义了基本操作,而在数学中,它们描述了对数学对象的操作,如微积分中的导数和积分算子。算子的理解对于正确理解和编写代码以及解决数学问题至关重要。

2024-12-13 06:45:55 22

转载 转载:【AI系统】昇腾异构计算架构 CANN

本文将介绍昇腾 AI 异构计算架构 CANN(Compute Architecture for Neural Networks),这是一套为高性能神经网络计算需求专门设计和优化的架构。CANN 包括硬件层面的达·芬奇架构和软件层面的全栈支持,旨在提供强大的硬件基础和管理网络模型、计算流及数据流的软件栈,以支撑神经网络在异构处理器上的执行。通过本文内容的学习,读者将能够理解 CANN 如何为深度学习提供全面的硬件和软件支持,以及如何通过其多层级架构实现高效的 AI 应用开发和性能优化。

2024-12-13 06:44:19 50

转载 转载:【AI系统】TVM 实践案例

某些加速器有专用格式来表示神经网络,如 ARM Ethos-N 和 Xilinx Vitis AI,为了满足这种需求,该框架提供了一组统一的 API 来定制序列化的代码格式:1)将生成的代码编译和序列化为一个 bit 流,以便其可以与其他子模块一起实例化;2)在运行时反序列化来自子模块的 bit 流至此,针对 DNN 模型的编译和打包模块已经完成,之后进入运行时系统加载模块并执行推理。

2024-12-12 21:26:09 36

转载 转载:【AI系统】Auto-Tuning 原理

AutoTVM 是 TVM 的第一代自动调优系统,其是基于模板的。AutoTVM 需要事先编写模板来组成调度的搜索空间,最佳性能的上限取决于模板的设计,这对模板的编写带来了很高的要求。作为第二代调优系统,Ansor(Auto Scheduler)取消了模板机制,优化过程可以自动、无干预的进行:无需手动指定优化方式,编译器自动应用调度原语。Ansor 自动生成一个覆盖全面的优化的大搜索空间,并为空间中的每个张量程序提供被选择的机会。首先,它自动构建一个大的搜索空间,以覆盖给定计算定义的尽可能多的张量程序。

2024-12-12 21:20:08 45

转载 转载:【AI系统】指令和存储优化

除了应用极广的循环优化,在 AI 编译器底层还存在指令和存储这两种不同优化。

2024-12-12 20:40:40 48

转载 转载:【AI系统】算子循环优化

在具体硬件执行计算的时候,实际会大量地使用 for 等循环指令不断地去读取不同的数据执行重复的指令(SIMT/SIMD),因此循环优化主要是为了提升数据的局部性或者计算的并行性,从而提升整体算子性能,当然这二者都需要 AI 芯片硬件的支持。

2024-12-12 20:37:03 20

转载 转载:【AI系统】算子手工优化

在上一篇中,探讨了算子计算和调度的概念,并强调了高效调度策略在释放硬件性能和降低延迟方面的重要性。本文,我们将深入讨论手写算子调度时需要考虑的关键因素,并介绍一些著名的高性能算子库。

2024-12-12 20:34:56 47

转载 转载:【AI系统】计算与调度

上一篇我们了解了什么是算子,神经网络模型中由大量的算子来组成,但是算子之间是如何执行的?组成算子的算法逻辑跟具体的硬件指令代码之间的调度是如何配合?

2024-12-12 20:27:22 37

转载 转载:【AI系统】AI 编译器后端优化

AI 编译器分为多层架构,最顶层由各种 AI 训练框架编写的神经网络模型架构,一般由 Python 编写,常见的 AI 训练框架有 PyTorch、MindSpore、PaddlePaddle 等。在导入 AI 编译器时需要用对应框架的converter功能转换为 AI 编译器统一的 Graph IR,并在计算图级别由进行计算图级优化,也叫前端优化。前端优化主要的计算图优化包括图算融合、数据排布转换、内存优化、死代码消除,这些优化是硬件无关的通用优化。在得到优化后的计算图后,将其转换为TensorIR。

2024-12-12 20:20:59 39

转载 转载:【AI系统】代数简化

代数简化(Algebraic Reduced)是一种从数学上来指导我们优化计算图的方法。其目的是利用交换率、结合律等规律调整图中算子的,或者删除不必要的算子,以提高图整体的计算效率。代数化简可以通过子图替换的方式完成,具体实现:1)可以先抽象出一套通用的子图替换框架,再对各规则实例化。2)可以针对每一个具体的规则实现专门的优化逻辑。下面我们将介绍三种不同的代数简化方案。

2024-12-12 20:18:37 27

转载 转载:【AI系统】死代码消除

死代码消除(Dead Code Elimination)是一种编译器优化技术,旨在删除程序中不会被执行的代码,从而提高程序的执行效率和资源利用率。死代码是指在程序的当前执行路径下不会被访问或执行的代码片段。

2024-12-12 20:14:53 29

转载 转载:【AI系统】公共表达式消除原理

在程序中,有时会出现多个地方使用相同的表达式进行计算,并且这些表达式的计算结果相同。重复计算这些表达式,会增加不必要的计算开销。公共表达式消除的目标就是识别出这些重复的计算,并将其提取出来,只计算一次,然后将结果保存起来供后续使用。对于 b * c,程序只需要计算一次,并将结果保存在 temp 中,当计算 a 和 d 使用到时直接载入 temp 中保存的值即可,避免了 b * c 的重复计算,提高程序的执行效率。编译器开发者将公共子表达式消除分成两类。

2024-12-12 20:11:10 22

转载 转载:【AI系统】常量折叠原理

常量折叠(Constant Folding)是编译器的一种优化技术,它通过在编译期间对常量表达式进行计算,将其结果替换为常量值,从而减少程序运行时的计算和开销。

2024-12-12 20:07:35 24

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除