Performance 提高标准矩阵乘法算法的效率?
如何提高标准矩阵乘法算法的效率 这种方法涉及的主要操作是:Performance 提高标准矩阵乘法算法的效率?,performance,algorithm,matrix,Performance,Algorithm,Matrix,如何提高标准矩阵乘法算法的效率 这种方法涉及的主要操作是:C[i][j]+=A[i][p]*B[p][j] 如何提高算法的效率?我建议阅读的第1章,它解决了这个确切的问题。我建议阅读的第1章,它解决了这个确切的问题 缓存阻塞-确保正确使用和重用缓存中的值 更好的算法-按定义乘法矩阵的方法不是最优的,请看 并行化-如果你的机器有多个核心和/或处理器,你可以分而治之 SIMD—利用现代CPU体系结构中的矢量指令 GPGPU—现代GPU经过优化,可以做这类事情。调查和调查 请注意,使用这些方法并不能保
C[i][j]+=A[i][p]*B[p][j]
如何提高算法的效率?我建议阅读的第1章,它解决了这个确切的问题。我建议阅读的第1章,它解决了这个确切的问题
请注意,使用这些方法并不能保证更好的性能。需要进行大量调整,以显著提高速度。有很多钱花在研究如何快速乘法矩阵上,因此这方面的期刊文章并不短缺。如果问题涉及多重矩阵乘法-M1 x M2 x。。。然后还有另一种基于动态规划的优化技术,这是另一种球类游戏。注意,这不适用于提高两个矩阵相乘的效率;但是,如果您以成对方式将三个或更多矩阵相乘,则可以在更高级别上进行优化。我只是想把这个答案扔到堆上,把信息凑成一个整数。如果这个问题涉及多重矩阵乘法-M1 x M2 x。。。然后还有另一种基于动态规划的优化技术,这是另一种球类游戏。注意,这不适用于提高两个矩阵相乘的效率;但是,如果您以成对方式将三个或更多矩阵相乘,则可以在更高级别上进行优化。我想我会把这个答案扔到堆上,把信息凑成一个整体。你可能想看看BLAS(基本线性代数子程序)库的使用情况,特别是Intel提供了他们的MKL,AMD有他们的ACML,还有(开源)Goto BLAS (密集)矩阵乘法内核将是一个
?GEMM
调用,其中?
表示浮点类型。例如,DGEMM
将调用double
例程
除非您非常有信心知道如何使用低级优化,否则这些库可能会提供比手动编写代码更好的性能
如果你真的想自己编码,那么你可能需要考虑以下内容:
CPU
也将支持AVX
指令希望这有帮助。您可能想看看如何使用BLAS(基本线性代数子程序)库,特别是Intel提供的MKL、AMD提供的ACML以及(开源)Goto BLAS (密集)矩阵乘法内核将是一个
?GEMM
调用,其中?
表示浮点类型。例如,DGEMM
将调用double
例程
除非您非常有信心知道如何使用低级优化,否则这些库可能会提供比手动编写代码更好的性能
如果你真的想自己编码,那么你可能需要考虑以下内容:
CPU
也将支持AVX
指令