Python
numpyかpytorchで複数の行列の掛け算をforループを用いずに同時に行いたいです。

例えば10×100の異なる行列が5個と100×100の行列が一つあるとします。

import numpy as np
a = np.random.rand(5,10,100)
b = np.random.rand(100,100)

aが10×100の異なる5個の行列でbが100×100の行列です。

c= np.zeros((5,10,100))
for i in range(len(a)):
    c[i] = np.dot(a[i],b)

もしくはpytorchで

import torch
c = torch.zeros((5,10,100))
a = torch.randn(5,10,100)
b = torch.randn(100,100)
for i in range(len(a)):
    c[i] = torch.mm(a[i],b)

何か案があれば教えていただけると幸いです。

このようにfor文でなら実現できますがaの個数が5から増えると遅くなってしまいます。
行列bは同じものなので並行して行列の掛け算を行いたいです。