Skip to main content

Python bindings for luwen

Project description

Luwen

Named after Antonie van Leeuwenhoek, inventor of the microscope.

documentation crates.io pkg pypi bindings

About

Luwen is a user-mode abstraction layer for accessing Tenstorrent accelerator hardware, designed to be used as a common interface for tooling development across hardware generations. It runs on the host system and manages communication with lower-level drivers and firmware.

Design

There are three supported use cases:

  1. High-level interface to software tooling allowing all syseng diagnostics collectable via tt-smi and tt-mod to be read back and interacted with as a library.
    • Only supports PCIe connections and remote connections via PCI.
    • Ignores implementation details of using communication channels, such as TLB allocation and core selection.
  2. General chip discovery and initialization, replacing create-ethernet-map and tt-smi. Will probably also add the ability to issue resets.
  3. Low-level syseng-only debug capability (via Python bindings, as pyluwen; requires Python 3.10+).
    • To avoid needing to have multiple in-flight stacks, access the implemented communication APIs directly.
    • Direct access to the types defined in luwen-pci, allowing modification of TLBs and cores being used.

Installation

See the included INSTALL.md for detailed instructions on how to build and install Luwen.

Support

Hardware

Luwen officially supports the following Tenstorrent hardware:

  • Wormhole
  • Blackhole

Firmware

Please ensure you have a supported firmware version installed on your device. You can flash the firmware using tt-flash.

[!IMPORTANT]

The current minimum supported firmware version is: v18.

Driver (KMD)

Luwen communicates with your device through a kernel-mode driver. You can find instructions on installing the driver on the project homepage.

[!IMPORTANT]

The current minimum supported driver version is: v2.0.0.

Organization

Cargo — Rust's package manager — allows for a workspace of several crates to be specified within its manifest. Within this project, workspace crates are used with the structure as follows:

./
├── Cargo.lock       # cargo lockfile
├── Cargo.toml       # cargo manifest
├── README.md        # this document
├── ...
├── apps/            # use-case applications
├── bind/            # language bindings
│   ├── libluwen/    # bindings for C++
│   └── pyluwen/     # bindings for Python
├── crates/          # implementation crates
│   ├── luwen-api/   # core generalized API
│   ├── luwen-def/   # common definitions
│   ├── luwen-kmd/   # low-level driver API
│   └── luwen-pci/   # PCI implementation
├── examples/        # application examples
├── src/             # top-level library
└── tests/           # integration tests

License

This project is licensed under Apache License 2.0. You have permission to use this code under the conditions of the license pursuant to the rights it grants.

This software assists in programming Tenstorrent products. Making, using, or selling hardware, models, or IP may require the license of rights (such as patent rights) from Tenstorrent or others.

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

pyluwen-0.8.5.tar.gz (145.1 kB view details)

Uploaded Source

Built Distributions

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

pyluwen-0.8.5-cp311-abi3-manylinux_2_28_x86_64.whl (771.0 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

pyluwen-0.8.5-cp310-cp310-manylinux_2_28_x86_64.whl (766.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

Details for the file pyluwen-0.8.5.tar.gz.

File metadata

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

File hashes

Hashes for pyluwen-0.8.5.tar.gz
Algorithm Hash digest
SHA256 899f20a8aacf2897e294f52f7bcf98c04308def520af714f63af35223ffaa1ec
MD5 0d52c9802b80577c7c8e5e7b63824181
BLAKE2b-256 cddedbdb112dc25ca1231a4f52fc6f8f39cc5dfd40676f44d8005b045a002362

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.5.tar.gz:

Publisher: publish.yml on tenstorrent/luwen

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

File details

Details for the file pyluwen-0.8.5-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyluwen-0.8.5-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 582fc18e1a9743c86e7408e01c2859a9766826b0d0217d2a8940c4968d17538f
MD5 750168f52d7a5162ceac180f35187dce
BLAKE2b-256 c0114dd1aa563e6b0cda73f0ff57bb5574834bcac0926f05a57ce772225ff1b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.5-cp311-abi3-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on tenstorrent/luwen

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

File details

Details for the file pyluwen-0.8.5-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyluwen-0.8.5-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff34a5a30c164a159989d9a25d5ad9499a826e3e06497a9b1f70c3a3b53ff085
MD5 23bc1855602c1eeccb24ade33b08f74d
BLAKE2b-256 5ba785deec6d2e02e46fa2116ce79e70bacff1cc2883c4e27c03dd309e1b511f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.5-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on tenstorrent/luwen

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