4 Python机器学习性能优化
Python机器学习性能优化 以BERT服务为例例,从1到1000 刘欣 ⽬目录 CONTENTS 1. 优化的哲学 2. 了解你的资源 3. 定位性能瓶颈 4. 动⼿优化 1. 优化的哲学 "There ain't no such thing as a free lunch" Ahmdal’s Law • 系统整体的优化,取决于热点部分的占⽐比和该部分的加速程度 No Free Free Lunch • 定位热点 & 热点加速 • 对于项⽬目开发周期: 1. 先做出效果 2. 确定整体pipeline 3. 再考虑优化 • 对于⼈人⼯工智能项⽬目:迭代周期更更⻓长,更更是如此 以BERT服务为例 • BERT: TODO: ⼀一句句话解释 • 横扫多项NLP任务的SOTA榜 • 惊⼈人的3亿参数 以BERT服务为例 • Self Attention机制 's=Happy birthday to [MASK].' [“you"] 以BERT服务为例 • 我们现在上线了了这样⼀一个服务,每秒钟只能处理理10个请求 • Q: ⼤大家⼀一开始如何着⼿手优化 • Profile before Optimizing • 建⽴立闭环 2 了解你的资源 cpu/内存/io/gpu GPU为什么“快”? 计算⼒对⽐ • GFLOPS/s0 码力 | 38 页 | 2.25 MB | 1 年前3PyConChina2022-杭州-ARM芯片的Python+AI算力优化-朱宏林
ARM 芯片的 Python + AI 算力优化 主讲人: 朱宏林 – 阿里云程序语言与编译器团队 简介 • 当今开发者们大量使用 Python 语言编写的 AI 程序。过去这些程序总跑在 GPU 或者 x86 架构的 CPU 上。然而综合考虑到功耗、成本、性能等因素,云厂商们开始建设 ARM 架构的服务平台,如 何整合 Python + AI 的相关软件并使其在该平台上发挥最高的性能成为了工程师们关注的焦点。 用 ARM 架构新提供的矩阵扩展对 bf16 类型的 矩阵乘法计算进行优化,该优化将纯矩阵乘法的运算速度提升 3 倍以上,对深度学习推理任务性能 提升明显。目前,该成果已经被集成进 OpenBLAS 和 PyTorch 中。 • 本次演讲,将向大家介绍我们在倚天 710 ARM 芯片上开展的 Python + AI 优化工作,以及在 ARM 云平台上部署 Python + AI 任务的最佳实践。 • GEMM 通过优化内存局部性和向量指令,比朴素实现快 10 倍以上 GEMM • 优化 GEMM • 内存布局:矩阵分块;重排 • 向量化指令:AVX、NEON V0 V1 ✕ ✕ ✕ ✕ V2 GEMM 例子 • 优化 GEMM • 内存布局:矩阵分块;重排 • 向量化指令:AVX、NEON 原始算法 展开4x1 向量化 GEMM 例子 • 优化 GEMM • 内存布局:矩阵分块;重排0 码力 | 24 页 | 4.00 MB | 1 年前3Django、Vue 和Element UI 前后端原理论述
前端开发(Vue+Element UI): Vue 是一种现代的 JavaScript 框架,用于构建用户界面。Vue 提供了丰富的组件和模 块,可以帮助开发者构建交互式的单页面应用(SPA)。 Element UI 是一个基于 Vue 的 UI 组件库,提供了丰富的预定义组件,用于快速搭建 美观的用户界面。 前后端交互: 后端通过 Django Rest Framework 提供 API 接口,前端通过 请求向后端发送数据请求,后端根据请求进行相应的数据处理,并 返回响应数据给前端。 前端接收到后端返回的数据,并根据数据更新页面展示,实现与用户的交互。 总体而言,这种前后端分离的开发模式有助于实现前后端开发的解耦,使得各自的 开发工作更加专注和高效。前端负责用户界面的呈现和交互,后端负责数据处理和业务 逻辑,通过 API 接口进行数据传输和交互,从而实现一个完整的 Web 应用。 3 《51 lock 文件中,这样可以确保项目在不同环境中安装相同的依赖版本。 简化依赖安装:使用 Pipenv 安装依赖非常简单,只需要运行一个命令即可,而不需 要手动管理依赖的安装。 提供更友好的命令行界面:Pipenv 提供了一组易于使用的命令,使得包管理和虚拟 环境管理更加直观和简便。 支持开发模式:Pipenv 支持将项目的开发依赖和运行时依赖分开,这样可以减少项 目打包时的冗余依赖。 3、Django0 码力 | 61 页 | 6.84 MB | 1 年前3Flask入门教程
15 目录 简介 前言 第 1 章:准备工作 第 2 章:Hello, Flask! 第 3 章:模板 第 4 章:静态文件 第 5 章:数据库 第 6 章:模板优化 第 7 章:表单 第 8 章:用户认证 第 9 章:测试 第 10 章:组织你的代码 第 11 章:部署上线 小挑战 后记 2 Flask 入门教程 这是一本 Flask 入门教程,提供了入门 Flask 的个人主页了解更多关于我的信息。 目录 前言 第 1 章:准备工作 第 2 章:Hello, Flask! 第 3 章:模板 第 4 章:静态文件 第 5 章:数据库 第 6 章:模板优化 第 7 章:表单 第 8 章:用户认证 第 9 章:测试 第 10 章:组织你的代码 第 11 章:部署上线 小挑战 后记 版权信息 书名:Flask 入门教程 副书名:使用 Python 和 Flask 程序作为示例 复原完整的开发流程 只提供入门所需的最少信息 优化术语解释,更容易理解 阅读方法 本书复原了编写这个 Watchlist 程序的完整流程,包括每一行代码块,每一个需要 执行的命令。在阅读时,你需要自己输入每一个代码和命令,检查输出是否和书中 一致。在这个过程中,你也可以对它进行一些调整。比如,示例程序的界面语言使 用了英文,你可以修改为中文或是其他语言。对于页面布局和样式,你也可以自由0 码力 | 127 页 | 7.62 MB | 1 年前3Python 标准库参考指南 3.9.20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 13.2.2 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 13.3 bz2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 13.5.5 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 13.5.6 解压缩的障碍 标准符合性和互操作性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098 19.2.5 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100 19.3 mailbox0 码力 | 2146 页 | 10.17 MB | 9 月前3Python 标准库参考指南 3.10.15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 13.2.2 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 13.3 bz2 标准符合性和互操作性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129 19.2.5 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130 19.3 mailbox shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1411 25 Tk 图形用户界面 (GUI) 1413 xv 25.1 tkinter ——Tcl/Tk 的 Python 接口 . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3Python 标准库参考指南 3.12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 13.2.2 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 13.3 bz2 --- 2.4 标准符合性和互操作性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154 19.2.5 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156 19.3 mailbox 改进的 shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432 25 Tk 图形用户界面 (GUI) 1435 25.1 tkinter --- Tcl/Tk 的 Python 接口 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2253 页 | 11.81 MB | 9 月前3Python 标准库参考指南 3.12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 13.2.2 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 13.3 bz2 --- 2.4 标准符合性和互操作性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154 19.2.5 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156 19.3 mailbox 改进的 shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432 25 Tk 图形用户界面 (GUI) 1435 25.1 tkinter --- Tcl/Tk 的 Python 接口 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2253 页 | 11.81 MB | 9 月前3Python 标准库参考指南 3.13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 13.2.2 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 13.3 bz2 --- 改进的 shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1468 25 Tk 图形用户界面 (GUI) 1469 25.1 tkinter --- Tcl/Tk 的 Python 接口 . . . . . . . . . . . . . . . . . . . . . . . . . 1.8 标注生成器和协程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1523 26.1.9 用户定义的泛型类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1524 26.1.10 Any 类型0 码力 | 2246 页 | 11.74 MB | 9 月前3Python 标准库参考指南 3.13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 13.2.2 命令行界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 13.3 bz2 --- 改进的 shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1464 25 Tk 图形用户界面 (GUI) 1465 25.1 tkinter --- Tcl/Tk 的 Python 接口 . . . . . . . . . . . . . . . . . . . . . . . . . 1.8 标注生成器和协程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519 26.1.9 用户定义的泛型类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1520 26.1.10 Any 类型0 码力 | 2242 页 | 11.73 MB | 9 月前3
共 183 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19