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.3.tar.gz (144.6 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.3-cp311-abi3-manylinux_2_28_x86_64.whl (770.7 kB view details)

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

pyluwen-0.8.3-cp310-cp310-manylinux_2_28_x86_64.whl (766.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

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

File metadata

  • Download URL: pyluwen-0.8.3.tar.gz
  • Upload date:
  • Size: 144.6 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.3.tar.gz
Algorithm Hash digest
SHA256 ccd404934a2d95dd6165c5c8aee706631cdf29b0876449441f1ede63cd05a687
MD5 bfd5423dd48164c0e6fabc31b4f21b83
BLAKE2b-256 f6a4710443d316b6304d9bb84f771c66e15edbd7bf1355fe22182caf5bc31bf2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.3.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.3-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyluwen-0.8.3-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 af36fe04a7a5b49ab57b9d6597bdd7a12830998b2ab507f3536314f833261cbd
MD5 3e942d5a1e77bcea20f4004e87c10911
BLAKE2b-256 646b1451e395333e6dc44029a11e38a577d691daa431f41c25da21b21f9ce421

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.3-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.3-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyluwen-0.8.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8861d7f09310cd318c47cce3e2fa1146f2ae846395b62e4e3780ae7d6b719681
MD5 045be27bbce613842effaf4b0b43067c
BLAKE2b-256 5505d24cfc1ca74134586e202074d2a3b181bd9687940c277fd5b288a0e084f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.3-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