AMD 5XXX 系列显卡的 peak bandwidth计算

简介: 在ATI Stream Computing Programming Guide中,例举了AMD 5系列显卡的参数信息。 我比较关注其中Peak bandwidths的计算,以便在opencl程序测试bandwidth利用率。

在ATI Stream Computing Programming Guide中,例举了AMD 5系列显卡的参数信息。

我比较关注其中Peak bandwidths的计算,以便在opencl程序测试bandwidth利用率。

下面,我以5870为例,探讨一下如何计算得到这些结果:

    L1 cache的 peak bandwidth(L1<=>ALU) = compute units* Wavefront Size/compute Unit *Engine clock = cu数量*每个cu的wave大小*显卡系统时钟频率

= 20 * 64 * 0.85 = 1088 GB/s

注:在AMD GPU中,每个wave包含64个thread.

L2 cache peak bandwidth(L1<=>L2) = Number of Channels * wavefrontSize * Engine clock = 内存通道数量*wave大小*显卡系统时钟频率

= 8 * 64 * 0.85 = 435.2 GB/s

注:在AMD 8XXX显卡中,每个mc通道对应一个64K的L2 cache。

Global memeory peak rate(L2<=>Memory) = Number of Channels * memory pin rate * bits per chanel/8 = 内存通道数量*memory pin rate*每个channel位宽/8

= 8 * 4.800 * 32/8 = 153.6 GB/s

注:在cypress中,用的GDDR5,mclk是1200MHZ, GDDR5的date rate 是4,所以memory pin rate = 1200 * 4 = 4800Mb/pin

除以8是转化为字节。

 

Const cache read peak rate = peak read bandwidth per stream core * pe number * engine clock = 每个pe 的读带宽*pe数量*系统时钟频率

= 16 * 320 * 0.85 = 4352 GB/s

注:5870中的hardware参数

1

另外需要注意的对于consant buffer,只有直接地址访问时候,才能达到4352GB/s的峰值,如果通过索引方式,参考上表,用4或这0.6代替16.

LDS Read peak rate = peak read bandwidth per stream core * pe number * engine clock = 每个pe 的读带宽*pe数量*系统时钟频率

= 8 * 320 * 0.85 = 2176 Gb/s

注:LDS(对应cl中local memory)带宽计算方式和const buffer一样。

GPR read peak rate = peak read bandwidth per stream core * pe number * engine clock = 每个pe 的读带宽*pe数量*系统时钟频率

= 48 * 320 * 0.85 = 13056 GB/s

注:GPR(通用寄存器,对应cl中worktime 使用的private变量,对于kernel中局部变量,shade compiler一般都为其分配GPR)带宽计算方式和const buffer一样

下图为58xx的性能参数

2

相关文章
|
Linux 异构计算 Python
【linux】nvidia-smi 查看GPU使用率100%
nvidia-smi 查看GPU使用率一直是100%解决办法
【linux】nvidia-smi 查看GPU使用率100%
|
1月前
|
开发工具 git SoC
NVIDIA Jetson Controller Area Network (CAN)
NVIDIA Jetson Controller Area Network (CAN)
50 2
|
Linux Shell 图形学
成功解决WARNING: You do not appear to have an NVIDIA GPU supported by the 430.34 NVIDIA Linux graph
成功解决WARNING: You do not appear to have an NVIDIA GPU supported by the 430.34 NVIDIA Linux graph
成功解决WARNING: You do not appear to have an NVIDIA GPU supported by the 430.34 NVIDIA Linux graph
|
4月前
|
网络架构 芯片 内存技术
TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt
TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt
199 0
|
安全 数据安全/隐私保护 iOS开发
Intel 处理器 macOS降级到Big Sur
将移动硬盘作安装 Mac 操作系统的启动磁盘。
4030 0
Vibro-meter VM600 RPS6U 200-582-500-013 机械卡核电厂保护装置
Vibro-meter VM600 RPS6U 200-582-500-013 机械卡核电厂保护装置
111 0
Vibro-meter VM600 RPS6U 200-582-500-013  机械卡核电厂保护装置
|
SoC
PCIe EA (Enhanced Allocation) 介绍
PCIe EA (Enhanced Allocation) 介绍
291 0
PCIe EA (Enhanced Allocation) 介绍
|
Linux
【PCIe 6.0】PCIe 6.0 新特性 - DMWr (Deferrable Memory Write) 详解
【PCIe 6.0】PCIe 6.0 新特性 - DMWr (Deferrable Memory Write) 详解
1147 0
【PCIe 6.0】PCIe 6.0 新特性 - DMWr (Deferrable Memory Write) 详解
|
Kubernetes 监控 Linux
NVIDIA GPU Operator分析三:NVIDIA Device Plugin安装
背景我们知道,如果在Kubernetes中支持GPU设备调度,需要做如下的工作:节点上安装nvidia驱动节点上安装nvidia-docker集群部署gpu device plugin,用于为调度到该节点的pod分配GPU设备。除此之外,如果你需要监控集群GPU资源使用情况,你可能还需要安装DCCM exporter结合Prometheus输出GPU资源监控信息。要安装和管理这么多的组件,对于运维
4606 1
|
运维 Prometheus Kubernetes
NVIDIA GPU Operator分析五:GPU Feature Discovery安装
背景我们知道,如果在Kubernetes中支持GPU设备调度,需要做如下的工作:节点上安装nvidia驱动节点上安装nvidia-docker集群部署gpu device plugin,用于为调度到该节点的pod分配GPU设备。除此之外,如果你需要监控集群GPU资源使用情况,你可能还需要安装DCCM exporter结合Prometheus输出GPU资源监控信息。要安装和管理这么多的组件,对于运维
2322 0