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 Flask Production Server • gunicorn 多进程解决多核利利⽤用率问题 • gevent 协程替代多线程⽹网络模型 • 更更⾼高效的序列列化lib 3 定位性能瓶颈 Profile before Optimizing Python Profilers • time.time() • cProfile • line profiler • pyflame 放个截图 cProfile • 倒序打印 & graph pyflame • 插桩 or 采样 • 放个flamegraph • 开源地址 wrk • 制造压⼒力力 • 挖掘整体性能瓶颈 • 实现⾮非常精妙的压⼒力力⼯工具,强烈烈安利利(要不不要写个py binding) 4 动⼿优化 多线程服务器的问题 • 每个请求单独进GPU,利利⽤用率不不⾼高 • ⼤大量量请求并⾏行行,CUDA会爆0 码力 | 38 页 | 2.25 MB | 1 年前3
07 FPGA 助力Python加速计算 陈志勇FPGA的开发工具支持python 语言? Ø 目前Xilinx 工具支持python 的主要应用领域 Python 工程师关心的问题 3 Python 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? Ø 传统的计算平台:基于通用处理器的架构,Intel x86 Ø 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 Ø 嵌入式计算: Ø 嵌入式系统是以应用为中心,以计算机技术0 码力 | 34 页 | 6.89 MB | 1 年前3
2_FPGA助力Python加速计算_陈志勇FPGA的开发工具支持python 语言? Ø 目前Xilinx 工具支持python 的主要应用领域 Python 工程师关心的问题 3 Python 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? Ø 传统的计算平台:基于通用处理器的架构,Intel x86 Ø 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 Ø 嵌入式计算: Ø 嵌入式系统是以应用为中心,以计算机技术0 码力 | 33 页 | 8.99 MB | 1 年前3
9 盛泳潘 When Knowledge Graph meet Python Ref:Danqi Chen, etc. Reading Wikipedia to Answer Open-Domain Questions 大数据时代的到来,使得知识库技术突破了长久以来制约 其发展的规模与质量瓶颈。知识图谱是这一突破的代表性 产物。知识工程(KE)在知识图谱(KG)技术的引领下 进入了全新的阶段(大数据时代的知识工程BigKE), BigKE将显著提升机器的认知水平。 Preliminaries0 码力 | 57 页 | 1.98 MB | 1 年前3
FPGA助力Python加速计算 陈志勇 FPGA的开发工具支持python 语言? ➢ 目前Xilinx 工具支持python 的主要应用领域 Python 工程师关心的问题 3 Python 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? ➢ 传统的计算平台:基于通用处理器的架构,Intel x86 ➢ 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 ➢ 嵌入式计算: ➢ 嵌入式系统是以应用为中心,以计算机技术0 码力 | 34 页 | 4.19 MB | 1 年前3
Python 标准库参考指南 3.6.15 firstname.lower())) 注解: 虽然此装饰器使得创建具有良好行为的完全有序类型变得非常容易,但它 确实是以执行速度 更缓慢和派生比较方法的堆栈回溯更复杂为代价的。如果性能基准测试表明这是特定应用的瓶颈所在, 则改为实现全部六个富比较方法应该会轻松提升速度。 3.2 新版功能. 在 3.4 版更改: 现在已支持从未识别类型的下层比较函数返回 NotImplemented 异常。 functools CHAPTER27 调试和分析 这些库可以帮助你进行 Python 开发:调试器使你能够逐步执行代码,分析堆栈帧并设置断点等,而分析器运 行代码并为你提供执行时间的详细分类,从而使你能够找出你程序中的瓶颈。 27.1 bdb —Debugger framework Source code: Lib/bdb.py The bdb module handles basic debugger functions0 码力 | 1886 页 | 8.95 MB | 10 月前3
Python 标准库参考指南 3.6.15 firstname.lower())) 注解: 虽然此装饰器使得创建具有良好行为的完全有序类型变得非常容易,但它 确实是以执行速度 更缓慢和派生比较方法的堆栈回溯更复杂为代价的。如果性能基准测试表明这是特定应用的瓶颈所在, 则改为实现全部六个富比较方法应该会轻松提升速度。 3.2 新版功能. 在 3.4 版更改: 现在已支持从未识别类型的下层比较函数返回 NotImplemented 异常。 functools CHAPTER27 调试和分析 这些库可以帮助你进行 Python 开发:调试器使你能够逐步执行代码,分析堆栈帧并设置断点等,而分析器运 行代码并为你提供执行时间的详细分类,从而使你能够找出你程序中的瓶颈。 27.1 bdb —Debugger framework Source code: Lib/bdb.py The bdb module handles basic debugger functions0 码力 | 1886 页 | 8.95 MB | 10 月前3
Python 标准库参考指南 3.7.13 firstname.lower())) 注解: 虽然此装饰器使得创建具有良好行为的完全有序类型变得非常容易,但它 确实是以执行速度 更缓慢和派生比较方法的堆栈回溯更复杂为代价的。如果性能基准测试表明这是特定应用的瓶颈所在, 则改为实现全部六个富比较方法应该会轻松提升速度。 3.2 新版功能. 在 3.4 版更改: 现在已支持从未识别类型的下层比较函数返回 NotImplemented 异常。 functools CHAPTER28 调试和分析 这些库可以帮助你进行 Python 开发:调试器使你能够逐步执行代码,分析堆栈帧并设置断点等,而分析器运 行代码并为你提供执行时间的详细分类,从而使你能够找出你程序中的瓶颈。 28.1 bdb --- Debugger framework Source code: Lib/bdb.py The bdb module handles basic debugger functions0 码力 | 1961 页 | 9.14 MB | 10 月前3
Python 标准库参考指南 3.8.20 firstname.lower())) 注解: 虽然此装饰器使得创建具有良好行为的完全有序类型变得非常容易,但它 确实是以执行速度 更缓慢和派生比较方法的堆栈回溯更复杂为代价的。如果性能基准测试表明这是特定应用的瓶颈所在, 则改为实现全部六个富比较方法应该会轻松提升速度。 3.2 新版功能. 在 3.4 版更改: 现在已支持从未识别类型的下层比较函数返回 NotImplemented 异常。 functools CHAPTER27 调试和分析 这些库可以帮助你进行 Python 开发:调试器使你能够逐步执行代码,分析堆栈帧并设置中断点等等,性能分 析器可以运行代码并为你提供执行时间的详细数据,使你能够找出你的程序中的瓶颈。审计事件提供运行时 行为的可见性,如果没有此工具则需要进行侵入式调试或修补。 27.1 审计事件表 下表包含了在整个 CPython 运行时和标准库中由sys.audit() 或 PySys_Audit()0 码力 | 2052 页 | 9.74 MB | 10 月前3
Python 标准库参考指南 3.10.15 firstname.lower())) 注解: 虽然此装饰器使得创建具有良好行为的完全有序类型变得非常容易,但它 确实是以执行速度 更缓慢和派生比较方法的堆栈回溯更复杂为代价的。如果性能基准测试表明这是特定应用的瓶颈所在, 则改为实现全部六个富比较方法应该会轻松提升速度。 注解: 这个装饰器不会尝试重写类 或其上级类中已经被声明的方法。这意味着如果某个上级类定义了 比较运算符,则 total_ordering CHAPTER27 调试和分析 这些库可以帮助你进行 Python 开发:调试器使你能够逐步执行代码,分析堆栈帧并设置中断点等等,性能分 析器可以运行代码并为你提供执行时间的详细数据,使你能够找出你的程序中的瓶颈。审计事件提供运行时 行为的可见性,如果没有此工具则需要进行侵入式调试或修补。 27.1 审计事件表 下表包含了在整个 CPython 运行时和标准库中由sys.audit() 或 PySys_Audit()0 码力 | 2207 页 | 10.45 MB | 10 月前3
共 25 条
- 1
- 2
- 3













