zoukankan      html  css  js  c++  java
  • 显存的一些知识

    学习GPU编程近半个月了,一直专注与编程的手段、方法、技巧等细节,却还没有从宏观看一下GPU是个什么样子。
     
    GPU就是显卡,graphic processor unit的缩写,在早期主要用于视频加载、3D图形处理等显示方面的应用,特点是一个GPU里有很多运算单元可以同时工作,相比于CPU的双核或者4核是一大亮点。
    尽管GPU在高速缓存、寄存器数量、时钟频率等方面远不及CPU,但多核(上百个)优势如果被充分利用的话,相较于CPU依然可以取得明显的加速效果。
     
    因此,越来越多的人不再仅仅把GPU当成图形处理核心,而是通用计算核心,这就是GPGPU的来历。全球最大的GPU产商Nvidia公司在这方面特别积极,为GPU开发了一套自己的类似C语言的语言界面Cuda来使得对GPU编程更加容易入门。相信GPU在成为通用的并行计算加速器上有很光明的前途,这也是我愿意跟着黄老师做GPU加速项目的重要原因之一。
     
    在百度百科上浏览了半天,终于能明白一些常见的GPU参数有什么样的意义,在这篇文章里,会介绍使用不同的参数的显卡会给程序性能带来什么样的影响。最后还以我个人华硕N56 VZ的显卡GT650M为例,与市面上比较好的显卡作对比,看看差别在哪里。
     
    显存位宽是显存在一个时钟周期内所能传送数据的位数。
    显存带宽 = 显存频率*pump rate*显存位宽/8 (单位是byte)。(对于DDR技术的内存,pump rate一般是2)
     
    显卡内存:graphics double data rate的缩写是GDDR,一种显卡用内存。
    目前比较流行的是GDDR3,GDDR5是即将被广泛应用的高性能,性能是GDDR3的4倍。
     对于大多数用GPU来处理的问题而言,对内存的读取是阻碍性能进一步提升的一大瓶颈,在这种情况下,显卡的显存位宽和显存频率就更为重要。
    读取内存的时间,除了取决于显存频率外,对编程人员来说,更主要的还是在于单次读取内存时导致的延迟。
     
    PCI:是电脑的总线接口,规定了外部设备与计算机主板相连的总线标准。
    目前流行的电脑总线接口是PCI-E2.0,其数据传输速度可达5Gbps,也就是说外部设备(如显卡、声卡等)向电脑主板上传输信息时,每秒钟最多为5G bit
    已经面世的下一代标准PCI-E3.0,数据传输速度可达8Gbps。
     
    流处理器器数:sp。sp越多,显卡的并行计算能力越强大。
     
    核心频率:显示核心的工作频率,也就是sp处理器的工作频率。
     
     
    不同显存的对比:GT650m和GTXTITAN-6GD5,GT650M是我的笔记本目前正在使用的显卡。
    对于型号为:GTXTITAN-6GD5的显卡,有2688个流处理器单元。
    显存频率为6GHz,显存位宽为384bit,则显存带宽就是288GB/s,这种显卡的售价在8000元左右。
    而对于普通的如GT650m的显卡,有384个流处理单元。
    显存频率为1800MHz,显存位宽为128bit,则显存带宽就是28GB/s,这种显卡的售价并不贵。
    GTX480显卡,有480个流处理器
    显存频率为3696MHz,也是384bit的显存位宽,显存带宽在173.3GB/s,价钱在3000元左右。
     
  • 相关阅读:
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 344 反转字符串
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
  • 原文地址:https://www.cnblogs.com/leohan2013/p/3335290.html
Copyright © 2011-2022 走看看