stable diffusion 量化学习笔记

文章目录

    • 一、一些tensorRT背景及使用介绍
      • 1)深度学习介绍
      • 2)TensorRT优化策略介绍
      • 3)TensorRT基础使用流程
      • 4)dynamic shape 模式
      • 5)TensorRT模型转换
    • 二、实操
      • 1)编译tensorRT开源代码运行SampleMNIST

一、一些tensorRT背景及使用介绍

1)深度学习介绍

  • 简单学习介绍量化背景
    在这里插入图片描述
    补充
1)tensorFlow python版本其实是调用的TensorFlow C的接口
2)libtorch其实是pytorch的C++版本
3)cublas是实现矩阵相乘的功能
4)cudnn主要实现dnn上的一些算子功能,例如卷积等
5)不同NVIDIA显卡架构间不兼容,同代显卡基本是同架构

2)TensorRT优化策略介绍

  • 优化策略
1、低精度优化 :int8  int16
2、Kernel自动调优
例如:cublas  gemm多种实现:①不用shared memory ;②小矩阵相乘;③使用额外显存的策略
3、算子融合:例如:
relu+bias+1x1 conv =1x1 CBR
4、多流运行
5、显存优化

在这里插入图片描述

3)TensorRT基础使用流程

在这里插入图片描述

  • 代码使用流程
    在这里插入图片描述

4)dynamic shape 模式

  • 背景
    ①TensorRT 6.0之后 explicit(显式)batch支持动态batchsize
    ②CV的图片基本都是固定大小,而NLP和speech语音很多都是不固定大小的
  • 思路
    1)build engine阶段设置:
    ①用createNetworkV2设置显示batchsize
    ②设置最大batchsize
    ③设置优化profile选项,选择最大、最常用、最小的数据维度(类似,15s\20s\30s的语音)
    在这里插入图片描述
    2)infer推理阶段
    ①每次推理设置输出的数据维度
    ②检查输入的数据维度是否符合需求
    ③开启推理
    在这里插入图片描述

5)TensorRT模型转换

①onnx:一键解析pytorch转为onnx,不用像API那样一层一层构建onnx
②torch2trt:pytorch直接转为trt
③TensorFlow:谷歌出品,不用pytorch,tf直接转为trt(tf2tensorrt)
④Tencent Forward:支持pytorch\onnx\tf直接转为trt,接口简单
在这里插入图片描述

二、实操

1)编译tensorRT开源代码运行SampleMNIST

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/67953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

省森林防火应急指挥系统

森林防火形势严峻 我国森林防火形势十分严峻,森林火灾具有季节性强、发现难、成灾迅速等特点,且扑救难度大、影响范围广、造成的损失重。因此,构建森林防火应急指挥系统显得尤为重要。 系统建设模式与架构 森林防火应急指挥系统采用大智慧…

drawDB docker部属

docker pull xinsodev/drawdb docker run --name some-drawdb -p 3000:80 -d xinsodev/drawdb浏览器访问:http://192.168.31.135:3000/

C++ STL map和set的使用

序列式容器和关联式容器 想必大家已经接触过一些容器如:list,vector,deque,array,forward_list,string等,这些容器统称为系列容器。因为逻辑结构为线性的,两个位置的存储的值一般是…

26、【OS】【Nuttx】用cmake构建工程

背景 之前wiki 14、【OS】【Nuttx】Nsh中运行第一个程序 都是用 make 构建,准备切换 cmake 进行构建,方便后续扩展开发 Nuttx cmake 适配 nuttx项目路径下输入 make distclean,清除之前工程配置 adminpcadminpc:~/nuttx_pdt/nuttx$ make …

spring boot解决swagger中的v2/api-docs泄露漏洞

在配置文件中添加以下配置 #解决/v2/api-docs泄露漏洞 springfox:documentation:swagger-ui:enabled: falseauto-startup: false 处理前: 处理后:

LayaAir3.2来了:性能大幅提升、一键发布安装包、支持WebGPU、3D导航寻路、升级为真正的全平台引擎

前言 LayaAir3的每一个分支版本都是一次较大的提升,在3.1彻底完善了引擎生态结构之后,本次的3.2会重点完善全平台发布相关的种种能力,例如,除原有的安卓与iOS系统外,还支持Windows系统、Linux系统、鸿蒙Next系统&#…

