当前位置: 首页 > news >正文

simd vs simt

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


http://www.mrgr.cn/news/22847.html

相关文章:

  • 奔驰大G升级前排动态按摩座椅效果怎么样
  • golang学习笔记13——golang的错误处理深度剖析
  • 对非洲33国免关税!非洲市场不容错过
  • 又考了两个Oracle认证:RAC和DataGuard,文末送资料
  • Python | 练习作业 2
  • Linux网络编程---传输层
  • pdfmake生成pdf的使用
  • SpringBoot“衣旧温暖”系统---附源码81890
  • 数据库进阶:2.索引
  • 智慧驱动,效能跃升 | 华宇市场监管现场执法数智助手
  • 《经验分享:Ubuntu 22.04 安装微信》
  • 通过信息架构提升商业智能:实现数据驱动创新的策略与方法
  • 新手如何挖掘第一个漏洞?(非常详细)零基础入门到精通,收藏这一篇就够了
  • Ubuntu下使用Cron定时任务
  • (20)docke容器
  • 安卓链接正常显示,ios#符被转义%23导致链接访问404
  • CMakeLists.txt 和 Makefile
  • 儿童孤独症康复学校:打破孤岛,关爱与成长
  • 百度网盘下载报错1252000(类似125XXXXX)
  • MySQL进阶篇4 - 锁