SIMD vs SIMT vs SMT:并行处理模型之间有什么区别?

VR/AR
2020
06/24
21:59
新浪VR
分享
评论

来源:新浪VR

现代处理器架构利用各种执行模型。其中,两个最受欢迎:SIMD(单指令多数据)和SIMT(单指令多线程)。还有SMT(同时多线程),但这是我们最后要检查的其他内容。在本文中,我们将了解SIMD和SIMT处理器的执行模式,并了解它们之间的区别。

SIMD:单指令多数据

马上,什么是SIMD,更重要的是它如何工作?SIMD是一种执行模型,这意味着处理器将其用于在管道中将相似的数据集排队并并行执行的方法。它是现代CPU和GPU使用的最受欢迎的EM之一。单指令多数据。顾名思义,它通过对多个数据集同时采用一条指令来工作。

这意味着:一条特定指令由多个执行单元对多个数据集执行。EU可以是ALU(算术逻辑单元)或FPU(浮点单元),但是这里的关键是它们都从共享的控制单元接收相同的指令,然后在多个不同的数据集上执行它。

通过让CPU在不同的操作数上执行相同的任务,可以改善数据级的并行性(而不是指令级或并发性)。在上面的示例中,您可以看到代码行包含许多需要相同运算符的函数。在第一列中,所有四行基本上都涉及到两个不同矩阵的加法运算。SIMD允许在同一时钟周期内执行所有四个操作。这里要注意的一件事是SIMD使用执行单元,而不是线程或内核。

SIMT:单指令多线程

SIMT是SIMD的线程等效项。后者使用执行单位或向量单位,而SIMT对其进行扩展以利用线程。在SIMT中,多个线程对不同的数据集执行相同的指令。SIMT的主要优点是它减少了指令预取带来的等待时间。

SIMT通常用于超标量处理器中以实现SIMD。因此,从技术上讲,每个内核本质上都是标量的,但是通过利用多个线程对各种数据集执行相同的任务,它仍然类似于SIMD模型。

每当GPU需要执行特定指令时,都会从内存中获取数据和指令,然后对其进行解码和执行。在这种情况下,需要使用同一条指令执行的所有数据集(达到一定限制)将使用处理器可用的各种线程同时预取并同时执行。

SMT:同步多线程

SMT或同时多线程允许CPU内核一次利用多个线程。尽管从理论上讲,通过SMT每个内核最多可以有8个线程,但是只有两个线程是可行的。SMT类似于在机场将两个货物安全带分类为行李,然后由一个人对其进行分类。

有时候,一条皮带是空的,而另一皮带仍然有待处理的工作。在这种情况下,此人将切换到另一个皮带并继续分类,直到第一个皮带拿到更多行李。这类似于SMT在CPU中的操作方式。有时会出现内存延迟或高速缓存未命中的情况,此时,CPU内核通常会保持空闲状态。SMT旨在利用此优势来完全饱和CPU时间。

需要在内部修改CPU内核体系结构以支持SMT。这通常涉及增加寄存器大小(在某些情况下还包括高速缓存大小),以允许在两个线程之间平均分配资源,并防止争用。

尽管现代CPU很好地利用了SMT,但仍有很多时候需要冗余。那主要是在延迟密集型任务中,流水线几乎没有延迟。SMT甚至会影响资源密集型应用程序(注册和缓存)的性能。在这里,两个线程被迫相互竞争资源,从而导致性能下降。

THE END
广告、内容合作请点击这里 寻求合作
VR
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表砍柴网的观点和立场。

相关热点

前阵子英特尔公关主管Ryan Shrout展示了一款基于Tiger Lake的笔记本电脑,该笔记本电脑以1080p高,惊人的30 FPS运行《战地风云5》。请记住,我们所谈论的是SoC,CPU和GPU之间的TDP共享为28W。顺便说一句,...
VR
据外媒报道,苹果公司正在秘密进行的AR/VR研发部门此前内部发生了一些变动,但苹果公司表示将会推出类似Oculus Quest的苹果VR。
VR
近日,在2020年计算机视觉和模式识别大会上,Facebook首席科学家迈克尔·亚伯拉什通过视频介绍了团队的研究及相关进展。
VR
近日,字节跳动企业技术服务平台“火山引擎”官网上线。据介绍,“火山引擎”是字节跳动旗下企业级智能技术服务平台,依托字节跳动的大数据、人工智能等技术能力,以及增长理念与方法论,为客户提供技术产...
VR
《泰坦天降2》是一款发布于2016年的FPS游戏,它由Respawn工作室开发,虽然单人模式的流程很短,但关卡设计和角色刻画都堪称顶级,其在世界范围内都被誉为本世代最佳FPS游戏之一。
VR

相关推荐

1
3