多线程 – 深入分析CPU和GPU之间的差异

我一直在寻找cpu和GPU之间的主要区别,更准确地说,分离cpu和gpu的细微差别.例如,为什么不使用多个cpus而不是gpu,反之亦然.为什么gpu在处理计算中比“cpu”更快.他们中的一个可以做些什么,而另一个不能做,或者做得很好,为什么会这样.请不要回答“中央处理单位”和“图形处理单位”,我在寻找一个深入的技术答案.

解决方法

GPU基本上是大规模并行计算机.他们在可以使用大规模数据分解的问题上工作得很好,并且对这些问题提供了数量级的加速.

然而,GPU中的各个处理单元与通用性能cpu不匹配.它们更简单,并且没有像长管线,无序执行和指令级并行化这样的优化.

他们也有其他缺点.首先,您必须拥有一个用户,除非您控制硬件,否则您无法依赖此类设备.此外,在将数据从主存储器传输到GPU存储器并返回时还存在开销.

所以这取决于您的要求:在某些情况下,像特斯拉这样的GPU或专用处理单元是明确的赢家,但在其他情况下,您的工作不能被分解,以充分利用GPU,并且开销使cpu成为更好的选择.

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...