这里的其他答案都很好。我也将投入2美分。
CPU如此普及的原因之一是它们具有灵活性。您可以对它们重新编程以完成无数种任务。如今,对于生产产品的公司来说,将小型CPU或微控制器插入某物并对其功能进行编程,比开发定制电路来完成相同任务更便宜,更快。
通过使用与其他设备相同的设备,您可以利用已知的解决方案来解决使用同一设备(或类似设备)的问题。随着平台的成熟,您的解决方案将不断发展并变得非常成熟和优化。在这些设备上进行编码的人员也将获得专门知识,并且会精于手艺。
如果要从头开始创建一种新的设备类型(GPU的替代品),即使最早的采用者也要花费数年才能真正掌握如何使用它。如果将ASIC连接到CPU,如何优化该设备上的卸载计算?
几年来,计算机体系结构社区一直对这个想法感到困惑(很显然,它以前很流行,但是最近已经开始复兴)。这些“加速器”(其术语)具有不同程度的可重编程性。问题是,您如何狭窄地定义加速器可以解决的问题范围?我什至与一些正在与使用运算放大器的模拟电路来计算微分方程的加速器的人们进行了交谈。好主意,但范围极其狭窄。
在您拥有了加速器之后,经济力量将决定您的命运。市场惯性是不可思议的力量。即使是个好主意,重构您的工作解决方案以使用此新设备在经济上是否可行?也许吧,也许不是。
GPU对于某些类型的问题实际上是可怕的,因此许多人/公司正在使用其他类型的设备。但是GPU已经根深蒂固,它们的设备在经济上是否可行?我想我们会看到的。
编辑:现在我下车了,扩大了我的答案。
警示案例研究是英特尔Larrabee项目。它最初是作为可以在软件中进行图形处理的并行处理设备。它没有专门的图形硬件。我与从事该项目的人员交谈,他们说该项目失败并被取消(除了内部恐怖的内部政治原因)的主要原因是,他们只是无法让编译器为其生成良好的代码。当然,它产生了可工作的代码,但是如果您的产品的整个要点是最大的性能,则最好让编译器产生相当好的代码。这回想起了我之前的评论,即您的新设备在硬件和软件方面缺乏深厚的专业知识是一个大问题。
Larrabee设计的某些元素使其成为Xeon Phi / Intel MIC。该产品实际上已投放市场。它完全专注于并行化科学计算和其他HPC类型的计算。看来现在是商业失败。我在英特尔与之交谈的另一人暗示,它们与GPU相比在价格/性能方面没有竞争力。
人们试图将FPGA的逻辑综合集成到编译器中,以便您可以自动为FPGA加速器生成代码。他们做得不好。
云似乎是加速器或其他GPU替代品真正肥沃的土壤。这些大型公司(例如Google,Amazon和Microsoft)存在规模经济,因此值得投资替代计算方案。有人已经提到了Google的张量处理单元。微软在其Bing和Azure基础结构中均具有FPGA和其他功能。与亚马逊的故事相同。如果规模可以抵消您在时间,金钱和工程师眼泪上的投资,那绝对有道理。
总而言之,专业化与许多其他方面(经济性,平台的成熟度,工程专业知识等)不一致。专业化可以显着提高您的性能,但会缩小设备的适用范围。我的回答集中在很多负面因素上,但是专业化也有很多好处。绝对应该追求和研究它,正如我提到的,许多组织都在积极地追求它。
抱歉,再次编辑:我认为您的前提是错误的。我认为这不是寻找额外的计算能力来源的情况,而是人们认识到机会的情况。图形编程的线性代数非常繁琐,GPU旨在有效执行常见的运算,例如矩阵乘法,矢量运算等。这些运算在科学计算中也很常见。
人们开始意识到对Intel / HP EPIC项目的承诺被高估了(对90年代末2000年代初),人们开始对GPU产生了兴趣。编译器并行化没有通用的解决方案。因此,与其说“我们在哪里可以找到更多的处理能力,我们可以尝试GPU”,不如说是“我们有一些擅长并行计算的东西,我们可以使它更具通用性”。参与其中的很多人都在科学计算社区中,他们已经拥有可以在Cray或Tera机器上运行的并行Fortran代码(Tera MTA具有128个硬件线程)。也许双向都有运动,但是我只听说过从这个方向出发的GPGPU的起源。