Count Array Element
2026/6/6小于 1 分钟
Count Array Element
题目描述
编写一个 GPU 程序,统计 32 位整数数组中值为 的元素数量。给定长度为 的输入数组 input 和目标整数 ,输出等于 的元素个数。
实现要求
- 不允许使用外部库。
solve函数签名必须保持不变。- 最终结果必须存储在
output变量中。
示例
示例 1
Input: [1, 2, 3, 4, 1], k = 1
Output: 2示例 2
Input: [5, 10, 5, 2], k = 11
Output: 0约束条件
- 。
- 。
- 性能测试在 的规模下进行。
解题思路
计数操作 = 逐元素比较(map)+ 规约求和(reduce)。每个线程比较一个元素是否等于 (产生 0 或 1),然后用分块规约 + warp shuffle 求和。与纯规约相比多了一步比较,但本质上还是内存带宽受限。对于极大的 ,可以使用 atomicAdd 让每个 block 贡献局部计数到全局变量,减少规约层数。欢迎在 GitHub Discussions 分享你的解法。