深入理解计算机系统学习笔记
以《深入理解计算机系统》的章节框架为蓝本,在学习的过程中引入工作中碰到的一些相关实战问题,加深对技术的理解深度。
爱上一只柠檬的pig_head
目前专注于深度学习框架的性能优化,主要针对CPU backend进行优化,熟悉模型量化,算子优化,分布式深度学习训练等领域。
展开
-
内存优化系列文章(3)程序员眼中的虚拟内存管理
开门见山 虚拟内存的初衷是采用页表管理机制使得程序即使在物理内存不足时也可以运行。在内存大幅度增加的当下,你可能会问虚拟内存还有用吗?如果你只是普通用户,买根内存条完事!但作为一名软件工程师,虚拟内存管理将直接影响你开发程序的性能! 灵魂拷问作为一名程序员,小编认为以下关于虚拟内存的知识需要搞懂:1)什么是虚拟内存? 核心观点是什么?2)页表机制和页面置换算法的基本原理?为什么需要多级页表?3)哪些虚拟内存的关键点可能影响程序性能?4)应用程序开发应该从哪些方面减少缺页异常和 TLB 不命中带来的性能影响?原创 2020-10-22 12:36:18 · 317 阅读 · 0 评论 -
内存优化系列文章(2)3分钟入门TCMalloc和JeMalloc
本系列文章采用实战+理论的分析方式,前两篇主要作为实战的入门教程。 在上一篇文章中我们展示了3种 malloc 算法的性能,并采用 Linux 的性能工具 ps 和 perf 分析了不同算法对缺页异常和 TLB 不命中的影响。为了让大家能快速尝试不同分配算法在你的应用上的性能情况,这篇文章将提供一个快速入门教程。 应用程序利用 malloc 和 free 等函数在堆空间中申请和释放动态内存。默认情况下,glibc 采用 PTMalloc 内存管理算法。为了采用不同的内存分配策略,我们只需要链接时采用指定库(原创 2020-10-22 12:29:04 · 1158 阅读 · 0 评论 -
内存优化系列文章(1)AI性能加速1.3x倍就靠一个环境变量!
内存优化系列文章(1)AI性能加速1.3x倍就靠一个环境变量! 虚拟内存、物理内存、内存分配、内存泄漏、TLB 不命中、缺页异常这些看似熟悉的计算名词却似懂非懂,没关系!本系列文章通过理论和实战带你一网打尽! 自从工作中接触到深度学习内存优化知识以来,白丁决定重新系统研究一下计算机背后的内存故事。通读本文你将获得以下干货知识: 为什么内存优化可以大幅度提升深度学习算法的性能?如何通过工具定量分析内存优化带来的性能好处? 操作系统为什么采用虚拟内存管理而不直接使用物理内存?虚拟内存的核心思想是什么?虚拟内存管原创 2020-10-22 12:21:34 · 346 阅读 · 0 评论