对程序进行性能优化的前提是知道程序性能瓶颈在哪里。本文记录 vallgrind 工具之 callgrind 来测试程序性能。
性能优化之性能分析工具gprof
Gprof 是一个 Unix 应用程序性能分析工具。
AV1(DAV1D) 解码详解(四)之LOOP RESTORATION
LOOP RESTORATION,环内重建滤波器,是一个重要的增强图像质量处理方法。它包含了两种滤波器,编码器会从两者中选择其一。Wiener Filter(维纳滤波器)采用可分离的对称设计。SelfGuided(自导向投影滤波器)使用两个重建信号的线性组合来近似真实信号。编码器通过比较滤波结果,选择合适的参数,并传输给解码器。
AV1(DAV1D) 解码详解(三)之CDEF
ARM64 汇编指令总结
- SQDMULH(vector/by element)
- SQRDMULH(vector/by element)
- SQRSHRUN, SQRSHRUN2
- SQSHRUN, SQSHRUN2
- SHL
- SHLL, SHLL2
- SSHLL, SSHLL2
- USHLL, USHLL2
- TRN1 & TRN2
- SXTL, SXTL2
- UXTL, UXTL2
- EXT
- BFM, UBFM, SBFM(Bitfield move指令)
- SRSHR
ARMv8 指令集可以大致分为三类:A64 指令集、A32&T32 指令集。
ARM 汇编真的太痛苦了。。。一个命令一个命令的学习记录吧
NEON 编程5——重排矢量
NEON 编程4——左右移位
NEON 编程3——矩阵相乘
前面两篇分别介绍了如何使用 NEON 来加载和存储数据,如何使用 NEON 处理多余的数据。这一篇介绍一点儿使用的数据处理——矩阵相乘。
NEON 编程2——处理多余的数据
上一篇关于NEON 加载和存储的文章中,在NEON 处理单元(寄存器)和内存之间进行数据传输。这篇文章中,我们会处理经常遇到的问题:输入数据并不对齐,也就是输入数据的长度并不是向量长度的整数倍。我们需要在数组开始或结束的位置处理剩余的元素。使用 NEON 哪种方式最有效呢?
NEON 编程1——加载和存储
ARM NEON 技术是 64/128 位的混合 SIMD 架构,它的设计目的就是为了提高多媒体和信号处理应用的性能,包括视频编解码、音频编解码、3D 图像、声音和图像处理。