私は Cython で最初のステップを実行していますが、パフォーマンスをさらに向上させる方法を考えています。今までは通常の (python のみの) 実行時間の半分になりましたが、もっとあるに違いないと思います!
私は知っcython -a
ていて、すでに変数を入力しました。しかし、私の機能にはまだ多くの黄色があります。これは、cython が numpy を認識しないためですか、それとも他に何か不足していますか?
私は Cython で最初のステップを実行していますが、パフォーマンスをさらに向上させる方法を考えています。今までは通常の (python のみの) 実行時間の半分になりましたが、もっとあるに違いないと思います!
私は知っcython -a
ていて、すでに変数を入力しました。しかし、私の機能にはまだ多くの黄色があります。これは、cython が numpy を認識しないためですか、それとも他に何か不足していますか?
スカラーで np.sqrt および np.floor を呼び出しているため、libc の数学関数を使用することでメリットが得られると思います。これには Python 呼び出しのオーバーヘッドがあるだけでなく、スカラーと配列の numpy ufunc に異なるコード パスがあります。したがって、少なくとも型スイッチが必要です。
公式のチュートリアルでテストしたので、問題ではないと思います。また、すべての np.* 行で黄色として報告され、コードと同じように python が含まれます。
そのページの最後にあるポイント 3 は、これを説明しているはずです。
現在、NumPy/SciPy 関数の呼び出しには Python 呼び出しのオーバーヘッドがあります。Cython から C に直接ショートカットすることも可能です (ただし、これには、これらのライブラリにいくつかの個別の増分変更が必要です。詳細については、Cython メーリング リストにメールしてください)。