AMD 5870 显卡 (cypress) 架构

  •  20 simd 引擎,每个 simd 引擎包含 16 simd
  •  每个 simd 包含 16 stream core 
  •  每个 stream core 都是 5 路的乘法 加法运算单元( VLIW processing
  •  每个 stream core 是一个 5 路的 VLIW 处理器,在一个 VLIW 指令中,可以最多发射 5 个标量操作。标量操作在每个 pe 上执行
  •  CU8xx 系列 cu 对应硬件的 simd)内的 stream core 执行相同的 VLIW 指令 
  •  在 CU(或者说 simd)内同时执行的 work item 放在一起称作一个 wave,它是 cu 中同时执行的线程数目。在 5870wave 大小是 64,也就是说一个 cu 内,最多有 64 work item 在同时执行 
  •  单精度运算可以达到 Teraflops 
  •  双精度运算可以达到 544Gb/s 

 我们现在看下 AMD GPU 硬件在 OpenCL 中的对应关系: 

  •  一个 workitme 对应一个 pepe 就是单个的 VLIW core ,也就是每个simd core 中的某个具体的VLIW 线程
  •  一个 cu 对应多个 pecu 就是 simd 引擎 
  •  一个 simd 引擎的示意图,每个 simd 引擎由一系列的 stream core 组成 

  •  对每个 cu 来说,它使用的内存包括 onchip LDS 以及相关寄存器。在 5870 中,每个 LDS 32K,共 32 bank,每个 bank 1k,读写单位 4 byte
  •  对每个 cu 来说,有 8K 的 L1 cache。( for 5870) 
  •  各个 cu 之间共享的 L2 cache,在 5870 中是 512K 
  • fast Path 只能执行 32 位或 32 位倍数的内存操作
  •  complete path 能够执行原子操作以及小于 32 位的内存操作 

 AMD GPU 的内存架构和 OpenCL 内存模型之间的对应关系: 

  •  LDS 对应 local memeory,主要用来在一个 work group 内的 work times 之间共享数据。 steam core 访问 LDS 的速度要比 Global memory 快一个数量级 
  •  private memory 对应每个 pe 的寄存器 
  •  constant memory 主要是利用了 L1 cache 
  •  注意:对 AMD CPU, constant memory 的访问包括三种方式: Direct-Addressing Patterns ,这种模式要求不包括行
    列式,它的值都是在 kernel 函数初始化的时候就决定了,比如传入一个固定的参数。 Same Index Patterns ,所有的 work
    item 都访问相同的索引地址。 Globally scoped constant arrays ,行列式会被初始化,如果小于 16K,会使用 L1 cache,
    从而加快访问速度。当所有的 work item 访问不同的索引地址时候,不能被 cache,这时要在 global memory 中读取。 

 

原文地址:http://www.cnblogs.com/aalan/p/16852729.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性