码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SSE AVX 发展简单介绍


    SIMD全称是"Single Instruction, Multiple Data". 

    SSE1是Pentium III引入的,它操作于16 bytes寄存器。在C和C++中,这些寄存器以__m128的形式作为数据类型(128 bits=16 bytes)。每个寄存器包含4个单精度浮点数float,指令集一共有8个这样的寄存器,他们被命名为xmm0到xmm7。

    SSE2是2000年Pentium 4引入的,它增加了支持双精度浮点数和整型数的SIMD指令。SSE2还是操作同样的8个寄存器,但是为了类型安全,双精度浮点数和整型数以__m128d和__m128i的形式作为数据类型。

    2003年,AMD引入了AMD64架构,增加了8个向量寄存器,新增的8个寄存器被命名为xmm8到xmm15。

    2011年,Intel在Sandy Bridge处理器中引入了AVX。AVX将寄存器从16 bytes扩展到32 bytes,所以寄存器就可以包含8个单精度浮点数float或者4个双精度浮点数double。寄存器的个数并没有变化,还是16个。在汇编语言中,寄存器被新命名为ymm0到ymm15,它们的低128位仍然可以以xmm0到xmm15的名字访问。AVX同时支持32位和64位浮点数,但是并不完全支持整型。

    2013年,Intel引入了AVX2。AVX2增加了对整型数据运算的支持,但并没有增加新寄存器。AVX和AVX2现在已经广泛支持了。具体硬件支持历史可以看下图:

     

    记住,在编译64位程序时,一共有16个寄存器可供使用,但编译32位程序时,只有8个。编译器总是自动的将变量赋值到寄存器里,但是如果你定义了太多的局部变量,或者代码逻辑牵扯很多变量依赖关系导致编译器无法重复使用寄存器,那么编译器会把变量移到RAM上。而这样在某些情况下,会给程序性能带来负面影响。

    _mm256_load_ps和_mm256_loadu_ps的区别:

    不带u表示指令要求它所操作的数据内存地址必须是16或32 bytes对齐的(align);

    带u表示指令支持操作非内存对齐的地址,但是如果数据内存地址是对齐的,那么操作也会更快。

  • 相关阅读:
    二叉树的后续遍历(迭代法)
    【云原生 | Kubernetes 系列】K8s 实战 管理 Secret 详解
    进度条、git常见指令以及gdb的常用指令
    关于网上蛋糕店销售系统的设计答辩问题及回答
    实践,制作一个高扩展、可视化低代码前端,详实、完整
    算法竞赛进阶指南 基本数据结构 0x14哈希表
    leetcode 1770. Maximum Score from Performing Multiplication Operations(乘积的最大分数)
    基于JAVA摄影网站计算机毕业设计源码+数据库+lw文档+系统+部署
    让人上瘾的新一代开发神器,彻底告别Controller、Service、Dao等方法
    8、python中的模块和包
  • 原文地址:https://blog.csdn.net/zqxf123456789/article/details/128098846
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号