-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SIMD 指令集与数据并行程序 #65
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
2.1 向量处理器的优缺点和限制
3.1 内存访问
3.2 指针类型于操作
3.3 掩码类型
3.4 副作用
4.1 程序表示
由于原文内容较为薄弱,学习过程中,补充了一些内容,不少来自 ece740 《Computer Architecture: SIMD/Vector/GPU》这一节的幻灯片(见文末参考)。
1.Amdahl's Law 和 Intel MMX
理论是推动技术前进的基石,根据阿姆达尔定律,该定律是由计算机工程师吉恩·阿姆达尔提出的,用来描述在多处理器系统中,程序性能提升的理论上限。下图左是该定律公式:

图 Amdahl 定律:程序中不能并行化的部分将决定整个程序性能提升的最大可能值
需要说明的是:
这个定律指出,程序的加速比受到其串行部分的限制。换句话说,程序中不能并行化的部分将决定整个程序性能提升的最大可能值。
实际需求推动技术向前,随着多媒体和通信软件的发展,对性能要求变高,1996 年, Intel 公司发表了一篇名为《MMX Technology Extension to the Intel Architecture》的文章,想要解决现有的 Intel 架构扩展以支持更高效的多媒体处理,同时保持与现有操作系统和应用程序的兼容性。通过设计一种基于 SIMD 名为 MMX 的技术,达到对现有应用程序的增强。
图 MMX 指令集相关指令和描述
该方法也可以在 C 语言中访问 MMX 指令。让加速多媒体和通信以及其他数值密集型应用程序性能成为可能。
2.SIMD、数据并行、向量处理器的关系
在讲 SIMD(单指令多数据)、数据并行之前,有必要讲一下向量处理器,这三个概念是密切相关的,它们都涉及在计算过程中同时处理多个数据点的能力。简单来说:
要说三者的关系,可以这么说:
总结来说,数据并行是一种概念,SIMD是一种实现数据并行的执行模型,而向量处理器则是具备执行SIMD指令能力的硬件。这三者共同为现代计算提供了强大的并行处理能力。
图 SIMD 处理(左),向量寄存器(右)
2.1 向量处理器的优缺点与限制
先提一下硬件的 Vector Processor。这里先给出 Vector Processor 优缺点的对比。
图 向量处理器 Pros & Cons
优势有:
劣势也很明显:
图 向量处理器本身的限制
此外,也存在一些限制:
The text was updated successfully, but these errors were encountered: