询问CUBLAS 10.2中cublasSgemm是否支持结果在C矩阵中累加
CUBLAS 10.2中cublasSgemm实现结果累加的方法
完全可以实现乘法结果累加至已有数据的C矩阵,核心是调整接口的beta参数:
cublasSgemm的实际计算逻辑是:
C = alpha * op(A) * op(B) + beta * C
多数场景下大家会把beta设为0.0f,这时候就会直接覆盖C的原有数据。如果需要累加,只需要将beta设为单精度浮点数1.0f,这样新计算出的alpha*A*B结果就会和C矩阵的原有数据相加后存回C中。
修改后的代码示例:
stat = cublasSgemm(handle, CUBLAS_OP_N, CUBLAS_OP_T, nRows, k, nCols, alpha, A, nRows, B, k, 1.0f, C, nRows);
另外,beta还支持设置其他非零值,比如设为0.5f就能实现原有C数据缩放一半后再与新结果相加,完全适配你提到的内存受限、拆分大矩阵分步相乘的场景。
内容的提问来源于stack exchange,提问作者Baj Mile
相关产品推荐
相关产品推荐

