zgemv与dgemv、sgemv的算术强度是否相同?
zgemv 与实型 gemv 的算术强度对比
已知实型矩阵向量乘法(sgemv/dgemv)的算术强度为 0.5 / (1+c)(其中c为常数),我想确认复数版本的zgemv算术强度是否与实型操作一致,以下是我的分析:
- 运算量差异:复数-复数乘法
(a+b*i) * (c+d*i)(i²=-1)等价于(ac - bd) + i*(bc + ad),包含4次乘法和2次加法,总计6次浮点操作;而两个实数相乘仅需1次浮点操作。 - 内存访问差异:加载一个复数需要读取两个双精度数,相比实型操作,内存流量直接翻倍。
综上,zgemv的算术强度约为实型gemv操作的3倍——运算量是实型的6倍,内存流量是实型的2倍,6/2=3,刚好是实型算术强度的3倍。
内容的提问来源于stack exchange,提问作者velenos14
相关产品推荐
相关产品推荐

