GEMM算子优化 GEMM优化的核心在于: 提高Cache命中率,设计更好的数据排布(Tiling) 提高并行度,充分利用指令向量化和多核并行 先看一个native的实现: void naive_row_major_sgemm(const float* A, const float* B, float* C, const int M, ...
LLMs量化算法概述
LLMs量化算法概述 量化基础概念 INT8 量化将模型的权重和激活值从 FP16/FP32 转换为 INT8 格式。最简单的方式是使用线性映射将浮点数范围映射到整数范围: [x_{int8} = \text clip\left(\text{round}\left(\frac{x_{float} - z}{s}\right), qmin, qmax\right)] $z$ : ...
FlashAttention系列优化
前言 简单介绍各类AttentionScore优化算法。 FlashAttentionV1 FlashAttention于2022年6月由斯坦福大学、纽约州立大学研究者完成。 FlashAttention的核心思路是:通过重组Attention计算,能够对输入块进行分块,逐步执行softmax的reduction,避免了整个输入块的计算,从而减少了更少的内存访问(HBM),同时中间结果...
算子编程模型
算子编程模型 硬件特性 当前深度学习应用硬件主要是GPU和各类XPU(AISC),GPU架构设计上的最大的特点是: 内存架构:GPU的片上Cache相对较小,且通常采用HBM等高带宽的存储,会设计多级存储方案 计算单元:GPU有强大的计算单元,且超配大量的多线程,专注大规模并行的计算任务。计算单元以GPU SM为单位,GPU单个时钟周期能支持多个Wa...
模型部署技术概览
前言 开坑模型离线部署技术相关内容更新 简单梳理技术栈如下(需要持续更新): 深度学习框架 训练框架 Torch PyTorch关键模块解读 Tensorflow 推理框架 ONNX ONNX的模型优化与量化细节 TensorRT AI硬件 AI模型部署硬件综述 模型优化方案 Transformer离线部署-GPU优化策略
AI模型部署硬件综述
硬件篇 GPU NVIDIA 壁仞科技 XPU Google-TPU 晟腾 昆仑 寒武纪 软件篇 ...
Goolge-TPU论文解读
文章背景 摘要 设计方案 性能结果 Discussion && Conclusion 个人观点 参考 文章背景 In-Datacenter Performance Analysis of a Tensor Processing Unit 发表于ISCA2017,主要介绍Google TPU的架构。 摘要 Google从2013年发现,大...
Transformer离线部署-GPU优化策略
前言 模型结构分析 具体优化措施 参考资料 前言 本文主要介绍Transformer类网络在GPU设备上部署上的优化要点。 主要围绕Nvidia开源的FasterTransformer展开。 模型结构分析 标准的Transformer结构主要包括 Encoder 和 Decoder 两部分结构,具体结构分析可参考Transformer在CV领域的应用与部署: ...
Bert:过去-现在-未来
前言 BERT发展历程 BERT算法细节 BERT后期发展 参考资料 前言 浅谈 BERT 系列网络,主要从三个维度介绍:发展历程、算法细节、后期发展。 背景知识: 自然语言处理(NLP):其最终目的是理解复杂的语言/文字,主要任务包括: 序列标注:如中文分词、词性标注、命名实体识别、语义角色标注等 分类任务:文本分类、情感分析等 句子关系判断:如...
设计模式-设计原则
基本介绍 SOLID原则 单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 其他原则 LoD原则 KISS原则 DRY原则 YAGBI原则 Rule Of Three原则 CQS原则 ...