2023/09/18 19:10:12
1. TPU软件与硬件架构#完整的TPU推理应用是通过软硬件相互配合完成的,如下图所示: 软件方面,Host端实现了libsophon、驱动两个软件包。驱动负责对实际的Host与设备基础通信和资源管理机制的抽象,提供了基础的功能接口。对于TPU推理来说,libsophon提供了具体的功能,其中BMLib(libbmlib.so)实现对驱动接口封装,提供兼容保证,简化调用流程,提升编程的效率和可移植性,TPU-RUNTIME(libbmrt.so)提供了模型(bmodel)的加载、管理与执行等功能。 硬件方面,TPU内部主要由MCU、GDMA、TIU三个engine来完成工作的。 MCU在BM1 ...
2023/09/18 18:52:30
1. 背景介绍#在2023年7月时我们已通过静态设计方案完成了ChatGLM2-6B在BM1684X单芯片上的部署工作,量化模式F16,模型大小12GB,平均速度约为3 token/s (ChatGLM2-6B流程解析与TPU-MLIR部署)。为了进一步提升模型的推理效率与降低存储空间,我们对模型进行了INT8量化部署。 2. 量化方案#首先TPU-MLIR原有的INT8量化方案并不适合直接应用于LLM。主要是因为无论PTQ的校准或者QAT的训练对于LLM来说成本过高,对LLM的一轮PTQ的校准可能就需要1-2天时间;另外就是量化带来的误差在LLM上无法收敛,最终会导致模型精度大量损 ...
2023/08/18 12:47:40
背景介绍#TPU-MLIR编译器可以将在gpu等平台上运行的深度学习模型转换成算能芯片上运行的bmodel模型。本文介绍如何使用TPU-MLIR将在gpu上运行的stable diffusion的模型移植到算能芯片,并介绍其部署的方法。 由于stable diffusion包含多个版本,我们这里以stable diffusion 1.5版本为例。 stable diffusion模型介绍#stable diffusion 由3个部分组成,分别是text_encoder、unet和vae。其中3个部分方便使用的模型是:CLIP_ViT, Latent Diffusion Models和Autoe ...
2023/08/18 12:42:40
背景介绍#TPU-MLIR编译器可以将机器学习模型转换成算能芯片上运行的bmodel模型。由于浮点数的计算需要消耗更多的计算资源和存储空间,实际应用中往往采用量化后的模型(也称定点模型)进行推理。相比于浮点数模型,量化模型的推理精度会有一定程度的损失。当精度损失较大时,需要搜索模型中对精度影响较大的层,即敏感层,将其改回浮点类型,生成混精度模型进行推理。 以mobilenet-v2网络为例,使用ILSVRC-2012数据验证集的5万张图片验证浮点数模型和量化模型(表格中分别记为FLOAT和INT8)的精度,INT8模型的Top1精度降低了3.2%,Top5精度降低了2%。 Type To ...
2023/08/04 18:07:03
1.SwinTransformer概述#自从Transformer在NLP任务上取得突破性的进展之后,业内一直尝试着把Transformer用于CV领域。之前的若干尝试都是将Transformer用在了图像分类领域,但这些方法都面临两个非常严峻的挑战,一是多尺度问题,二是计算复杂度的问题。 基于这两个挑战,swint的作者提出了一种层级式提取的Transformer,并通过移动窗口的方式来学习特征。在窗口内计算自注意力可以带来更高的效率;同时通过移动的操作,让相邻的窗口之间有了交互,变相达到了一种全局建模的能力,进而解决了上面两个问题。 Swin Transformer将transforme ...