据我了解,有些问题可以高度并行化,例如渲染、视频解码。由于 CPU 在此类任务中表现不佳,因此创建了 GPU。它们使用不同的架构来采用 SIMD 执行。它们还有一种特殊类型的内存,非常适合独立访问 GPU“线程”。
然而,我们看到 x86 架构获得了大量专注于流处理的扩展,例如 SSE 或 AVX。它们也是 SIMD,并且由于某种原因在 CPU 端运行。那么添加它们有什么意义呢?
与常规 GPU 相比,这些扩展有哪些优势?我的意思是 GPU 具有更高的内存带宽和其他性能,但这是否会让具有扩展功能的 CPU 处于劣势?他们不会遇到内存带宽问题吗?
据我所知,并非每台计算机都应该有专用的 GPU,例如服务器或工作站。但如果有效载荷很小,这应该不是问题。如果有效负载足够大,您就会为该任务购买显卡。SIMD 扩展就像 CPU 和 GPU 之间的中间地带。
如果 SIMD 扩展使 CPU 更有能力执行通常由 GPU 执行的任务,那不是会让 GPU 变得更加过时吗?我的意思是,如果他们可以使 CPU 对 SIMD 更加友好,为什么他们不首先做到这一点并决定将这个问题外包给其他设备?
我只是想知道这些扩展在性能很重要的软件中接收的应用程序。例如,游戏引擎或渲染器肯定会使用 GPU,SIMD 扩展会有所不同吗?