SSE指令集入门
来源:互联网 发布:java参数传递引用传递 编辑:程序博客网 时间:2024/06/04 11:01
Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力。Visual Studio .NET 2003提供了对SSE指令集的编程支持,从而允许用户在C++代码中不用编写汇编代码就可直接使用SSE指令的功能。MSDN中有关SSE技术的主题[1]有可能会使不熟悉使用SSE汇编指令编程的初学者感到困惑,但是在阅读MSDN有关文档的同时,参考一下Intel软件说明书(Intel Software manuals)[2]会使你更清楚地理解使用SSE指令编程的要点。
SIMD(single-instruction, multiple-data)是一种使用单道指令处理多道数据流的CPU执行模式,即在一个CPU指令执行周期内用一道指令完成处理多个数据的操作。考虑一下下面这个任务:计算一个很长的浮点型数组中每一个元素的平方根。实现这个任务的算法可以这样写:
for each f in array //对数组中的每一个元素
f = sqrt(f) //计算它的平方根
为了了解实现的细节,我们把上面的代码这样写:
for each f in array
{
把f从内存加载到浮点寄存器
计算平方根
再把计算结果从寄存器中取出放入内存
}
具有Intel SSE指令集支持的处理器有8个128位的寄存器,每一个寄存器可以存放4个(32位)单精度的浮点数。SSE同时提供了一个指令集,其中的指令可以允许把浮点数加载到这些128位的寄存器之中,这些数就可以在这些寄存器中进行算术逻辑运算,然后把结果放回内存。采用SSE技术后,算法可以写成下面的样子:
for each 4 members in array //对数组中的每4个元素
{
把数组中的这4个数加载到一个128位的SSE寄存器中
在一个CPU指令执行周期中完成计算这4个数的平方根的操作
把所得的4个结果取出写入内存
}
0 0
- SSE指令集入门
- SSE指令集入门
- SSE指令集入门
- SSE指令集入门
- SSE指令集简单入门
- SSE指令集
- SSE指令集
- SSE指令集
- 关于SSE指令集
- SSE指令集简记
- SSE加速指令集
- SSE指令算法及应用----入门篇
- sse 指令集--摘自sse_introduction
- SSE指令集加速运算
- SSE指令
- sse指令
- SSE 指令
- 基于SSE指令集的程序设计简介
- 58-最小步数
- 分析Python处理基本数据<三>
- hdu 5184 Brackets(卡特兰数)
- Hadoop--07--MapReduce高级编程
- 自定义View之组合控件
- SSE指令集入门
- git_笔记
- 烧录器配置字参数说明
- css loading
- xUtils 中的BitmapUtils 一些注释
- 51NOD 1183——编辑距离(动态规划基础)
- 浮点运算是什么?
- delphi 设置输出目录为相对路径
- 如何判断字符串是否为GUID格式