性能优化高手课
尉刚强
资深软件设计咨询顾问
新⼈⾸单¥59.9
862 人已学习
课程目录
已更新 17 讲 / 共 30 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 与我一起修炼,成为一名软件性能大师吧!
免费
性能设计篇 (8讲)
01 | 性能建模设计:如何满足软件设计中的性能需求?
02 | 并行设计(上):如何利用并行设计挖掘性能极限?
03 | 并行设计(下):如何高效解决同步互斥问题?
04 | 缓存设计:做好缓存设计的关键是什么?
05 | IO设计:如何设计IO交互来提升系统性能?
06 | 通信设计:请不要让消息通信拖垮了系统的整体性能
07 | 数据库选型:如何基于性能需求选择合适的数据库?
08 | 可监控设计:如何利用eBPF来指导可监控设计?
性能实现篇 (8讲)
09 | 性能模式(上):如何有效提升性能指标?
10 | 性能模式(下):如何解决核心的性能问题?
11 | 如何针对特定业务场景设计数据结构和高性能算法?
12 | 我们要先实现业务功能,还是先优化代码?
13 | 编译期优化:只有修改业务代码才能提升系统性能?
14 | 内存使用篇:如何高效使用内存来优化软件性能?
15 | 并发实现:掌握不同并发框架的选择和使用秘诀
16 | 技术探索:你真的把CPU的潜能都挖掘出来了吗?
性能优化高手课
15
15
1.0x
00:00/00:00
登录|注册

16 | 技术探索:你真的把CPU的潜能都挖掘出来了吗?

尉刚强 2021-06-22
你好,我是尉刚强。
通过上节课的学习,我们现在已经了解并发设计和实现的相关技术和方法,而所有这些技术方法的目的,都是为了能最大程度地发挥 CPU 多核的性能。但我们还要知道的是,CPU 体系架构在解决单核性能瓶颈问题、提升处理软件性能的过程中,其实并不是只可以采用增加核数这一种方式。
现在主流的 CPU 体系架构,为了提升计算速度,实际上都借鉴了 GPU 中的向量计算特点,在硬件上引入了向量寄存器,并支持利用向量级指令来提升软件的性能。
这种利用单条指令执行多条数据的机制,我们通常称之为 SIMD(Single Instruction Multiple Data)技术,比如 MMX、SSE、AVX、FMA 等支持 SIMD 技术的指令集,另外像英特尔、AMD 等生产的不同款型的 CPU,也都会选择支持部分指令集技术,来帮助提升计算速度。就以 ClickHouse 为例,它之所以在分析数据库上有卓越的性能表现,其中一部分原因就在于其底层大量地使用了 SIMD 技术。
那么,基于向量的 SIMD 技术的原理是什么,为什么它可以提升计算速度呢?我们在软件开发的过程中,要如何使用这种技术来提升性能呢?
今天这节课,我就根据目前比较主流的 AVX 技术的工作原理和具体实现,来帮你解答以上提出的这些问题。这样一来,你在 C/C++ 和 Java 语言的开发项目中,就知道如何使用这种技术来开发高性能的软件了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《性能优化高手课》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59.9
立即订阅
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
返回
顶部