AI多模态技术介绍:视觉语言模型(VLMs)指南

本文作者:AIGCmagic社区 刘一手 AI多模态全栈学习路线 在本文中,我们将探讨用于开发视觉语言模型(Vision Language Models,以下简称VLMs)的架构、评估策略和主流数据集,以及该领域的关键挑战和未来趋势。通…

uniapp区域滚动——上划进行分页加载数据(详细教程)

##标题 用来总结和学习,便于自己查找 文章目录 一、为什么scroll-view?          1.1 区域滚动页面滚动?          1.2 代码? 二、分页功能?          2.1 如何实现&#xff…

【大数据】Apache Superset:可视化开源架构

Apache Superset是什么 Apache Superset 是一个开源的现代化数据可视化和数据探索平台,主要用于帮助用户以交互式的方式分析和展示数据。有不少丰富的可视化组件,可以将数据从多种数据源(如 SQL 数据库、数据仓库、NoSQL 数据库等&#xff0…

反射的底层实现原理?

Java 反射机制详解 目录 什么是反射?反射的应用反射的实现反射的底层实现原理反射的优缺点分析 一、什么是反射? 反射是 Java 编程语言中的一个强大特性,它允许程序在运行期间动态获取类和操纵类。通过反射机制,可以在运行时动…

【技术支持】安卓无线adb调试连接方式

Android 10 及更低版本,需要借助 USB 手机和电脑需连接在同一 WiFi 下;手机开启开发者选项和 USB 调试模式,并通过 USB 连接电脑(即adb devices可以查看到手机);设置手机的监听adb tcpip 5555;拔掉 USB 线…

《框架程序设计》期末复习

目录 Maven 简介 工作机制(★) 依赖配置(★) Maven命令 MyBatis 入门 单参数查询(★) 多参数查询(★★★) 自定义映射关系(★★★) 基本增删改查操…

于交错的路径间:分支结构与逻辑判断的思维协奏

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。* 这一节内容很多,文章字数达到了史无前例的一万一,我们要来学习分支与循环结构中…

计算机图形学【绘制立方体和正六边形】

工具介绍 OpenGL:一个跨语言的图形API,用于渲染2D和3D图形。它提供了绘制图形所需的底层功能。 GLUT:OpenGL的一个工具库,简化了窗口创建、输入处理和其他与图形环境相关的任务。 使用的函数 1. glClear(GL_COLOR_BUFFER_BIT |…

探秘block原理

01 概述 在iOS开发中,block大家用的都很熟悉了,是iOS开发中闭包的一种实现方式,可以对一段代码逻辑进行封装,使其可以像数据一样被传递、存储、调用,并且可以保存相关的上下文状态。 很多block原理性的文章都比较老&am…

vue3+ts+element-plus 对话框el-dialog设置圆角

对话框el-dialog设置圆角,实现的需求效果: 目前只能通过行内样式(style"border-radius: 20px")来实现圆角效果:

机器学习算法(三):K近邻(k-nearest neighbors)

1 KNN的介绍和应用 1.1 KNN的介绍 kNN(k-nearest neighbors),中文翻译K近邻。我们常常听到一个故事:如果要了解一个人的经济水平,只需要知道他最好的5个朋友的经济能力, 对他的这五个人的经济水平求平均就是这个人的经济水平。这…

大语言模型兵马未动,数据准备粮草先行

​从OpenAI正式发布ChatGPT开始,大型语言模型(LLM)就变得风靡一时。对业界和吃瓜群众来说,这种技术最大的吸引力来自于理解、解释和生成人类语言的能力,毕竟这曾被认为是人类独有的技能。类似CoPilot这样的工具正在迅速…

Network Compression(李宏毅)机器学习 2023 Spring HW13 (Boss Baseline)

1. Introduction to Network Compression 深度学习中的网络压缩是指在保持神经网络性能的同时,减少其规模的过程。这非常重要,因为深度学习模型,尤其是用于自然语言处理或计算机视觉的大型模型,训练和部署的计算成本可能非常高。网络压缩通过降低内存占用并加快推理速度,…

UnityDots学习(二)

在一里已经概述了什么是Dots,已经如果使用它,我们要做的思维转变。 简单总结下: Dots使用了计算器多核,已经3级缓存的优势,在此基础上使用Brust编译器对各个平台实现了代码优化。从而达到了加速提升的效果。 我们要…