NVIDIA CUDA 高度并行处理器编程(二):数据并行执行习题

NVIDIA CUDA 高度并行处理器编程(二):数据并行执行习题如果一 CUDA 设备的一个 SM 能容纳 1536 个线程和 4 个线程块,下面那种线程块配置使得一个 SM 中能容纳最多的线程?a. 每个线程块 128 个线程b. 每个线程块 256 个线程c. 每个线程块 512 个线程d. 每个线程块 1024 个线程答:c, 一个 SM 容纳 3 个线程块,共 1536 个线程。向量加法中,假定向量长度是 2000, 每个线程产生一个输出元素,每个线程块包含 512 个线程。
摘要由CSDN通过智能技术生成

NVIDIA CUDA 高度并行处理器编程(二):数据并行执行习题

  1. 如果一 CUDA 设备的一个 SM 能容纳 1536 个线程和 4 个线程块,下面那种线程块配置使得一个 SM 中能容纳最多的线程?
    a. 每个线程块 128 个线程
    b. 每个线程块 256 个线程
    c. 每个线程块 512 个线程
    d. 每个线程块 1024 个线程
    答:c, 一个 SM 容纳 3 个线程块,共 1536 个线程。

  2. 向量加法中,假定向量长度是 2000, 每个线程产生一个输出元素,每个线程块包含 512 个线程。网格中有多少线程?
    a. 2000
    b. 2024
    c. 2048
    d. 2096
    答:c, ceil(2000/512)= 2048

  3. 上一问题中,对向量长度的边界检查会造成多少数量的 warp 产生分支多样性?
    a. 1
    b. 2
    c. 3
    d. 6
    答:a,最后一个 warp 中的线程一部分满足 if 条件,一部分不满足,warp 内会产生两条控制流路径,即分支多样性。

  4. 编写一个对大小为 400x900 的图片处理函数,用一个线程处理一个像素,线程块为正方形,如何设置网格和线程块的维度,才能使每个线程块包含尽可能多的线程?
    答:网格维度 13x29,线程块维度 32x32.

  5. 上一问设置中,会产生多少个空闲的线程?
    答:16928+28416-16*28 = 26,048

  6. 8个线程组成一个线程块,8个线程执行同一段代码,各个线程所需时间为:2.0, 2.3, 3.0, 2.8, 2.4, 1.9, 2.6, 和 2.9,其余时间等待到达同步点。所有线程用来等待同步点的时间栈总执行时间的百分比为多少?
    答:执行最长时间为 3.0 s,其余线程都要等到 3.0 s,用 3 分别减去所有执行时间,然后相加除以总执行时间和。

  7. 当一个 CUDA 程序员说在一个 kernel 函数中

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的博仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值