scaling(衡量性能)

加速比

并行程序在多核上的性能 VS 最佳串行程序

影响“加速比-核数”的因素:

  • 问题计算量:计算量小使得多核机器性能偏低,计算量大使得单核机器性能偏低
  • 缓存:核越多,子问题越小,可能完全容纳在L1-cache中,使得加速比大于核数量
  • GPU例子:不同型号选用不同的SMM核数目

限制条件下的scaling

可能碰到的限制条件:

  • 应用(由实际情况决定)
    • 计算量/核
    • 通信/核
  • 资源(通用问题)
    • 问题限制
    • 时间限制
    • 内存限制

问题限制(主要)

  • 加速比=固定工作量,单核花费时间/多核花费时间,即更快地处理问题
  • 问题大小使得加速比的衡量与理论有偏差(见影响“加速比-核数”的因素)

时间限制

  • 加速比=固定时间内,多核工作量/单核工作量,即固定时间内处理更多的问题
  • 例子:实时系统

内存限制

  • 加速比=最大可支持内存下,(p工作量*1时间)/(1工作量*p时间)
  • 例子:机器学习中最大batch-size

simulation

  • execution-driven:用软件模拟硬件结构
  • trace-driven:在实际硬件结构中运行,并记录内存信息等

得到准确性能的技巧:

  • 从最简单的方案开始
  • 确定性能受限于计算、带宽、同步
  • 确定理论上的最佳效果
  • 用屋顶图衡量性能(斜线-带宽,水平线-计算能力)
  • 其他技巧
    • 增加纯粹的运算
    • 使用纯粹的load/save
    • 检查内存局部性,从A[0]读数
    • 检查同步性,移除锁、同步

ShengYg

Step after step the ladder is ascended.


Tags •