华为机试: GPU 算力

题目来源

题目描述

在这里插入图片描述
在这里插入图片描述

题目解析

  • 如果本次任务大于GPU最多一次执行的任务数量,那么就要将这次的任务交给下一次处理
  • 举例二【5,4,1,1,1】来看:
    • GPU一次只能处理4个任务,那么处理第一组任务就剩余了5-4=1个任务没有处理,将没有处理的任务记为more,然后进入下一组任务中
    • 在下一组任务中,优先处理上一组任务没有处理完的任务,也就是说more
    • 剩余为处理的任务我们可以通过move = 当前组的任务数量 + 上一次剩余未处理的任务more - GBU一次能处理的任务数两来记录
    • 另外,即使当前组的任务数低于GOU一次能处理的任务数,也应该只处理当前组的任务,不提前进入下一任务组处理下一任务组的任务,题目是说GPU最多一次执行n个任务,个人理解为可以一次最多处理n,也可以处理不到n的任务数。

int process(std::vector<int> nums, int n){
    int time = 0;
    int more = 0;
    for(auto j : nums){
        if(j + more > n){
            more = more + j - n;
        }else{
            more = 0;
        }
        time++;//每循环一次都需要计算耗时1秒
    }
    // 当任务组完成后还有剩余未完成的任务,需要继续将其完成。
    while (more > 0){
        more = more - n;
        time++;
    }
    return time;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值