zoukankan      html  css  js  c++  java
  • CUDA矩阵乘法计算验证

    前面讲了使用CUDA进行矩阵乘法,如何判断计算是否正确呢,因为矩阵很大。这里采用的方法时将一部分数据采样出来输出到文本中查看结果

    在矩阵乘法函数中加入如下测试:

    extern "C" void MatrixMultiplication_CUDA(const float* M,const float* N,float* P,int Width)函数中加入如下代码,注意加在显卡设备数据复制到内存后。

     1 //测试计算结果用
     2     FILE* file1 = fopen("test_M.txt","w");
     3     FILE* file2 = fopen("test_N.txt","w");
     4     FILE* file3 = fopen("test_P.txt","w");
     5     for(int i=0;i<1024;i++) //输出前1024个元素
     6     {
     7         fprintf(file1,"%f ",M[i]); //输出M第一行
     8         fprintf(file2,"%f ",N[i*1024]); //输出N第一列
     9         fprintf(file3,"%f ",P[i]);
    10         if(0==(i+1)%5)
    11         {
    12             fprintf(file1,"\n");
    13             fprintf(file2,"\n");
    14             fprintf(file3,"\n");
    15         }
    16     }
    17     fclose(file1);
    18     fclose(file2);
    19     fclose(file3);

    为了方便测试,将需要计算的矩阵M和N每个元素都赋1.5。

    结果如下:

    可以计算下数组P的元素大小:1.5*1.5*1024=2304。因此由测试可知使用GPU设备计算时准确的。但GPU设备只不支持double数据,如果对精度要求很高的话,可能会有点问题。

  • 相关阅读:
    java连接Ldap
    REGEXP_LIKE,REGEXP_INSTR,REGEXP_SUBSTR,REGEXP_REPLACE
    正则表达式学习笔记
    旋转的播放按钮
    折叠table中的tr
    css选择器.md
    清除浮动.md
    jquery-validate使用.md
    EL表达式.md
    C标签的使用.md
  • 原文地址:https://www.cnblogs.com/Romi/p/2506886.html
Copyright © 2011-2022 走看看