Wie wickle ich Numpy-Funktionen in den Numba-Jitten-Code mit persistierendem Festplattenspeichern ein?Python

Python-Programme
Anonymous
 Wie wickle ich Numpy-Funktionen in den Numba-Jitten-Code mit persistierendem Festplattenspeichern ein?

Post by Anonymous »

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.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post