简单的CUBLAS矩阵乘法示例?

时间:2011-10-03 15:08:51

标签: cuda gpu matrix-multiplication cublas

我正在为CUBLAS寻找一个非常简单的骨骼矩阵乘法示例,它可以将M乘以N,并使用高性能GPU操作将结果放在P中,用于以下代码:

float M[500][500], N[500][500], P[500][500];
for(int i = 0; i < Width; i++){
    for(int j = 0; j < Width; j++)
    {
        M[i][j] = 500;
        N[i][j] = 500;
        P[i][j] = 0;
    }
}

到目前为止,我发现使用CUBLAS进行任何类型的矩阵乘法的大多数代码(看似?)过于复杂。

我正在尝试设计一个基础实验室,让学生可以比较GPU上的矩阵乘法与CPU上的矩阵乘法的性能,可能是GPU上的性能提升。

2 个答案:

答案 0 :(得分:7)

SDK包含matrixMul,它说明了CUBLAS的使用。有关更简单的示例,请参阅CUBLAS manual部分1.3。

matrixMul示例还显示了一个自定义内核,当然这不会像CUBLAS那样好。

答案 1 :(得分:1)

CUBLAS没有必要显示GPU胜过CPU,尽管CUBLAS可能会超越它。如果给出足够大的数据集,许多直接的CUDA实现(包括矩阵乘法)似乎可以胜过CPU,如下所述:

Simplest Possible Example to Show GPU Outperform CPU Using CUDA