2 使用Python训练和部署低精度模型 张校捷使用Python训练和部署低精度模型 (TensorFlow版) 张校捷 2019/9/21 目录 CONTENTS 低精度的概念和意义 TensorFlow的FP16模型 TensorRT的FP16/Int8模型 总结 1 低精度的概念和意义 实数的16-bit半精度浮点数和8-bit定点数表示 使用低精度的意义 深度学习模型中实数的表示 FP32: E8M23 FP16: FP16: E5M10 Int8 (TPU, tf.bfloat16) (tf.float32) (GPU, tf.float16) 低精度浮点数的优点 1.节约内存/显存的使用(FP16为原来的1/2,int8为原来的1/4) 2.特殊的硬件专门用于低精度浮点数的计算加速(TensorCore) Model Speedup BERT Q&A 3.3X speedup GNMT 1.7X FP16浮点数(E5M10)的表示范围 FP16模型的训练方法 Int8模型的推断过程 2 TensorFlow的FP16模型 实数的16-bit半精度浮点数和8-bit定点数表示 使用低精度的意义 TensorCores适用条件 1. 卷积:K(输入通道),C(输出通道) 2. 通用矩阵乘法(GEMM):MxK,KxN,(M,N,K) FP16: 大小为8x Int8: 大小为16x0 码力 | 24 页 | 981.45 KB | 1 年前3
RISC-V 开放架构设计之道 1.0.0架构作为模型机的差别都不大,但是 RISC-V 基本指令集的小型浓缩化、功能指令集 的模块化、代码长度的可缩性、访存指令的简洁与灵活性、过程调用的简洁性、特权 模式的可组合性、异常/中断处理的简洁和灵活性,以及无分支延迟槽等诸多特性,都 使得采用 RISC-V 架构进行相关教学更能阐述清楚上层软件与指令集架构之间、指令 集架构与底层微架构之间的密切关系。 在过去数十年,我们一直跟踪国外一流大学计算机组成与系统结构相关课程的教 式中的立即数字段,可节省处理器设计的门电路数量;而 RISC-V 把全 0 指令作为非 法指令,则能让处理器更早捕捉到程序跳转到被清零内存区域的错误,从而降低此类 错误的调试难度;RISC-V 并未像 MIPS 那样采用延迟分支技术,是因为该技术违反 架构和实现分离的原则。同时,本书还介绍 x86、ARM 和 MIPS 的设计,并通过插 入排序和 DAXPY(双精度乘加)程序量化对比它们,突出 RISC-V 的优势,深入阐 第 8 章所介 绍,增长的主要原因是 x86 ISA 通过 SIMD 指令实现数据级并行。 AL 寄存器是默认的源寄存器和目的寄存器。 If AL 寄存器的低 4 位大于 9, 或辅助进位标志 AF 为 1, Then AL 的低 4 位加 6 且忽略溢出 AL 的高位字节加 1 进位标志 CF = 1 辅助进位标志 AF = 1 Else CF = AF = 0 AL 的高0 码力 | 223 页 | 15.31 MB | 1 年前3
RISC-V 手册 v2(一本开源指令集的指南)大部分成本来自于处理过 的晶圆本身。不太直观的是,晶粒越小,产率(生产出的可用晶粒所占的比例)越高。原因 在于目前的硅生产工艺会在晶圆上留下一些散布的小瑕疵。因此晶粒越小,有缺陷部分所占 比重会越低。 图1.4:由SiFive设计的直径为8英寸的RISC-V晶圆。 它有两种类型的RISC-V芯片,使用较旧的较大加工 线。 FE310芯片为2.65mm×2.72mm,SiFive测试芯片为2 不一定能保证性能。对于架构师来说, 为了在性能和成本上对某一特定时间的某种实现进行优化,而在 ISA 中包含某些指令,有时 候是一件有诱惑性的事情。但这样做会给其他实现或者今后的实现带来负担。 延迟分支是 MIPS-32 ISA 的一个令人遗憾的例子。条件分支导致流水线执行出现问题, 因为处理器希望下一条要执行的指令总是已经在流水线上,但它不能确定它要的到底是顺序 执行的下一条(如果分支未执 能导致流水线一个时钟周期的阻塞。 MIPS-32 通过把分支操作重新定义在分支指令的下一条指令执行完之后发生,因此分支指令 的下一条指令永远会被执行。程序员或编译器编写者要做的是把一些有用的指令放入延迟槽。 唉,这个“解决方案”对接下来有着更多流水级(于是在计算出分支结果之前取了更多 的指令)的 MIPS-32 处理器并无益处,反而让 MIPS-32 程序员,编译器编写者,以及处理 器设计者(因为增量0 码力 | 164 页 | 8.85 MB | 1 年前3
2022年美团技术年货 合辑测试时,每次只对一层进行量化,获取该层的激活数据后计算敏感度数值,代表了 该层的量化敏感度。作为对比,我们可以直接计算网络在 COCO val 数据集上的 mAP,使用检测精度作为该层的量化敏感度,即检测精度越高,该层敏感度越低(下 文称为 mAP 方法)。 算法 < 23 表 2 常用的量化敏感度计算方法及含义 测试结果如下图 5 所示,我们对测试结果进行归一化后,从不同敏感度分析结果中选 择敏感性最高的 6 层跳过,计算部分量化精度。 Prediction。它们都是时间序列 问题,前者是预测未来两天的污染物浓度以及变化,后者是预测未来几个小时高速 交通情况和变化。它们的共同点一是传统行业问题,实际意义强;二是存在各种突变 性、稳定性低;三是都涉及到多地域、多空间问题,需结合时空进行建模。它们的异 同点是污染物浓度突变需要一个短期时间才能发生,数据在突变时存在一定规律性, 但交通突变具有强偶发性,交通道路容易受到偶发性车祸、偶发性地质灾害等影响, 频次等方面存 在着较大差异;且高低频用户的点击行为分布差异明显,呈现出高频用户行为丰富聚 集、低频用户行为稀疏的特点。 对于高频用户,可能会导致兴趣圈封闭导致模型建模无法跳脱既有的兴趣圈;对于低 频用户,由于信息的缺乏导致其兴趣刻画不完整。因此,我们需要具备拓展用户兴趣 边界的信息扩展能力、对单点信息的扩充能力;即寻找一种新的数据结构,打破二维 线性限制,实现三维立体扩展,基于此种想法,我们从图的角度来重新思考用户行0 码力 | 1356 页 | 45.90 MB | 1 年前3
ffmpeg翻译文档一个粗略的估计值,最后还以一个空的字幕帧结束。 这个选项可能失败,或者出现夸张的持续时间或者合成失败,这是因为数据中有非单调递增的时 间戳。 注意此选项将导致所有数据延迟输出到字幕解码器,它会增加内存消耗,并引起大量延迟。 音频选项 高级音频选项 字幕选项 高级字幕选项 5 选项 - 25 - 本文档使用 书栈(BookStack.CN) 构建 -canvas_size size -dts_delta_threshold :时间不连续增量阀值。 -muxdelay seconds (input) :设置最大 解复用-解码 延迟。参数是秒数值。 -maxpreload seconds (input) :设置初始的 解复用-解码延迟,参数是秒数值。 -streamid output-stream-index:new-value (output) :强制把输出文件中序号为 出来的偏移。这一般用于具有不是从0开始时间戳的文件,例如一些传输流(直播下)。 -thread_queue_size size (input) :这个选项设置可以从文件或者设备读取的最大排队数据包数 量。对于低延迟高速率的直播流,如果不能及时读取,则出现丢包,所以提高这个值可以避免出 现大量丢包现象。 -override_ffserver (global) :对 ffserver 的输入进行指定。使用这个选项0 码力 | 502 页 | 3.06 MB | 1 年前3
美团点评2018技术年货了很多“坑”。特别是在早期“刀耕火种”的时代,对于入口 的配置,往往是通过“hardcode(硬编码)”的方式写死在代码中。所以必然会遇到很大的问题,这主要 体现为以下两方面: 运营效率低 运营效率低 对于新的运营配置需求,研发同学需要开发对应的配置页面,然后转给运营同学进行配置的管理,最后运 营人员对资源进行配置上线,其流程如下: 对于每个运营配置需求都要经过需求评审、页面开发、配置 管理、上线的流程。同时,对于配置页面的开 发,少则需要1到2天的开发工时,研发成本高。问题总结如下: 1. 研发成本高,每个需求要开发新的配置管理页面。 2. 研发周期长,运营效率低,从需求的提出到运营上线周期长。 3. 灵活性差,对不同的运营维度(城市、版本、时间等)都需要事先确定好,无法动态调整。 上线流程“粗糙” 上线流程“粗糙” 在早期,运营配置上线流程需要研发同学参与。产品提 LruCache在美团DSP系统中的应用演进 LruCache在美团DSP系统中的应用演进 作者: 王粲 崔涛 霜霜 背景 背景 DSP系统是互联网广告需求方平台,用于承接媒体流量,投放广告。业务特点是并发度高,平均响应低 (百毫秒)。 为了能够有效提高DSP系统的性能,美团平台引入了一种带有清退机制的缓存结构LruCache(Least Recently Used Cache),在目前的DSP系统中,使用LruCache0 码力 | 229 页 | 61.61 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化)。 • 并行能减轻计算瓶颈,但不减轻内存瓶颈,故后者是优化的重点 。 浮点加法的计算量 • 冷知识:并行地给浮点数组每个元素做一次加法反而更慢。 • 因为一次浮点加法的计算量和访存的超高延迟相比实在太少了。 • 计算太简单,数据量又大,并行只带来了多线程调度的额外开销 。 • 小彭老师经验公式: 1 次浮点读写 ≈ 8 次浮点加法 • 如果矢量化成功( SSE ): 1 次浮点读写 cycle , 符合小彭老师的经验公式。 • “right” 和“ wrong” 指的是分支预测是否成功。 多少计算量才算多? • 看右边的 func ,够复杂了吧?也只是勉勉强强超过一 点内存的延迟了,但在 6 个物理核心上并行加速后, 还是变成 mem-bound 了。 • 加速比: 1.36 倍 • 应该达到 6 倍(物理核心数量)才算理想加速比。 加速曲线 • funcA 用了 可见数据量较小时,实际带宽甚至超过了 理论带宽极限 42672 MB/s ! • 而数据量足够大时, 才回落到正常的带宽 。 • 这是为什么? CPU 内部的高速缓存 • 原来 CPU 的厂商早就意识到了内存延迟高,读写效率低 下的问题。因此他们在 CPU 内部引入了一片极小的存储 器——虽然小,但是读写速度却特别快。这片小而快的 存储器称为缓存( cache )。 • 当 CPU 访问某个地址时,会先查找缓存中是否有对应的0 码力 | 147 页 | 18.88 MB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路客户端 分片1&2 log Cellar—异地容灾 • 多机房建设 网络延迟大 专线稳定性差 • 异地容灾需求 跨集群数据同步 Cellar—异地容灾 集群节点同步 消息队列同步 复制延迟 低 高 系统复杂度 低 高 运维成本 低 高 实现难度 高 低 扩展性 低 高 • 低延迟 • 低复杂度(运维成本) Cellar—异地容灾 • Cellar起源 • 中心节点架构演进 Cellar—快慢队列 网络 线程 工作队列 工作 线程 问题: 共用队列&线程 线上慢请求:超时请求 1: 20 Cellar—快慢队列 网络 线程 读快队列 读快 线程 TP999延迟降低86% 读慢队列 写快队列 写慢队列 读慢 线程 写快 线程 写慢 线程 慢请求判断: • 耗时接口(range···) • value过大 • 单请求key过多 • ··· •0 码力 | 34 页 | 1.66 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程稍微快一些,但不完全精确的 __sinf • 两个下划线的 __sinf 是 GPU intrinstics ,精度相当于 GLSL 里的那种。 适合对精度要求不高,但有性能要求的图 形学任务。 • 类似的这样的低精度內建函数还有 __expf 、 __logf 、 __cosf 、 __powf 等。 • 还有 __fdividef(x, y) 提供更快的浮点除法 ,和一般的除法有相同的精确度,但是在 避免修改寄存器和访存相当于 CPU 的 SIMD 指令 _mm_blendv_ps 和 _mm_store_mask_ps ,不过 GPU 这种 SIMT 的设计能够自动处理分支和循环的分歧,这是 他门槛比 CPU 低的一点。 避免修改寄存器和访存相当于 CPU 的 SIMD 指令 _mm_blendv_ps 和 _mm_store_mask_ps ,不过 GPU 这种 SIMT 的设计能够自动处理分支和循环的分歧,这是 他门槛比 CPU 低的一点。0 码力 | 142 页 | 13.52 MB | 1 年前3
IPC性能极致优化方案-RPAL落地实践call remote call 方案诞生的背景 微服务合并形态:sidecar 进程通信 方案诞生的背景 微服务合并形态:亲和性部署 方案诞生的背景 怎么放大本地通信的优势? 低延迟 提升用户体验 低开销 降低计算成本 常见的本地通信方案:回环 IP、UDS、共享内存IPC 方案诞生的背景 以性能较优的 IPC 方案 share memory ipc 为例分析性能瓶颈: 注:方案 第三部分 用户态进程切换 传统线程切换 rpal线程切换: 用户态进程切换 用户态进程切换 延迟进程切换 1.发生 Kernel Entry 时,sender 线程将 pt_regs(保存 Kernel 返回到用户态的 上下文信息)压入 sender 线程内核栈 用户态进程切换 延迟进程切换 2. 判断 fsbase 寄存器保存的地址是否 在 kernel current task 地址 空间内? > 若不是,代表当前在RPAL Call, 将 pt_regs 拷贝并覆盖掉之前处于 epoll_wait 上下文的 receiver 线程的内 核栈中 用户态进程切换 延迟进程切换(lazy switch) 用户态切换时还需要保留一个操作: > sender线程将自身线程上下文拷贝一 个副本,并允许kernel访问该副本。 3. sender 线程在 lazy_switch0 码力 | 39 页 | 2.98 MB | 1 年前3
共 301 条
- 1
- 2
- 3
- 4
- 5
- 6
- 31













