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).
    • 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.1.tar.gz (1.7 MB 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.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (768.6 kB view details)

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

pyluwen-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (769.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyluwen-0.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (770.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyluwen-0.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (769.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pyluwen-0.8.1.tar.gz
Algorithm Hash digest
SHA256 9b300a953940650499da9e0bb2beba14f2946e65168724ce2f5fbead8e6b7174
MD5 3a4c24ea94a79c1336b04cc16f521c5d
BLAKE2b-256 34ea761a09fb523295f58dbbb23266685de23562b968cac37985064acbbe1310

See more details on using hashes here.

Provenance

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

Publisher: release.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.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyluwen-0.8.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 53cfeab6ca18bbbc0da274141eaecb134a525058e11762c11aa8009da6df8449
MD5 85ee67e13278343d95723c91590b7f69
BLAKE2b-256 b6ca56a442cc1124f06dac974ae0f462d154afee6f95543f266dd97f9c585981

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.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.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyluwen-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e2ac10bad8a982f8ce6e918c77c8c578d06e8857a7fcda0ac87c3ad2582ae99
MD5 341de9fda100748b2c408f55f89594bc
BLAKE2b-256 0f609e54a59f7f2b863782159188518ad320367a33a51fa319bc92244e9729d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.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.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyluwen-0.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee4b50ba06d5e41a62b009b3c2e4025a67d733688b46c191f0a39853b966cfa7
MD5 a2f399e637d89cfd140e66da4ea7b6b2
BLAKE2b-256 fdb3962e74bd82f14aa059185a6ff94a051f57877f44023ac7a9b730324ab36e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.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.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyluwen-0.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c23f65a53cbc39555763ec2418446f6bf63808a7070f2ec595ace3587b99b8e
MD5 eb810d4e914b9ab6a122e121e34dec08
BLAKE2b-256 c1d3b21198a9775c64aef2f4d71fc138a71628e9dd2def6a05cf3f9b7057da56

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyluwen-0.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.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