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

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.25-cp313-cp313-manylinux_2_34_aarch64.whl (894.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.25-cp312-cp312-manylinux_2_34_x86_64.whl (929.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.25-cp312-cp312-manylinux_2_34_aarch64.whl (894.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.25-cp311-cp311-manylinux_2_34_x86_64.whl (929.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.25-cp311-cp311-manylinux_2_34_aarch64.whl (895.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

tt_exalens-0.3.25-cp310-cp310-manylinux_2_34_x86_64.whl (929.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

tt_exalens-0.3.25-cp310-cp310-manylinux_2_34_aarch64.whl (895.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

File details

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

File metadata

File hashes

Hashes for tt_exalens-0.3.25-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3df21a98f348b1295eb324c8110d3ca03166c3b2b9b6c05b068f8d3b64ef710f
MD5 59889f8aa6a6eaa1594cca94b53f713c
BLAKE2b-256 3aae80c83d7a60476855da85011a791e1dca93d30a619e1181d3d805b56fb6e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tt_exalens-0.3.25-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9bb428df561928a36d6127283ebf150bd63e93a9d269ed6ff9cdd3b21747f3be
MD5 34ffac19e206e0637d9c52f42fb8d09b
BLAKE2b-256 0eecb2f920f5217e3a4673a6167c643cb9022269943a1822f592ebee0f8ab1ea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tt_exalens-0.3.25-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 801be90d45a1947c7c65986c52eafac1433db9f852d33949bb1e897a6e908c3c
MD5 f8cda5fa375035e65687c05a8a30caf7
BLAKE2b-256 cc023c4cbddcefe63d8329647d79d164acddcd9e11fae9b0437c5bf887c035e4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tt_exalens-0.3.25-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a269e5e088acee13b5994d5fc1d74c4b2e8dde142da57dfeca8f936f41d81399
MD5 15d8e0fd4606e010846a9fe88a713729
BLAKE2b-256 648cf48e62a3987e30b202b26c382726f719329771dd6eb9119638759e823eb3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tt_exalens-0.3.25-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0e83d08748f0ed608ce5ec42a54541040f46c8f808e1365c8b5eea8348e53a8c
MD5 b4dfb025dbf5d834ab9cfe345dafd102
BLAKE2b-256 b87b8d6a67d443b1804a6fcc543670ec3427a090b80eb18f363f87d8ec4bc7e4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tt_exalens-0.3.25-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d024b9a7d5891c308a054bf18ed65fd53e05471d1219980810d8d221ad7c5336
MD5 19d300261ee7f66127951015f0bdb467
BLAKE2b-256 645e8fac6cf1afaa879157b3001f2d3947d8a78976ab1902e8e67a28c47d38b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tt_exalens-0.3.25-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 741bd17a1e6957c7ed9e90e53e18aa54c2673357899d7f560bc69a3d3dfc90c0
MD5 7cc0431e7723e33a8cc6ad2be00ad576
BLAKE2b-256 17e9c43914fd5a9f3cc72569a1f27eb3f6ebaea9cd2a44b3e51b0c3d69a602bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tt_exalens-0.3.25-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e4dd1a63b7cdb7e33dbd675b475834da7073fd4ce0cbf1949a475b45352cdf0e
MD5 e19f29fbd0be45ea20f39b71c4450b74
BLAKE2b-256 9f98685c6f9c4ce88cffa8326180efcea80ae9186aa60176bcaf035928eb6f47

See more details on using hashes here.

Provenance

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