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.23-cp313-cp313-manylinux_2_34_x86_64.whl (887.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.23-cp313-cp313-manylinux_2_34_aarch64.whl (858.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.23-cp312-cp312-manylinux_2_34_x86_64.whl (887.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.23-cp312-cp312-manylinux_2_34_aarch64.whl (858.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.23-cp311-cp311-manylinux_2_34_x86_64.whl (888.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.23-cp311-cp311-manylinux_2_34_aarch64.whl (859.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.23-cp310-cp310-manylinux_2_34_x86_64.whl (888.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.23-cp310-cp310-manylinux_2_34_aarch64.whl (859.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

File details

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

File metadata

File hashes

Hashes for tt_exalens-0.3.23-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7e5c9f378cef53a4fd4ea4904f1604159f825299c3c393b2e0c61e9a13e36f5e
MD5 23b949b319b54e4b117df764e36c1649
BLAKE2b-256 f43a0e74cbb0b9ab1ce4520bd7996a7497f010b2489b570c15f45f364f595276

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.23-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.23-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.23-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f24acc03b7ad8997be373e2144d522e2914a450f530618794ff1f06d01ee3255
MD5 9b0c2e84eebc6969e49c29c27edbd8e9
BLAKE2b-256 b408a229d9fd03f807f1d5a0e9e85230b9fdb8229b852090dc9285b7bc6344c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.23-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.23-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.23-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 22672fa99e29217301d582aa4140fca613a9663b4673083a86150507307546d6
MD5 300063d55b33a10026b26378ca368d6e
BLAKE2b-256 88cf722a63a863dbaef9071193f4f0a767b637b057d14b162ea171d533a17f79

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.23-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.23-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.23-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9e5e914bb61eb201ea1da67883ac671ae1e32edd0a3bee8f0eb1dab597a2d8ae
MD5 75c395f5efcbadb3a8862b634fa23608
BLAKE2b-256 03455362886a69d2f37ef0b9e7dfc296fa13dcf4ba15a61967cac59bd736f824

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.23-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.23-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.23-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 95b2ee3cd6703d84fa0714f03fee1a0f356a0c3cd1835416b7f90259ff304c05
MD5 46585378f4da0f0af9104cd233ec1efc
BLAKE2b-256 5545744eae763b7ffa3a7c49b35cce000ba19faca8a0716da63c725350f9dd99

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.23-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.23-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.23-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 621bf1254ad10ec745efa23b912b014c5386b0820c9213247c6318d094752e93
MD5 f9966cce4ad19acc60737584da34fd10
BLAKE2b-256 17ee4a8983e8657c95a8eb82535f0b1bcb59a45ed6f798f846bf4ed1a020f18b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.23-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.23-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.23-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2550979dcb31e09a34952d4dfc1ee860733dd67a89124fd4bd006f9e7304fadd
MD5 4bfa789d0c934162898be18aa5986001
BLAKE2b-256 cf6a910d9be06e48f23ff1fd9c18f5421b41e13dd48f5b3922472dd7216e400b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.23-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.23-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for tt_exalens-0.3.23-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9615f47a63fdac88d37ebafff5d6715fd19eece7905cb224d1564e99a4404a4d
MD5 c0835f149e16ccb4da5a3c5470269a40
BLAKE2b-256 2508e5ba1a4b8a7e5664591be6e7981c1fdd4cd90df685858e9a8b7b156ac367

See more details on using hashes here.

Provenance

The following attestation bundles were made for tt_exalens-0.3.23-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