凑不齐一整排会怎样
运行下面这段程序,填写它打印出来的结果。 for n in (32, 30): lanes = 4 full = n // lanes left = n - full * la
阅读更多 →
一条顶四条
运行下面这段程序,填写它打印出来的结果。 n = 32 lanes = 4 print(str(n) + "/" + str(n // lanes) + "/"
阅读更多 →
GPU 擅长什么样的活
GPU 特别适合的任务是【0】。
阅读更多 →
SIMD 对数据摆放有什么要求
要用上 SIMD,数据最好【0】。
阅读更多 →
一条指令多个数据是什么意思
SIMD 的意思是「一条指令,多个数据」。它做的是【0】。
阅读更多 →
⚠️ 改了顺序却改错了下标
把两层循环换了位置,却顺手把 m[i][j] 也改成了 m[j][i]。⚠️ 在这个数组上它照样跑得通——把两个结果都打出来。
阅读更多 →
⚠️ 缓存友好不等于代码更短
把逐行求和写成一行 sum,和手写双层循环比一比:装载次数和结果各是多少。
阅读更多 →
把逐列改成逐行
把一段逐列遍历的求和改成逐行,验证结果一致,并给出两者装载次数。
阅读更多 →
把两趟合成一趟
原来一趟求和、一趟求最大值。改成一趟里两件事都做,验证结果不变,并算出搬运省了几趟。
阅读更多 →
一次多用一点
运行下面这段程序,填写它打印出来的结果。 BLK = 4 def loads(idxs): cur = -1 n = 0 for i in idxs: b =
阅读更多 →