Matrix Multiplication
2026/6/6大约 1 分钟
Matrix Multiplication
题目描述
编写一个 GPU 程序,将两个 32 位浮点数矩阵相乘。给定矩阵 ()和矩阵 (),计算乘积矩阵 (维度为 )。所有矩阵均以行优先(row-major)格式存储。
实现要求
- 不允许使用外部库。
solve函数签名必须保持不变。- 最终结果必须存储在矩阵 中。
示例
示例 1
Input: Matrix A (2×2): [[1.0, 2.0], [3.0, 4.0]]
Matrix B (2×2): [[5.0, 6.0], [7.0, 8.0]]
Output: Matrix C (2×2): [[19.0, 22.0], [43.0, 50.0]]示例 2
Input: Matrix A (1×3): [[1.0, 2.0, 3.0]]
Matrix B (3×1): [[4.0], [5.0], [6.0]]
Output: Matrix C (1×1): [[32.0]]约束条件
- 。
- 所有元素均为 32 位浮点数。
- 性能测试在 的规模下进行。
解题思路
矩阵乘法是 GPU 编程的"Hello World"进阶版。朴素实现中每个线程计算一个输出元素,但全局内存的重复访问会导致严重的带宽浪费。核心优化手段是共享内存分块(Tiling):将矩阵划分为子块加载到共享内存中,大幅减少全局内存访问。欢迎在 GitHub Discussions 分享你的解法。