在 matrixMul.cu 中优化 matrixMul 并行分块,以支持非多个 BLOCK_SIZE 维度。
作者: Codebruh-sudo创建于 2026年3月18日更新于 2026年8月28日
我随便查看了 matrixmul.cu,发现虽然当前的 matrixMul 示例有效地展示了共享内存平铺,但它目前假定矩阵的维度是 BLOCK_SIZE 的完整倍数。当提供任意维度示例(1024*1024)时,就会导致无法定义的行为或内存访问违规。我建议在平铺加载循环中添加边界检查:如果(row < height && col < width)。将共享内存初始化为零,以确保部分点积保持数值正确。更新检查 CudaErrors 逻辑,以在不符合规范的大小情况下,如果内核因非法内存访问而失败时,提供更描述性的输出。我已经在下面做了解释。
内容来源: NVIDIA/cuda-samples