gpt4 book ai didi

algorithm - 如何尽可能快地进行矩阵计算

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:49 29 4
gpt4 key购买 nike

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

我要求最快的函数是两个矩阵的矩阵乘积计算,但是,我在尝试使用较大的矩阵快速进行此计算时运气不佳。

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

请注意,这段代码是用 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]]

我研究了 Intel MKL(我有一个 intel core i7)和其他 BLAS 实现,比如 OpenBLAS,但是我没有得到任何有效的结果,而且没有多少谷歌搜索可以使它们工作,所以我的问题是,计算两个矩阵的点积的最快方法是什么? (CPU 和内存使用率目前对我来说并不重要,但是,效率更高会更好)

附言:

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

***** 更新 *****

我用的是苹果

***** 更新 2 *****

谢谢大家的帮助,但是,我不确定如何实现这些计算点积的方法,因为我的数学技能还不够先进,无法理解其中的任何含义(我还没有开始我的GCSEs),尽管我会牢记这些想法并将进一步试验这些想法。

再次感谢大家的帮助。

最佳答案

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

关于algorithm - 如何尽可能快地进行矩阵计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58616134/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com