GPU与CPU性能比较
2012-11-20 20:42
295 查看
以下是参考2009年出版的书比较的,不要忘了时代在进步哦
1、线程
CPU
一个核心通常在一个时刻只能运行一个线程指令,CPU的多线程机制通过操作系统提供的API实现,是一种软件粗粒度多线程。当一个线程中断,或者等待某种资源时,操作系统就保存当前线程的上下文,并装载另外一个线程的上下文。所以,切换线程的代价十分昂贵。通常要数百个时钟周期。
超线程可以将核心虚拟成多个核心,但每个虚拟核心在一个时刻也只能运行一个线程。
GPU
轻量级线程,零开销线程切换,因此,当线程因为访问片外存储器或同步指令开始等待时,可以即时切换到另外一个处于就绪态的线程,用计算来隐藏延迟。所以当计算密度比较高时,延迟就可以被隐藏。
2、核心
CPU
2-8核心,每个核心3-6执行流水线,高指令并行技术,如:超标量超深流水线,乱序执行,预测执行,以及大容量缓存,SSE、3Dnow!一类数据级并行技术。
GPU
1-30个流多处理器,每个流多处理器包含8个1D流处理器的SIMD处理器。多流处理器间粗粒度任务级或数据并行,流多处理器内细粒度数据并行。
3、外部存储器
GT200的显存带宽:140GB/s 是同期CPU的内存带宽五倍
4、缓存
CPU
用于减小访存延迟和节约带宽,在多线程环境下会发生失效反应:每次线程上下文切换后,需要重新建立缓存上下文,一次缓存失效的代价是几十到上百个时钟周期。
同时为了实现缓存与内存中数据的一致性,还需要复杂的逻辑进行控制。
GPU
没有复杂的缓存体系和替换机制,缓存是只读的,没有缓存一致性问题,缓存主要用于过滤对存储器控制器的请求,减少对显存的访问。所以缓存的主要功能是节约显存带宽,而不是减小访存延迟。
总结:GPU适合用于高密度数据运算,CPU擅长复杂逻辑和事物处理等串行计算。
参考书籍:《GPU 高性能运算之CUDA》中国水利水电出版社
1、线程
CPU
一个核心通常在一个时刻只能运行一个线程指令,CPU的多线程机制通过操作系统提供的API实现,是一种软件粗粒度多线程。当一个线程中断,或者等待某种资源时,操作系统就保存当前线程的上下文,并装载另外一个线程的上下文。所以,切换线程的代价十分昂贵。通常要数百个时钟周期。
超线程可以将核心虚拟成多个核心,但每个虚拟核心在一个时刻也只能运行一个线程。
GPU
轻量级线程,零开销线程切换,因此,当线程因为访问片外存储器或同步指令开始等待时,可以即时切换到另外一个处于就绪态的线程,用计算来隐藏延迟。所以当计算密度比较高时,延迟就可以被隐藏。
2、核心
CPU
2-8核心,每个核心3-6执行流水线,高指令并行技术,如:超标量超深流水线,乱序执行,预测执行,以及大容量缓存,SSE、3Dnow!一类数据级并行技术。
GPU
1-30个流多处理器,每个流多处理器包含8个1D流处理器的SIMD处理器。多流处理器间粗粒度任务级或数据并行,流多处理器内细粒度数据并行。
3、外部存储器
GT200的显存带宽:140GB/s 是同期CPU的内存带宽五倍
4、缓存
CPU
用于减小访存延迟和节约带宽,在多线程环境下会发生失效反应:每次线程上下文切换后,需要重新建立缓存上下文,一次缓存失效的代价是几十到上百个时钟周期。
同时为了实现缓存与内存中数据的一致性,还需要复杂的逻辑进行控制。
GPU
没有复杂的缓存体系和替换机制,缓存是只读的,没有缓存一致性问题,缓存主要用于过滤对存储器控制器的请求,减少对显存的访问。所以缓存的主要功能是节约显存带宽,而不是减小访存延迟。
总结:GPU适合用于高密度数据运算,CPU擅长复杂逻辑和事物处理等串行计算。
参考书籍:《GPU 高性能运算之CUDA》中国水利水电出版社
相关文章推荐
- 一个不错的关于CPU和GPU(CUDA)的性能比较讨论话题
- C++ AMP 加速大规模并行计算-GPU和CPU的性能比较
- CPU与GPU性能的比较报告
- ND4J求多元线性回归以及GPU和CPU计算性能对比
- Android性能优化大全(Code Memory CPU GPU UI)
- 让CPU和GPU密切协作共同提升性能
- Qualcomm ARM CPU与Intel x86 CPU性能比较
- ARM最强CPU/GPU来了!A75、G72首发:性能爆炸
- GPU上和CPU上执行函数时间比较
- DeepLearning4j实战(7):手写体数字识别GPU实现与性能比较
- GPU 内存类型-性能比较
- 主流手持设备GPU性能比较
- iPad 2硬件评测:从CPU/GPU性能说开去…
- 安卓手机RAM的重要性以及与CPU、GPU对手机性能影响的影响
- GPU与CPU比较
- 一种基于众核GPU上高性能的基于比较的排序算法[1]
- android中衡量一个APK性能的方法(fps、cpu、内存、gpu、io参数)
- MTK平台配置多核cpu oneline和gpu freq提升系统性能
- ARM CPU与Intel x86 CPU性能比较
- 各种语言性能(CPU密集型程序)比较