现在想要做的是
假设有矩阵 A,B,C,...J共约10个
要与同样数量shape的矩阵a,b,c,...,j
每个shape大约是 (3500,2500,3)
做 A*a + B*b + C*c +...+ J*j
点对点相乘再全部加总
所以出来的结果也是一个(3500,2500,3)的矩阵
该怎么做最快呢 @[email protected]"
type都是numpy array,尝试了几种方法
1. 直接使用np multiply方法再相+
当然这是最慢的, 要好多秒
2. 使用numexpr把"A*a+B*b+.."的算式写在evaluate里面
这个很强 快超多 大概30%以上 但还是不够快
3. 使用Cupy
这个当然是最快的 可是存在一个问题
我把20个矩阵用cp.array()转到cupy
计算完后用cp.asnumpy()转回来
这两个过程满耗时的 加起来又比上面两个慢了 Q.Q
目前尝试了上面三种方法 都没办法达到理想的速度
假设在 i5-7400CPU , 16G内存 , 1050Ti的GPU上
有方法可以达到一秒钟计算50次 甚至100次吗 ??
希望版上的计算达人们指教还是小蛇的小鲁 >///<