当使用 numpy 计算A @ a其中A是随机 N × N 矩阵并且 a 是具有 N 个随机元素的向量时,计算时间在 N=100 时会跳跃一个数量级。这有什么特别的原因吗?作为比较,在CPU上使用torch进行相同的操作有更逐渐的增加
用 python3.10 和 3.9 和 3.7 尝试过,具有相同的行为
\n用于生成绘图的 numpy 部分的代码:
\nimport 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)