Ho un set di n vettori memorizzati nella matrice 3 x nz
. Trovo il prodotto esterno usando np.einsum
. Quando ho cronometrato utilizzando:Che cosa significa "un risultato intermedio viene memorizzato nella cache"?
%timeit v=np.einsum('i...,j...->ij...',z,z)
ho ottenuto il risultato:
The slowest run took 7.23 times longer than the fastest. This could mean that an
intermediate result is being cached
100000 loops, best of 3: 2.9 µs per loop
Quello che sta accadendo qui e può essere evitato? Il miglior 3 è 2,9us, ma il più lento forse più tipico.
Per scopi di test, provare ad aumentare la dimensione 'n', questo ridurrà la frazione di' z' che è memorizzata nella cache della CPU e il messaggio dovrebbe scomparire ad un certo punto –