simd vs simt

12 篇文章 0 订阅

GPU架构及运行机制学习笔记_gpu结构-CSDN博客

SIMD (Single Instruction, Multiple Data) 和 SIMT (Single Instruction, Multiple Threads)

SIMD 架构是指在同一时间内对多个数据执行相同的操作,适用于向量化运算。例如,对于一个包含多个元素的数组,SIMD 架构可以同时对所有元素执行相同的操作,从而提高计算效率。

常见的 SIMD 架构包括 SSE (Streaming SIMD Extensions) 和 AVX (Advanced Vector Extensions)。

SIMT 架构是指在同一时间内执行多个线程,每个线程可以执行不同的指令,但是这些线程通常会执行相同的程序。这种架构通常用于 GPU (Graphics Processing Unit) 中的并行计算。

CUDA (Compute Unified Device Architecture) 和 OpenCL 都是支持 SIMT 架构的 编程模型。

SIMD 适用于数据并行计算,而 SIMT 适用于任务并行计算。在实际应用中,根据具体的计算需求和硬件环境选择合适的架构可以提高计算性能。

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:GPU架构及运行机制学习笔记_gpu结构-CSDN博客

2.3 SIMT

现在回头看下前面的hello world程序段。如果把核函数的入口改成GPUFunction<<<10, 10>>>();,那么就会打印100次GPU的输出。只编写一行代码,但这100个线程全部运行一段相同的程序段,这种就是CUDA的编程模型:SIMT(Single Instruction Multiple Thread)

SIMT和SIMD的概念有些容易混淆。SIMD(multiple data)指的是单指令多数据,把一个运算指令交由多个运算部件,强调使用运算部件和向量操作,来批量的对数据做处理和提升数据层面的并行性。

image-20220226131044471

比如上图的第三列。一条加法指令同时分配给4个ALU(或者是FPU, whatever)。

image-20220226130552803

而SIMT强调的是线程级别,使用一条指令,运行在不同线程上,来处理不同的数据集。个人理解两者并不是非此即彼的关系,关注的重点不太一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值