Rastreando np.add hasta el núcleo SIMD
Tracing np.add, all the way down
np.add(a, b) es una de las operaciones más ejecutadas en Python numérico, pero ¿qué ocurre realmente entre la llamada y el bucle que suma? Este artículo desmenuza el camino completo en NumPy 2.5.2: desde el protocolo vectorcall y el chequeo de __array_ufunc__, pasando por la promoción y despacho de tipos, hasta la elección entre el bucle trivial y el iterador NpyIter, y finalmente el bucle interno DOUBLE_add. Con código fuente real y ejemplos prácticos, el autor explica cómo NumPy decide qué bucle usar, cómo maneja la memoria y cuándo libera el GIL, ofreciendo una visión única de los entresijos de esta librería esencial.
El bucle interno nunca comprueba nada, solo calcula y establece los flags de la CPU.