在利用profiler测1024x1024矩阵乘法时,我观测了四个测量值分别是”Flops(Double FMA)(Double- precision floating point multiply accumulate operations executed)“:1074790400,
“Flops(Double)(Double-precision floating point operations executed”:2149580800,
“Flops(Double Add)(Double-precision floating point add operations )”:0,
“Flops(Double Mul)(Double-precision floating point multiply operations”:0;
理论计算1024x1024矩阵乘法乘加运算:2x1024x1024x1024=2.147484e9;
这里的Flops指的是统计指令次数。
由以上知道GPU计算的时候这里的乘法和加法应该没有完全组合成乘加,那么它又是怎样完成没有组合成乘加的计算操作呢(这里的乘法操作为0,加法操作为0)?
还有这里的Flops(Double)包括哪些双精度浮点操作呢(它多于FMA,而FAdd,FMul为0)?
楼主您好,
无公开此方面的信息。
但是一般的,DP的FLOAT指令应该算上FMA + FADD + FMUL + 比较大小 + 绝对值 + 其他操作等等。还是有很多的。
你说呢。
感谢来访。
嗯嗯,谢谢版主。
GPU计算的时候这里的乘法和加法应该没有完全组合成乘加,那么它又是怎样完成没有组合成乘加的计算操作呢(这里的乘法操作为0,加法操作为0)?这个官方也没有公开吗?
LZ您好:
您这里的统计结果表明:
1:这里的双精度乘法和加法都组合成了乘加(FMA)
2:一次FMA算两个floating point operation
3:您的统计的floating point operation数量和您的理论估算数量基本一致
我之前在某帖中说“矩阵乘法中的乘法好加法可能不能完全组合成FMA”当时是基于个人的判断,但是实际上cublas做的更好,全部组合了,请以实际情况为准。
祝您好运~
谢谢ice:)
不客气的,欢迎您常来~