Numba räumen viele numpy Funktionen in reinem Python und verwendet LLVM, um sie zu kompilieren, was zu einer allgemein effizienten Leistung führt. Einige Numba-Implementierungen zeigen jedoch eine langsamere Leistung im Vergleich zu ihren optimierten Numpy-Kollegen wie Numph.sort ().import numpy as np
from numba import njit, objmode
# Original numpy.sort()
def sort_numpy(arr: np.ndarray) -> np.ndarray:
return np.sort(arr)
# Wrapped numpy.sort() in objmode
@njit(cache=True)
def sort_numpy_obj_njit(arr: np.ndarray) -> np.ndarray:
out = np.empty_like(arr)
with objmode:
out[:] = sort_numpy(arr)
return out
< /code>
Leider kann sich jedes Mal, wenn der Kernel neu gestartet wird, die Speicheradresse (Funktionszeiger) von NP.Sort ändern. Dies führt zur Neukompilierung der zwischengespeicherten Funktion, da der Caching -Mechanismus von Numba auf konsequente Funktionszeiger beruht. Das Caching auf Festplatte ist nur innerhalb einer einzelnen Python -Sitzung wirksam.>
Wie wickle ich Numpy-Funktionen in den Numba-Jitten-Code mit persistierendem Festplattenspeichern ein? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Wie kann ich eine Methode zum Ausführen auf einer GPU mit Numba kompilieren?
by Anonymous » » in Python - 0 Replies
- 10 Views
-
Last post by Anonymous
-