HPC相关面经

1 roofline

计算强度:表示每Byte内存交换到底用于多少次浮点运算,计算强度越大,内存使用效率越高。

算⼒(Execution unit, max performance, 𝑃𝑝𝑒𝑎𝑘 ):计算平台每秒能完成的浮点运算数上限;单位:FLOPS or FLOPs/s or FLOP/s;

 = min( 𝑃𝑝𝑒𝑎𝑘 ,I⋅ 𝑏𝑠 ) 最大算力在左边

2 几个算法的优化思路

向量相加:零代码复制、最大线程驻留

向量内积:block内reduction(替换共享内存atomic),block间atomic,如果block太多,那也可以再kernel一次,点个核函数再次block内规约。

矩阵乘法:初始:一个线程负责一个值;

用共享内存3块:棋盘阵列,一个block负责一块区域;

用共享内存2块:棋盘阵列,用grid的第一维负责一块区域;

排序:基数排序,记得要合并的;合并上归约找最小值可以取代atomic;

奇偶排序:奇数元素和右边比,偶数元素和右边比;

卷积:2D线程,增广法。全局内存,全局内存+共享内存,全局内存+常量内存+共享内存(移入方法不用分割,直接for循环+判断);

归约:线程内部归约、取值的时候指令并行、线程束单次访存最大128字节

前缀和:KS和BK算法+单block前缀和后扇出

KS:

BK:

矩阵转置:dummy版本。。。就不说了吧?共享内存版本,主要是难在如何对应,以及如何访存与写入合并。

双调归并排序:对于混乱序列,看作leap为1的双调序列,不断合并(将leap为1的变为2,用到双调排序),直至整个变为双调序列,最后双调排序。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值