【汇编优化】之x86架构intrinsic优化
1、SSE Intrisic based on x86
x86架构下的优化有多种手段,常见的有纯汇编优化、inline汇编、Intrinsic优化。前两种对编译器的依赖比较大,跨平台(windows\linux等)编译问题比较多,例如纯汇编:win32、win64、linux64下函数形参入栈规则都不一样,且需要保护的寄存器也有较大区别,此外还有汇编重定位问题等等;而inline汇编在windows下是intel格式,在linux下是AT&T格式。intrinsic入门快,且没有以上诸多问题,比较适合初学者,但是其性能相对纯汇编或Inline汇编,会差一些。本文就intrinsic优化作一些简单的介绍,具体需结合实践理解学习。
1.1 指令集对应的位数
指令集类型 | 所占位数 |
---|---|
– MMX | : Multi Media Extensions 8 x 64bit (1997) |
– SSE/SSE2/SSE3/SSSE3/SSE4.x | : Streaming SIMD Extensions 8 x 128bit (1999) |
– AVX/AVX2/FMA | : Advanced Vector Extensions 16 x 256 bit (2008) |
– AVX-512/KNC | : Advanced Vector Extensions 32 x 512 bit (2012) |
备注:第二列8*64代表MMX寄存器有8个,每个
【汇编优化】之x86架构intrinsic优化相关推荐
- 【优化系列】汇编优化技术(十一):MIPS架构MSA Intrinsic优化及demo
DATE: 2021.11.17 文章目录 1.简介 2.msa寄存器类型 2.1.矢量寄存器类型 2.2.立即数类型 3.MSA Intrinsic函数 3.1.load/store 3.2.Log ...
- ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化
ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化 博文末尾支持二维码赞赏哦 _ 本文github 神经网络arm neon加速 ...
- 系统架构性能优化思路
- 前言 - 今天谈下业务系统性能问题分析诊断和性能优化方面的内容.这篇文章重点还是谈已经上线的业务系统后续出现性能问题后的问题诊断和优化重点. 系统性能问题分析流程 我们首先来分析下如 ...
- intel服务器单核性能提升,Intel 12代酷睿最大担心解除:Win11优化大小核架构、单核性能大涨...
再过几天,微软就会在6月24日的发布会上推出Windows 11(简称Win11)系统了,界面比Win10改变不少,此前的性能测试也是有喜有忧,多核比Win10还差了.不过对Intel来说,Win11 ...
- AI中pass架构设计优化
AI中pass架构设计优化 Relay 和 TVM IR,包含一系列优化passes,可提高模型的性能指标,例如平均推理,内存占用,或特定设备的功耗.有一套标准优化,及特定机器学习的优化,包括常量折叠 ...
- psql where里有自定义函数慢_阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结...
MySQL优化概述 MySQL数据库常见的两个瓶颈是:CPU和I/O的瓶颈. CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候. 磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应 ...
- LAMP 架构深度优化记录
1.Apache worker/prefwork模式说明 在linux中,我们可以用httpd-l 查看安装的模块是prefork模式还是worker模式 [root@LAMP ~]# /applic ...
- 【Android 逆向】x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | 使用 IDA 打开动态库文件 | IDA 中查找指定的方法 )
文章目录 一.使用 IDA 打开动态库文件 二.IDA 中查找指定的方法 一.使用 IDA 打开动态库文件 分析 Android SDK 中的 x86 架构的动态库 , 动态库位置 : D:\001_ ...
- 阿里P7架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结
MySQL优化概述 MySQL数据库常见的两个瓶颈是:CPU和I/O的瓶颈. CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候. 磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应 ...
最新文章
- python资本市场财务数据分析_Python对股票财务数据进行可视化分析
- Navicat是如何连接到服务器的呢
- 【MM】基于收货的发票校验Bapi Demo
- [BUUCTF-pwn]——starctf_2019_babyshell
- 委派用户管理Hyper-v
- 一直在构建工作空间_智能工作空间让Dropbox拥有无限扩展潜力
- Atom安装或更新插件失败的解决方案
- 【Linux】解决用vi修改文件,保存文件时,提示“readonly option is set”
- Gstreamer之gst_buffer_map()用法(十七)
- matlab 2d pml,二维TM波,PML边界,matlab程序。但是仿真结果有问题,求高手。
- 一个出色的UI设计师需要具备哪些能力?
- 某医院病房计算机管理数据库,毕业论文_数据库某医院病房计算机系统.doc
- 关于OMC链接LANSWITCH
- PostgreSQ 存储过程 和 存储函数的区别
- 按键精灵定位坐标循环_[按键精灵手机版教程]DNF遍历背包卖物
- asdm java设置,[小技巧] 在CISCO ASA 5505防火墙上开启ASDM图形界面
- 计算机无法预览文件,win10系统百度网盘文件无法预览的解决方法
- windows计算机锁屏的快捷键是什么,win7的锁屏快捷键是什么 win7锁屏快捷键介绍【图文】...
- error:The calling thread cannot access this object because a different thread owns it解决方法
- 响应对象转json时属性名大小写问题完美解决
热门文章
- 泉州海事学校计算机,泉州海事学校寝室图片、校园环境好吗?
- Is It A Tree?(hdu1325)
- Python中pip包管理工具的源配置文件pip.ini
- Python报错can only concatenate str (not “int“) to str
- c语言推箱子源代码及注释,求大神 解析推箱子源代码 要详细
- kali创建文件_kali 创建快捷方式的方法
- 如何查看JVM内存中的对象和执行中的方法
- Ubuntu下修改root密码
- 新微擎 v1.7.9 图文回复 标题emoji
- tune kubernetes eviction parameter