CUDA——kernel发布

本文深入探讨了CUDA在1D和2D矩阵加法操作中的性能优化,包括不同线程配置对运行时间的影响、内存带宽利用和FLOPS计算。分析了行主导和列主导访问模式下内存事务效率,并通过实验数据展示了优化策略对执行时间的影响。

1D矢量加法

C=A+B \begin{equation} {\bf C=A+B} \end{equation} C=A+B

问题分析

基本概念:operations per cycle (OPC), operations per second (OPS), floating-point operations per second (FLOPS),
运行设备为Tesla K80,cuda核心的主频为823.5MHz,板载2个GPU,每个GPU包含13个流处理器,每个处理器中包含192个cuda核心,单核单周期单精度计算次数为2。单精度峰值FLOPS=8.73TFLOPS和我自己计算出来的不太一样。

823.5MHz×2×13×192×21000×1000×1000×1000=8.222TFLOPS \frac{823.5MHz\times 2\times 13\times 192\times 2}{1000\times 1000\times 1000\times 1000} = 8.222TFLOPS 1000×1000×1000×1000823.5MHz×2×13×192×2=8.222TFLOPS

这是因为通过deviceQuery查到的主频是基础主频,而官网上的宣传中提到过一句是:借助 NVIDIA GPU Boost 使单精度浮点运算能力高达 8.73 万亿次。Boost是一种动态调频的技术,类似于CPU超频,对于K80来说,最高的主频可以达到875MHz,代入计算即可得到一致的结果。
内存带宽为480GB/s和官方参数一致,其中显存位宽为384bit(内存位宽是在一个 时钟周期 内所能传送数据的位数,位数越大则瞬间所能传输的数据量越大,这是内存的重要参数之一。 内存位宽是在一个 时钟周期 内所能传送数据的位数,位数越大则瞬间所能传输的数据量越大,这是内存的重要参数之一),内存时钟频率为2.505GHz,

2×384bit×2.505GHz×28bits/byte=480.96GB/s \frac{2\times 384bit\times2.505GHz\times2}{8bits/byte} = 480.96GB/s 8bits/byte2×384bit×2.505GHz×2=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值