![](https://img-blog.csdnimg.cn/20210727215411517.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
【Optimization精华】
文章平均质量分 92
本专栏主要包括不同架构平台的算法汇编优化方法,包括x86架构,arm架构,mips架构和GPU优化等。本专栏已包含一些高质量和深度文章,将持续更新,最终定价是99.9。
特别说明:
(1)订阅博主就能看博主全部的付费专栏和1000+篇文章。
(2)专栏文章全来自博主多年工作经验总结和心血,绝对干货!
优惠券已抵扣
余额抵扣
还需支付
¥59.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
飞翔的鲲
一名音视频领域coder,喜欢深入钻研各种新技术(编解码、图像处理、算法优化等),擅长Matlab,Python,C编程。
CSDN明星博主,认证博客专家,视频、Matlab领域优质创作者。目前专注于音视频编解码和AI技术领域,开源分享,不忘初心,追求卓越!
欢迎订阅我的付费专栏,每篇都是博主的多年工作经验总结和呕心之作,任何问题都可以私信博主,必给您答疑解惑!希望我的博文可以帮助到你~
展开
-
【优化系列】ARM NEON与X86 SSE的互相转换
Intel的CPU和ARM的CPU都有SIMD指令,可以完成CPU 指令级的并行化。这里边主要涉及CPU的汇编的知识和一些寄存器的知识。在一些耗时的SLAM优化迭代的场合,经常出现这样的指令的优化。SSE是Intel x86架构CPU的SIMD指令的简称,NEON是ARM CPU的SIMD指令的简称。本文主要介绍如何从X86 SSE Intrinsic转换为ARM NEON Intrinsic,以及ARM NEON Intrinsic转换为X86 SSE Intrinsics。原创 2023-03-24 11:48:32 · 814 阅读 · 0 评论 -
【汇编优化系列】关于符号扩展和无符号扩展(包括mips msa实现)
DATE: 2021.11.26文章目录前言1、参考2、符号扩展和无符号扩展 含义3、举例说明4、mips msa相关指令前言1、参考符号扩展和无符号扩展extension2、符号扩展和无符号扩展 含义MIPS32 指令集架构中,经常会有指令需要将其中的立即数进行符号扩展,或者无符号扩展,一般都是都是将n位立即数扩展为32位。无符号扩展:直接将扩展后的数据的高(32-n)位置为0。符号扩展:将扩展后的数据的高(32-n)位置为立即数的最高位。An integer register原创 2021-11-26 17:10:11 · 1590 阅读 · 0 评论 -
【优化系列】ARM优化之Intrinsic汇编方法
DATE: 2020.9.16文章目录1、参考2、前言3、入门知识4、arm intrinsic头及编译方法5、arm intrinsic数据类型及指令介绍6、指令查找手册1、参考【arm】arm neon intrinsic方式编写arm32位汇编2、前言3、入门知识4、arm intrinsic头及编译方法http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s04s02.html Introd原创 2020-09-16 16:51:55 · 1018 阅读 · 0 评论 -
【优化系列】ARM优化之内联汇编(inline)优化方法
DATE: 2020.10.1文章目录前言1、系列总结2、参考3、ARM内联汇编优化方法前言前面博客里面已经总结了ARM纯汇编优化和Intrinsic优化方法,如下:【arm】arm架构32位汇编优化总结 ,【arm】arm架构64位(AArch64)汇编优化总结【优化系列】ARM优化之Intrinsic汇编方法本文主要讲解ARM内联汇编arm inline的编写方法和注意事项。1、系列总结【ARM系列】ARM NEON汇编优化系列汇总2、参考ARM GCC的内联汇编详解 (ARM原创 2020-10-01 11:19:13 · 908 阅读 · 0 评论 -
【优化系列】X86优化之Intrinsic汇编方法
DATE: 2020.9.5文章目录参考1、SSE Intrisic based on x861.1 指令集对应的位数1.2 指令集intrinsic对应的头文件2、 数据类型2.1 数据类型的转换3、 intrinsic函数命名4、示例5、附录5.1 Latency and Throughput参考x86架构intrinsic优化1、SSE Intrisic based on x86 x86架构下的优化有多种手段,常见的有纯汇编优化、inline汇编、Intrinsic优化。前两种原创 2020-09-05 22:20:21 · 1029 阅读 · 0 评论 -
【优化系列】X86优化之Intrinsic汇编demo
DATE: 2020.9.5文章目录1、Demo的C代码2、X86 Intrinsic代码1、Demo的C代码// 计算当前图像的梯度图int generateGradientImage(unsigned char *Src, unsigned char *Dst, int Width, int Height, int Stride){ unsigned int gradX = 0; unsigned int gradY = 0; unsigned char * dstImage =原创 2020-09-05 20:22:43 · 359 阅读 · 0 评论 -
【优化系列】C程序调用x86汇编程序的方法
DATE: 2020.6.30本文目录1、参考2、C函数调用x86汇编函数2.1、新建main.c C文件2.2、新建add.asm汇编文件2.3、汇编文件编译方法1、参考【优化系列】x86asm汇编优化demo【汇编优化】之x86汇编与C相互调用2、C函数调用x86汇编函数C函数调用x86纯汇编实现简单的加法:例如add(2,3);2.1、新建main.c C文件#include<stdio.h>#include<stdlib.h> extern int a原创 2020-06-30 13:57:07 · 1429 阅读 · 2 评论 -
【优化系列】x86asm汇编优化demo
DATE: 2020.6.131、参考【优化系列】X86优化之纯汇编优化方法2、x86 assembly demox86纯汇编:SSE2指令集2.1 demo.cdemo.c如下:#include <stdio.h>#include <stdlib.h>#include <time.h>#include "os_time_sdk.h"#define CLIP(x) (x>255? 255: x<0? 0:x)void x264_p原创 2020-06-13 13:52:20 · 691 阅读 · 0 评论 -
【优化系列】C代码优化方案
转载自:https://blog.csdn.net/qq_32693119/article/details/86715738转载 2020-05-14 14:21:57 · 209 阅读 · 0 评论 -
【优化系列】X86优化之纯汇编优化方法
DATE:2020.2.17 【Tags: CPU优化、X86汇编优化、纯汇编优化】1、参考2、快速入门知识3、x86架构指令集的寄存器4、x86架构指令集的调用规则5、x86架构指令集纯汇编优化demo6、x86架构指令集优化方法7、x86架构指令集使用注意事项原创 2020-02-17 20:46:12 · 1266 阅读 · 0 评论 -
【ARM系列】ARM架构中断异常处理机制
DATE: 2019-9-131、参考ARM中断处理过程Linux中断 - ARM中断处理过程中断的含义2、ARM中断处理机制有待详细整理和学习!原创 2019-09-13 22:34:00 · 818 阅读 · 0 评论 -
【ARM系列】 ARM平台NEON指令的编译和优化
DATE: 2019-8-14转载自:https://blog.csdn.net/qiek/article/details/50900890ARM平台NEON指令的编译和优化前言本文介绍了ARM平台基于ARM v7-A架构的ARM Cortex-A系列处理器(Cortex-A5, Cortex-A7,Cortex-A8, Cortex-A9, Cortex-A15)上的NEON多媒体处理...转载 2019-08-14 19:34:24 · 1123 阅读 · 0 评论 -
【ARM系列】Thumb状态分析以及ARM与Thumb之间的状态转换
DATE: 2019-8-7【Tags: ARM汇编优化系列】1、参考2、Thumb状态分析3、ARM与Thumb之间的状态转换4、Thumb和ARM指令的主要区别原创 2019-08-07 20:10:24 · 2876 阅读 · 0 评论 -
【ARM系列】ARM汇编优化常见问题汇总
DATE: 2019-8-5【Tags: ARM汇编问题汇总】前言在编写ARM32和ARM64汇编优化代码时,常常由于指令使用导致产生一些bug,在此汇总遇到的常见问题,记录于此以备忘。1、有符号和无符号引入的问题原创 2019-08-05 22:12:25 · 1118 阅读 · 0 评论 -
【ARM系列】NEON寄存器清零的两种写法
DATE: 2019-8-5前言在ARM汇编优化中,NEON寄存器清零,比较简单的两种方法,也比较实用,特记录以备忘。1、写法一: 使用vdup指令mov r5, #0vdup.8 d0, r52、写法二:使用vmov指令vmov.i8 d0, #0 THE END! ...原创 2019-08-05 16:04:33 · 1745 阅读 · 0 评论 -
【优化系列】之DSP优化方法
DATE: 2019-2-18 来源Tag:项目开发总结(1) DSP介绍和优化方法原创 2019-02-20 20:33:03 · 1679 阅读 · 0 评论 -
【优化系列】X86优化之GCC 内联汇编
DATE: 2019.1.6文章目录1、参考2、Gcc内联汇编2.1 概览2.2 GCC汇编语法2.3 基本内联2.4 扩展汇编1、参考最牛X的GCC 内联汇编GCC 内联汇编 HOWTO 内联汇编在不同平台下编译的注意事项2、Gcc内联汇编2.1 概览在这里,我们将学习 GCC 内联汇编。这里内联表示的是什么呢?我们可以要求编译器将一个函数的代码插入到调用者代码中函数被实际调用的地方。这样的函数就是内联函数。这听起来和宏差不多?这两者确实有相似之处。内联函数的优点是什么呢?这种内原创 2019-01-06 22:14:47 · 547 阅读 · 0 评论 -
【arm】arm优化基本知识(寄存器、指令集、调用规则以及汇编格式)
https://blog.csdn.net/guanchanghui/article/details/1669513 https://developer.arm.com/products/architecture/a-profile/docs/den0018/a https://developer.arm.com/technologies/neon https://blog.csdn.net...原创 2018-07-01 23:07:20 · 1370 阅读 · 0 评论 -
【arm】aarch64汇编优化demo以及arm32与aarch64命令格式区别
2018.7.29 周末1、arm32架构gnu asm命令格式:V{<mod>}<op>{<shape>}{<cond>}{.<dt>}{<dest>}, src1, src2Where:<\mod> - modifiersQ: The instruction uses satura原创 2018-07-29 15:28:21 · 955 阅读 · 0 评论 -
【arm】arm neon 优化技巧
2018.7.29aarch64原创 2018-07-29 18:11:46 · 2063 阅读 · 0 评论 -
【Optimizaiton/x86】x86 SSE Intrinsic: 点乘算法的Intrinsic实现
Date: 2018.6.12https://blog.csdn.net/liujiayu2/article/details/39964813 https://blog.csdn.net/u010839382/article/details/52743664 https://www.cnblogs.com/iamkevin/p/7194255.html https://blog.cs...原创 2018-07-22 20:14:29 · 376 阅读 · 0 评论 -
【优化系列】x86内联汇编demo
Date: 2018.6.13 created by soaringleeDate: 2020.9.18 created by soaringlee1、参考内联汇编基础学习GNU C 内联汇编介绍gnu-gcc-insert-asm2、x86内联汇编基础知识【优化系列】X86优化之GCC 内联汇编3、x86内联汇编demo在C代码中内嵌汇编代码的方法,举例如下:3.1 加法操作...原创 2018-07-22 20:17:04 · 372 阅读 · 0 评论 -
【arm】arm32汇编编写示例demo
Date: 2018.7.22原创 2018-07-22 21:00:49 · 1302 阅读 · 0 评论 -
【优化系列】arm架构32位汇编优化总结
Date: 2018.8.18文章目录1、参考:2、Arm汇编架构和Reference Manuals3、Arm32位寄存器4、ARM指令寻址方式5、ARM指令特点以及优化技巧6、ARM和NEON指令集 常用指令汇总7、Arm32位加载数据的两种格式8、Arm32位汇编编写demo9、注意事项10、汇编优化基本准则11、ARM程序调试1、参考:ARM参考手册【arm】arm优化基本知识(寄存器、指令集、调用规则以及汇编格式)【arm】ARM寄存器以及使用说明【arm】arm的汇编指令及特点【原创 2018-08-18 15:35:08 · 2155 阅读 · 0 评论 -
【arm】arm架构64位入门基础:架构分析、寄存器、调用规则、指令集、程序调试以及参考手册
Date: 2018.8.211、参考https://developer.arm.com/products/architecture/instruction-sets2、ARM64位架构分析ARM64位采用ARMv8架构,64位操作长度,对应处理器有Cortex-A53、Cortex-A57、Cortex-A73、iphones的A7和A8等。AARCH64是全新32位...原创 2018-08-22 15:24:22 · 8518 阅读 · 0 评论 -
【arm】Some ways of Migrating code from ARM32 to AArch64
Date: 2018.8.29https://gitee.com/ http://www.hlhmf.com/ https://g363.xz95.top/https://www.nxp.com/docs/en/application-note/AN12212.pdf https://blog.linuxplumbersconf.org/2014/ocw/system/prese...原创 2018-08-31 12:12:34 · 1668 阅读 · 0 评论 -
【优化系列】arm架构64位(AArch64)汇编优化总结
Date: 2018.9.13文章目录1、参考2、前言3、arm架构64位优化基础知识4、ARMv8/AArch64 neon指令格式5、ARM相关编译参数6、查看状态标记位NZCV的方法7、A64指令集特有的指令及其用法8、资料文档查阅9、优化经验总结(满满的干货)1、参考https://blog.csdn.net/SoaringLee_fighting/article/details/81906495https://blog.csdn.net/SoaringLee_fighting/artic原创 2018-09-13 17:13:07 · 6470 阅读 · 2 评论 -
【优化系列】arm32位和arm64位架构、寄存器和指令差异分析总结
最近三个月的时间,都在进行解码库的arm架构汇编优化,包括arm32位汇编优化和arm64位汇编优化。在arm32位入门之后,只要掌握了两种架构的寄存器和指令集差异之后,就可以很快上手编写arm64位汇编代码了。下面就arm32位和arm64位架构、寄存器和指令差异进行分析总结。原创 2018-09-21 18:00:54 · 20999 阅读 · 0 评论 -
【arm】arm neon intrinsic方式编写arm32位汇编
Date: 2018.9.221、c、arm32和intrinsic方式对比int a = 32; // c codevdup.32 d0, r0 // arm32 assembly codeint32x2_t a1=vdup_n_s32(a); // intrinsic assembly code2、 数组相加Intrinsic方式下同种数据类型之间进行运算,可采用类似C的...原创 2018-09-22 14:00:06 · 1034 阅读 · 0 评论 -
【arm】ARM32和AARCH64的几点区别
Date: 2018.11.11学习参考: https://blog.csdn.net/listener51/article/details/828560011、指令编码长度A32模式(ARM instruction sets),指令固定的编码长度为32bitT32模式(Thumb instruction sets),指令可以编码成16bit长,也可编码成32bit长A64模式(AAr...转载 2018-11-11 15:54:31 · 10968 阅读 · 0 评论 -
【ARM系列】arm交叉编译工具链使用说明
Date: 2018.11.141、arm交叉编译工具链使用 arm交叉编译工具链是用于在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统。arm-none-linu...原创 2018-11-14 08:52:06 · 1383 阅读 · 0 评论 -
【Optimization】X86汇编快速入门
Date: 2018.6.16转载自: https://www.cnblogs.com/YukiJohnson/archive/2012/10/27/2741836.html本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的最核心部分,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令、逻辑计算指令、算数运算指令),以及函数的调用规则。个人认为:在理解了本文后,基本可以无障碍...原创 2018-06-16 15:29:34 · 325 阅读 · 0 评论