GPU上缘何没有大量的cache
来源:互联网 发布:用java写乘法表 编辑:程序博客网 时间:2024/05/12 11:16
近年来,GPU广泛应用与高性能领域,其通用计算能力也得到了进一步的利用。与传统的CPU相比,GPU在处理能力和储存器带宽上有着明显的优势,在成本和功耗上也不需要付出太大的代价。
在当前主流的CPU+GPU架构中,CPU和GPU一般经过北桥芯片相互连接,各自有各自的外部储存器,分别为内存和显存。在这种混合架构中CPU负责逻辑性较强的事物运算,而GPU主要负责计算密集度较高的部分。其设计目的的不同导致了设计时的架构的不同。而这些架构的不同也最终影响了他们的性能。
CPU为何需要大量cache
对于单个的CPU核心通常在一个时刻只能运行一个线程的指令,其多线程机制也是在软件层次上的并行。当一个线程中断,或等待某些资源的时候,操作系统需要进行一个上下文转换,这通常会带来巨大的开销。因此需要大量的cache来过滤过多内存的访问,减少访存的延迟,提升CPU的响应速度。而为了缓存的一致性,还需要复杂的替换机制,需要复杂的逻辑控制单元。
另一方面,为了提升单核指令级的并行,现代的CPU中使用了超标量、超流水、超长指令字。这些方式的运行也需要借助复杂的分支预测机制和大量的cache。
GPU为何不需要大量cache
在GPU中没有复杂的缓存体系和替换机制,其cache都是只读的,因此不用考虑cache一致性问题。GPU缓存的主要作用是过滤对存储器控制器的请求,减少对显存的访问,从而解决显存带宽。
GPU不需要大量的cache,另一个重要的原因是GPU处理大量的并行任务。其大量的block和同一个block的大量thread保证了GPU可以实现零开销的线程切换。当一个线程因等待资源而中断的时候就转到另一个已经就绪线程去执行,在这里线程切换反而成了一件好事。能通过计算来隐藏延迟。
- GPU上缘何没有大量的cache
- GPU上缘何没有大量的cache
- 一次大量Library Cache lock的处理
- .net中何有效的使用Cache
- .net中何有效的使用Cache
- .net中何有效的使用Cache
- 没有GPU的pytorch安装命令
- linux的文件cache导致写文件消耗大量内存
- C#中将大量不变的数据放入cache中
- 何优化使用C6000系列C64x的Cache--原理,Cache种类和优化策略
- CPU GPU cache异同总结
- GPU L1 data cache 特点
- 图片动画美术资源的优化-可大量的优化IO/内存/CPU/GPU性能
- 在没有GPU的mac上安装opencv3+contrib教程
- Unity中基于Gpu Instance进行大量物体渲染的实现与分析(一)
- 脚本之找出占用了Buffer Cache里大量的buffer的数据库对象
- L1p cache 没有怎么办
- iptables带大量用户时的问题,急需高手指点 (dst cache overflow报警)
- IE6下Png透明最佳解决方案DD_belatedPNG
- spring静态注入
- TFT,TFD,STN 屏幕以及VGA,QVGA,SVGA分辨率等常识
- 教程:VS2010 之TFS入门指南
- Linux Shell编程
- GPU上缘何没有大量的cache
- IOS如何实现灵活的瀑布流(2)
- 由于编译Android4.0需要jdk1.5所以要降jdk版本到1.5
- Qt环境配置
- 河南哪个yiyuan治疗自闭症好
- .NET 4.0下使用 SignalR
- 河南哪个yiyuan治自闭症
- Android中Application类用法
- HDU 2065 "红色病毒"问题 指数生成函数