Skip to main content

Common subexpression elimination for ONNX graphs

Project description

onnx-cse

CI

onnx-cse is a tiny library for common subexpression elimination (CSE) from ONNX models.

Example usage

The onnx_cse package provides a single function:

from onnx_cse import eliminate_common_subexpressions
import onnx

model = onnx.load_model("model.onnx")
# Update model in-place
eliminate_common_subexpressions(model)

Comparisons

It is written in pure Python with minimal dependencies and focuses on being safe, fast, and simple. It differs from similar tools such as onnxoptimizer, onnx-simplifier, and onnxruntimes own CSE-pass in the following ways:

Simplicity

onnx-cse does one thing (CSE) but does it well. The entire library is less then a couple of hundred lines of code and easy to understand for anybody interested.

Performance

From personal experience onnx-cse handily outperforms onnxruntime's CSE pass on very large graphs with small weights (~10k nodes with nested subgraphs) while onnxoptimizer fails to finish its operation on such graphs at all.

Optimization across subgraph boundaries

onnx-cse eliminates subexpressions in subgraphs if they can be replaced with expressions found in the enclosing scope.

Installation

pypi

pip install onnx-cse

conda-forge

Using pixi:

pixi add onnx-cse

or using conda:

conda install onnx-cse

Development

You can install the package in development mode using:

git clone https://github.com/cbourjau/onnx-cse
cd onnx-cse
pixi run pre-commit-install
pixi run postinstall
pixi run test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onnx_cse-0.3.1.tar.gz (80.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onnx_cse-0.3.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file onnx_cse-0.3.1.tar.gz.

File metadata

  • Download URL: onnx_cse-0.3.1.tar.gz
  • Upload date:
  • Size: 80.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for onnx_cse-0.3.1.tar.gz
Algorithm Hash digest
SHA256 d8d91fc0ed751666b925f8908013a31cb7b517e5459ee6f3324477b513c0eded
MD5 c15a8a5ed5bf6020116e7ae6125e460a
BLAKE2b-256 5ffc910d93696d71de84bf99f37b5ed390ff4807e9cf9a15c35d34a7c4e05081

See more details on using hashes here.

Provenance

The following attestation bundles were made for onnx_cse-0.3.1.tar.gz:

Publisher: package.yml on cbourjau/onnx-cse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file onnx_cse-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: onnx_cse-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for onnx_cse-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cfbc6a01182cb1252fbb30fe149bc73adaf5ea0d03d19f74d98da0cde58b6376
MD5 21e1b03f218220c66eb195e05cca0ed4
BLAKE2b-256 921b9b578fef3133eface8891e2f9d3e79c404bb73b64d28cf533f44a9d7a965

See more details on using hashes here.

Provenance

The following attestation bundles were made for onnx_cse-0.3.1-py3-none-any.whl:

Publisher: package.yml on cbourjau/onnx-cse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page