如何尽快进行矩阵计算

问题描述 投票:0回答:1

纯粹出于我对代码和计算机的了解和理解,我试图创建一个具有多个矩阵函数的数组/矩阵类,然后将其用于需要矩阵或数组类的任何项目中。最重要的是,我想使用此矩阵/数组类创建一个神经网络库,因此要求它尽可能快。

我需要最快的函数是两个矩阵的矩阵乘积计算,但是,我想用较大的矩阵快速进行此计算的运气很小。

我当前计算点积的方法是:

注意,此代码使用python,但是,如果python不是最佳语言,我可以使用其他任何语言

a = [[1, 2, 3], [4, 5, 6]]
b = [[1], [2], [3]]

def dot(a, b):
    c = [[0 for j in range(len(b[i]))] for i in range(len(a))]

    for i in range(len(c)):
        for j in range(len(c[i])):
            t = 0
            for k in range(len(b)):
                t += a[i][k] * b[k][j]
            c[i][j] = t
    return c

print(dot(a, b))
# [[14], [32]]

我研究了英特尔MKL(我具有intel核心i7)和其他BLAS实现,例如OpenBLAS,但是我无法获得任何有效的结果,并且无法通过大量的搜索使其工作,所以我的问题是是,计算两个矩阵的点积的最快方法是什么? (CPU和内存使用情况目前对我而言并不重要,但是,提高效率会很好)

PS:

我正在尝试不使用任何外部库(例如python中的numpy)来完成所有这些工作

纯粹出于我对代码和计算机的了解和理解,我试图创建一个具有多个矩阵函数的数组/矩阵类,然后将其用于需要矩阵的任何项目中……

arrays math matrix matrix-multiplication
1个回答
0
投票

[如果可能,您可以使用CUDA利用GPU进行非常快速的计算。

© www.soinside.com 2019 - 2024. All rights reserved.