FP16 Dot Product
2026/6/6大约 1 分钟
FP16 Dot Product
题目描述
编写一个 GPU 程序,计算两个 16 位浮点数(FP16/half)向量的点积:
所有输入以 FP16 存储。累加过程使用 FP32 以获得最佳精度,最终结果转换回 FP16。
实现要求
- 不允许使用外部库。
solve函数签名必须保持不变。- 累加使用 FP32,最终结果以 half 存储在
output变量中。
示例
示例 1
Input: A = [1.0, 2.0, 3.0, 4.0], B = [5.0, 6.0, 7.0, 8.0]
Output: 70.0示例 2
Input: A = [0.5, 1.5, 2.5], B = [2.0, 3.0, 4.0]
Output: 15.5约束条件
- 和 长度相同。
- 。
- 性能测试在 的规模下进行。
解题思路
FP16 点积与 FP32 版本结构相同,但输入是半精度。每个线程先以 FP32 精度乘法和累加对应元素对,再做分块规约。混合精度(FP16 输入 → FP32 累加 → FP16 输出)是现代 ML 推理的标准范式,Tensor Core 也原生支持这种模式。注意 FP16 对大 的场景需要更谨慎的累加策略,避免 FP16 精度损失。欢迎在 GitHub Discussions 分享你的解法。