Interleave Arrays
2026/6/6大约 1 分钟
Interleave Arrays
题目描述
编写一个 GPU 程序,将两个 32 位浮点数数组交错合并。给定两个输入数组 和 ,每个长度为 ,生成一个长度为 的输出数组,元素在 和 之间交替排列:
实现要求
- 不允许使用外部库。
solve函数签名必须保持不变。- 最终结果必须存储在
output数组中。
示例
示例 1
Input: A = [1.0, 2.0, 3.0], B = [4.0, 5.0, 6.0]
Output: [1.0, 4.0, 2.0, 5.0, 3.0, 6.0]示例 2
Input: A = [10.0, 20.0], B = [30.0, 40.0]
Output: [10.0, 30.0, 20.0, 40.0]约束条件
- 。
- 性能测试在 的规模下进行。
解题思路
数组交错合并是一种分散写(Scatter)操作:连续读但间隔写。每个线程负责一对元素 ,将它们写入输出中的 和 位置。写入模式是规则的,只要线程按顺序写入即可实现合并访问。也可以使用 float2 向量化存储来一次写入两个元素,减少内存事务数。欢迎在 GitHub Discussions 分享你的解法。