Skip to main content

A low level hardware debugger

Project description

TT-Lensium :tm:

A low-level hardware debugger

ttnn logo

Ask DeepWiki PyPI

A low-level debugging tool for Tenstorrent hardware that enables direct access to and communication with Wormhole and Blackhole devices.


Quickstart

You can install latest published version with:

pip install tt-exalens

Or specific version with:

pip install tt-exalens=="x.y.z"

Alternatively, you can install the latest code from GitHub with:

pip install git+https://github.com/tenstorrent/tt-exalens.git

The CLI application can be run by invoking the tt-exalens command after installing the wheel.

Running the CLI application

The CLI application can be run via the tt-exalens.py script or by invoking the tt-exalens command after installing the wheel.

The application supports both local and remote device access. For remote connections, a server instance must be started using the same application.

A GDB server can be launched, enabling stepping, breakpoints, and other debugging features via a GDB client.

For more usage information, refer to the tutorial or the documentation.

Using library

The application functionality is also available through the ttexalens Python library, enabling you to create custom scripts that interact with Tenstorrent hardware.

For a quick start with the library, check out the tutorial. Full documentation is also available here.

Development

Setting up environment

The recommended way to manage dependencies is by creating a virtual environment with:

./scripts/create-venv.sh

To activate the created environment, use:

.venv/bin/activate

Alternatively, you can use your existing environment and just install dependencies with:

./scripts/install-deps.sh

Testing

Test requirements

The following dependencies are required to build the necessary kernels:

  • ninja-build,
  • cmake
  • make

Running tests

The easiest way to run all tests locally is by using the make wrapper from the project root directory:

make test

This command will build dependencies, run all tests, create the wheel, and run wheel tests.

If you don't need all of these steps, you can run them manually:

# Compile kernels that tests use
make

# Install runtime dependencies
pip install -r ttexalens/requirements.txt

# Install test dependencies
pip install -r test/test_requirements.txt

# Run library tests
pytest test/ttexalens

# Run CLI application tests
pytest test/app

If you're developing with VSCode (or its derivatives), you can use the Testing extension. Install the Python extension to enumerate all tests within the Testing tab in the activity bar.

Updating documentation

Library documentation is automatically generated from source code docstrings. To update the library documentation, run the following command in your development environment:

make docs

in the project root. For more advanced use cases, refer to the source code of the documentation generation scripts, located in docs/bin.

Static checks

Pre-commit

We have defined various pre-commit hooks that check the code for formatting, licensing issues, etc.

To install pre-commit, run the following command:

pip install pre-commit

After installing pre-commit, you can install the hooks by running:

pre-commit install

Now, each time you run git commit the pre-commit hooks (checks) will be executed.

If you have already committed before installing the pre-commit hooks, you can run on all files to "catch up":

pre-commit run --all-files

For more information visit pre-commit

mypy

We use mypy for static code analysis.

You can use the make wrapper to execute it with:

make mypy

Or run it directly from your development environment with:

mypy

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

tt_exalens-0.3.24-cp313-cp313-manylinux_2_34_x86_64.whl (929.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.24-cp313-cp313-manylinux_2_34_aarch64.whl (895.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.24-cp312-cp312-manylinux_2_34_x86_64.whl (929.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.24-cp312-cp312-manylinux_2_34_aarch64.whl (895.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.24-cp311-cp311-manylinux_2_34_x86_64.whl (930.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.24-cp311-cp311-manylinux_2_34_aarch64.whl (896.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.24-cp310-cp310-manylinux_2_34_x86_64.whl (929.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.24-cp310-cp310-manylinux_2_34_aarch64.whl (895.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

File details

Details for the file tt_exalens-0.3.24-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.24-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2a410a184a0e38f33f74fb35b730c1101743614aa54fd07d012b36136e6d0146
MD5 882259d21d1916e8682fcbff4fd3c971
BLAKE2b-256 49534ec0aefedf2dd69d0106648a59052c894f5dde3d4f087faf40fdef965416

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.24-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: release-version.yml on tenstorrent/tt-exalens

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

File details

Details for the file tt_exalens-0.3.24-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.24-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f6c1bd02fd7de1f9a7054d570ff65da6719f0772eeca79e4e529e9c9b46b11a8
MD5 aaa9a953244a4d52d5127e45b1e2b0f9
BLAKE2b-256 9623b3970794485fa62addd9ebb7102a277f308059b203ba30f732b507f6756e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.24-cp313-cp313-manylinux_2_34_aarch64.whl:

Publisher: release-version.yml on tenstorrent/tt-exalens

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

File details

Details for the file tt_exalens-0.3.24-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.24-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6e0360310373038a7e1ed3e5ed4b24e8e204e5530f6d0cf731b32a5323db1d15
MD5 24fc70943fac64558651bc7bd9a324b2
BLAKE2b-256 f993e41761c826d69d3e03da5a7f83e3b13ef66b44e09ef85ff8685ce765348a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.24-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: release-version.yml on tenstorrent/tt-exalens

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

File details

Details for the file tt_exalens-0.3.24-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.24-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 8879e8ae4839bda87e877dd938fa749075cf5b645ed97d09c79f0ddbb3a10234
MD5 2f8fa691d4f32711078f4c7806fe39ba
BLAKE2b-256 ce5053bee563f01da5a8e8d4e8cbfc993352346377c3611a5964ced24df31c74

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.24-cp312-cp312-manylinux_2_34_aarch64.whl:

Publisher: release-version.yml on tenstorrent/tt-exalens

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

File details

Details for the file tt_exalens-0.3.24-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.24-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ff116aa77ce4b75f537f9157cd835dcf886d499f2d63ea44e2109c4508a28879
MD5 87e0fe44f4a6277e241cee63ffab7a02
BLAKE2b-256 c8fffacb68eacdf7edd9d64333abaebb5ad947b6ac0da80a0bdbbad3c3a24bdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.24-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: release-version.yml on tenstorrent/tt-exalens

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

File details

Details for the file tt_exalens-0.3.24-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.24-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2ad7617e6e9bb1b986aebda86dac1166bc31c059064e841b0e163e2cb9b2c265
MD5 f8fd0d87b25848d8a36cbc412218eda5
BLAKE2b-256 f0cfc617c0ebd0ccb769d702eeb1cf0db760160d14fedb412b7922583438f868

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.24-cp311-cp311-manylinux_2_34_aarch64.whl:

Publisher: release-version.yml on tenstorrent/tt-exalens

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

File details

Details for the file tt_exalens-0.3.24-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.24-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 54956b03275565a9dfe976b7d7769a87d0c66bedb0513be085e07e77d22fe8e0
MD5 8ad9226a33ea2ca52554ed9f900e0bd8
BLAKE2b-256 dc64c0184eddad6b02ae2ebf85ba2c43c2555b7351f83b71346f724cfa54199b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.24-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: release-version.yml on tenstorrent/tt-exalens

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

File details

Details for the file tt_exalens-0.3.24-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.24-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 61dd108ec8e94d26981fd6e503420ff21b60bfb0ad88a2ebfe0d6a0313935468
MD5 70297f6ce889dd05a0783ba7054a35f4
BLAKE2b-256 85f690de8a0c0c280d11d1eb998c94106b7cdab893101a8365c9b1123b0a263e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.24-cp310-cp310-manylinux_2_34_aarch64.whl:

Publisher: release-version.yml on tenstorrent/tt-exalens

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