This repository contains header-only low-level kernels (LLK) for Tenstorrent AI chips, including Wormhole, and Blackhole.
These kernels serve as foundational compute primitives, acting as building blocks for higher-level software stacks that implement machine learning (ML) operations.
Additionally, the repository includes a test environment designed to validate LLK APIs.
-
Clone the repository
Clone this repository to your local computer.
-
Set up the test environment
Follow the instructions in the testing README to set up the test environment. This will also automatically configure pre-commit hooks for code quality checks.
Test environment requires SFPI compiler for building, which is automatically ingested from https://github.com/tenstorrent/sfpi
The following documentation is available to help you understand and use low-level kernels:
-
Intro A concise introduction to LLKs, designed for both technical and non-technical audiences. This document outlines the scope of the LLK software stack and its relationship to other Tenstorrent software components.
-
Top-level Overview Provides a high-level look at the Tensix Core and Tensix Engine architecture, including data organization for efficient LLK usage and operations supported by LLKs. This document is not tied to any specific chip generation (such as Wormhole) and is aimed at engineers and technical readers who want to understand the general architecture and capabilities.
-
LLK Programming Model This document dives into architectural details to best explain the usage of the LLK API. It is intended for op writers and advanced users, and connects LLK concepts with our runtime stack, tt-metal, providing practical guidance on how to leverage LLKs for efficient kernel development.
We welcome contributions to improve tt-llk! Please follow these steps to get started:
-
Read the Guidelines
Familiarize yourself with our CONTRIBUTING guide and CODE OF CONDUCT.
-
Create a Branch
Create a new branch for your changes.
-
Make Changes
Implement your changes and commit them with clear and descriptive messages.
-
Add Tests
If applicable, add new tests to cover your changes and ensure all existing tests pass.
-
Submit a Pull Request
Open a pull request (PR) to propose your changes for review.
This repo is a part of Tenstorrent’s bounty program. If you are interested in helping to improve tt-llk, please make sure to read the Tenstorrent Bounty Program Terms and Conditions before heading to the issues tab. Look for the issues that are tagged with both 'bounty' and difficulty level labels!
Old LLK repositories:
- https://github.com/tenstorrent/tt-llk-gs
- https://github.com/tenstorrent/tt-llk-wh-b0
- https://github.com/tenstorrent/tt-llk-bh
have been archived. All ongoing development continues in this repository.