首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >片上硬件加速器的意义是什么,而不是将该功能作为指令添加到ISA中?

片上硬件加速器的意义是什么,而不是将该功能作为指令添加到ISA中?
EN

Stack Overflow用户
提问于 2018-10-16 23:07:58
回答 1查看 39关注 0票数 2

我知道,如果一个特定的操作是常见的,那么在硬件中进行它是有意义的。但是在这一点上,为什么不让它成为ISA的一部分,这样它就可以更快呢?让它成为通过共享内存进行通信的协处理器有什么好处吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-16 23:47:31

这有点手忙脚乱,因为我实际上并不设计硬件,但我认为我知道的足够多,至少可以说出一些看似合理的东西。

将其添加到ISA意味着它必须与流水线紧密耦合,而流水线并不适合具有特定硬件的集成GPU,并且可以过滤出哪些像素甚至需要使用专用硬件而不是软件分支进行处理。

即使考虑不太复杂的加速器(例如,用于加密):

特别是在没有无序执行和大的重新排序窗口的更简单的CPU上,高延迟硬件加速器可能会使流水线停滞,并在等待结果时阻止其完成其他工作。

英特尔确实倾向于在ISA中添加一些东西,例如AES和SHA,因为主流的x86 CPU确实具有指令吞吐量和向量寄存器,以将数据馈送到执行一轮AES的执行单元。

如果加速器在物理上很大,但通常不会同时被多个核心所需要,那么让多组核心共享一个核心是更自然的做法,通过某种协处理器安排将核心与离开核心进行计算的往返延迟隔离开来。

此外,对于GPU,GPU的计算吞吐量比普通CPU的超标量流水线更大。即使具有2个256位FMA单元,集成GPU的FLOPS通常也比现代Intel CPU的单个内核大得多。因此,你需要一个像"run shader“这样的CPU指令,它使用自己的单独可编程的机器代码来运行GPU程序。GPU指令调度甚至比正常的有序CPU都要轻。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52838613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档