2024/08/11 追記
上記の日時でまたnumpyをインストールしてみましたが、やはり通常のインストールだと遅いままでいした。
公式に説明や警告が無いので意外と認知されていないが、普通にnumpyをインストールすると動作が遅いバージョンがインストールされちゃいます。
どれくらい遅いかというと下記の300*300の行列の特異値分解を100回行う処理の平均実行時間を計測すると...
import time
import numpy as np
np.random.seed(42)
a = np.random.uniform(size=(300, 300))
runtimes = 10
timecosts = []
for _ in range(runtimes):
s_time = time.time()
for i in range(100):
a += 1
np.linalg.svd(a)
timecosts.append(time.time() - s_time)
print(f"mean of {runtimes} runs: {np.mean(timecosts):.5f}s")
普通のnumpy
mean of 10 runs: 5.69588s
早いnumpy
mean of 10 runs: 1.08510s
なんと五倍の差がある。
インストール方法
numpyインストール時にblasのビルドを指定するだけ。
conda install numpy 'blas=*=*accelerate*'
M1ユーザーは是非お試しあれ。