np.add の内部を徹底解剖:Python 呼び出しから SIMD ループまで
Tracing np.add, all the way down
np.add(a, b) は、数値 Python で最も実行されるコードの 1 つです。この記事では、NumPy 2.5.2 のソースコードを追いながら、Python の呼び出しから SIMD カーネルに至るまでの道のりを解説します。ufunc のディスパッチ、__array_ufunc__ によるオーバーライド、型プロモーション、ループ選択、イテレータの使用判断など、内部の仕組みを詳しく見ていきます。
「np.add(a, b) は、数値 Python の中で最も実行されているコードの 1 つかもしれません。そして、私たちの多くは『配列を C で高速に足す』という暗黙のモデルを持っています。そのモデルは正しいのですが、Python の呼び出しから実際に足し算を行うループまでの間には、多くの仕掛けが存在します。」