Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon JAXのコンピレーション時間との不平等の比較を遅らせるにはどうすればよいですか


JAXのコンピレーション時間との不平等の比較を遅らせるにはどうすればよいですか


JAXのコンピレーション時間との不平等の比較を遅らせるには、JAXのシンボリック操作を利用するためにコードを書き換えることを伴う特定の戦略を使用できます。これを達成するためのいくつかの方法は次のとおりです。

1。 `core.max_dim`および` core.min_dim`を使用します:組み込みの「max`または `min」関数、または` np.max`および `np.min`を使用する代わりに、coreに置き換えることができます.max_dim`および `core.min_dim`。これらの関数は、形状が既知になるまで、不平等比較を遅らせます。たとえば、d> 0 else 0`の場合は `dの代わりに、core.max_dim(d、0)`を記述できます。

2。条件の書き換え: `core.max_dim`および` core.min_dim`を使用して条件を書き直してみてください。このアプローチは、コンパイル時に形状が決定されるまで不平等の評価を遅らせるのに役立ちます。

3.整数の依存関係を避ける:象徴的な次元をほとんどの算術操作の整数として扱うことができるという事実に依存しています。 `int(d) + 5`の代わりに、` d + 5`を書きます。これにより、整数寸法への依存性が低下し、より柔軟なコンピレーションが可能になります。

4.シンボリック制約の指定:可能であれば、編集中に不平等を処理する際にJAXを導くためのシンボリック制約を指定します。これは、必要になるまで比較を遅らせることでコードを最適化するのに役立ちます。

これらの戦略を採用することにより、JAXのコンパイル時間との不平等の比較を効果的に遅らせることができます。これにより、コードの効率と柔軟性が向上します。

引用:
[1] https://inria.hal.science/hal-03431315v2/document
[2] https://docs.jax.dev/en/latest/jit-compilation.html
[3] https://github.com/jax-ml/jax/blob/main/changelog.md
[4] https://docs.jax.dev/en/latest/faq.html
[5] https://arxiv.org/abs/1204.1069
[6] https://github.com/google/jax/blob/main/jax/experimental/jax2tf/readme.md
[7] https://arxiv.org/abs/1602.05281
[8] https://stackoverflow.com/questions/69070804/how-to-reduce-jax-jax-compile-when-using-for-loop