小编Lin*_*nus的帖子

为什么 numpy 矩阵乘法计算时间在 100x100 时增加一个数量级?

当使用 numpy 计算A @ a其中A是随机 N × N 矩阵并且 a 是具有 N 个随机元素的向量时,计算时间在 N=100 时会跳跃一个数量级。这有什么特别的原因吗?作为比较,在CPU上使用torch进行相同的操作有更逐渐的增加矩阵向量乘法计算时间

\n

用 python3.10 和 3.9 和 3.7 尝试过,具有相同的行为

\n

用于生成绘图的 numpy 部分的代码:

\n
import numpy as np\nfrom tqdm.notebook import tqdm\nimport pandas as pd\nimport time\nimport sys\n\ndef sym(A):\n    return .5 * (A + A.T)\n\nresults = []\nfor n in tqdm(range(2, 500)):\n    for trial_idx in range(10):\n        A = sym(np.random.randn(n, n))\n        a = np.random.randn(n)        \n        \n        t = time.time()\n        for i in range(1000):\n            A @ a\n …
Run Code Online (Sandbox Code Playgroud)

python numpy linear-algebra numerical-computing

19
推荐指数
1
解决办法
759
查看次数