Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

cuTile Python

cuTile Python is a programming language for NVIDIA GPUs. The official documentation can be found on docs.nvidia.com, or built from source located in the docs folder.

Example

# This examples uses CuPy which can be installed via `pip install cupy-cuda13x`
# Make sure cuda toolkit 13.1+ is installed: https://developer.nvidia.com/cuda-downloads

import cuda.tile as ct
import cupy
import numpy as np

TILE_SIZE = 16

# cuTile kernel for adding two dense vectors. It runs in parallel on the GPU.
@ct.kernel
def vector_add_kernel(a, b, result):
    block_id = ct.bid(0)
    a_tile = ct.load(a, index=(block_id,), shape=(TILE_SIZE,))
    b_tile = ct.load(b, index=(block_id,), shape=(TILE_SIZE,))
    result_tile = a_tile + b_tile
    ct.store(result, index=(block_id,), tile=result_tile)

# Generate input arrays
rng = cupy.random.default_rng()
a = rng.random(128)
b = rng.random(128)
expected = cupy.asnumpy(a) + cupy.asnumpy(b)

# Allocate an output array and launch the kernel
result = cupy.zeros_like(a)
grid = (ct.cdiv(a.shape[0], TILE_SIZE), 1, 1)
ct.launch(cupy.cuda.get_current_stream(), grid, vector_add_kernel, (a, b, result))

# Verify the results
result_np = cupy.asnumpy(result)
np.testing.assert_array_almost_equal(result_np, expected)

More examples can be found at Samples and TileGym.

System Requirements

cuTile Python generates kernels based on Tile IR which requires NVIDIA Driver r580 or later to run. Furthermore, the tileiras compiler (version 13.2) only supports Blackwell GPU and Ampere/Ada GPU. Hopper GPU will be supported in the coming versions. Checkout the prerequisites for full list of requirements.

Installing from PyPI

cuTile Python is published on PyPI under the cuda-tile package name and can be installed with pip:

pip install cuda-tile[tileiras]

The optional tileiras dependency installs the tileiras compiler directly into your python environment.

If you do not want to have tileiras inside the python environment, run

pip install cuda-tile

and install CUDA Toolkit 13.1+ separately.

On a Debian-based system, use apt-get install cuda-tileiras-13.2 cuda-compiler-13.2 instead of apt-get install cuda-toolkit-13.2 if you wish to avoid installing the full CUDA Toolkit.

Building from Source

cuTile is written mostly in Python, but includes a C++ extension which needs to be built. You will need:

  • A C++17-capable compiler, such as GNU C++ or MSVC;
  • CMake 3.18+;
  • GNU Make on Linux or msbuild on Windows;
  • Python 3.10+ with development headers (venv module is recommended but optional);
  • CUDA Toolkit 13.1+

On an Ubuntu system, the first four dependencies can be installed with APT:

sudo apt-get update && sudo apt-get install build-essential cmake python3-dev python3-venv

The CMakeLists.txt script will also automatically download the DLPack dependency from GitHub. If you wish to disable this behavior and provide your own copy of DLPack, set the CUDA_TILE_CMAKE_DLPACK_PATH environment variable to a local path to the DLPack source tree.

Unless you are already using a Python virtual environment, it is recommended to create one in order to avoid installing cuTile globally:

python3 -m venv env
source env/bin/activate

Once the build dependencies are in place, the simplest way to build cuTile is to install it in editable mode by running the following command in the source root directory:

pip install -e .

This will create the build directory and invoke the CMake-based build process. In editable mode, the compiled extension module will be placed in the build directory, and then a symbolic link to it will be created in the source directory. This makes sure that the pip install -e . command above is needed only once, and recompiling the extension after making changes to the C++ code can be done with make -C build which is much faster. This logic is defined in setup.py.

Experimental Features (Optional)

cuTile now provides an experimental package containing APIs that are still under active development. These are not part of the stable cuda.tile API and may change.

To enable the experimental features when working from a source checkout, install the experimental package from the repository root:

pip install ./experimental/tile_experimental

You can also install it directly from a GitHub repository subdirectory:

pip install \
  "git+https://github.com/NVIDIA/cutile-python.git#egg=cuda-tile-experimental&subdirectory=experimental/tile_experimental"

For example, this will make the experimental namespace available for autotuner:

from cuda.tile_experimental import autotune_launch, clear_autotune_cache

Running Tests

cuTile uses the pytest framework for testing. Tests have extra dependencies, such as PyTorch, which can be installed with

For Python non-free-threading build:

pip install -r test/requirements.txt

Or for Python free-threading build:

pip install -r test/requirements-ft.txt

The tests are located in the test/ directory. To run a specific test file, for example test_copy.py, use the following command:

pytest test/test_copy.py

Copyright and License Information

Copyright © 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.

cuTile-Python is licensed under the Apache 2.0 license. See the LICENSES folder for the full license text.

Release files for cuda-tile 1.6.0rc9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for cuda-tile 1.6.0rc9
File
cuda_tile-1.6.0rc9-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
cuda_tile-1.6.0rc9-cp314-cp314t-manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc9-cp314-cp314t-manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc9-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
cuda_tile-1.6.0rc9-cp314-cp314-manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc9-cp314-cp314-manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc9-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
cuda_tile-1.6.0rc9-cp313-cp313-manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc9-cp313-cp313-manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc9-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cuda_tile-1.6.0rc9-cp312-cp312-manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc9-cp312-cp312-manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc9-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
cuda_tile-1.6.0rc9-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc9-cp311-cp311-manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc9-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
cuda_tile-1.6.0rc9-cp310-cp310-manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc9-cp310-cp310-manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details

Total release size: 6.7 MB

Release files / cuda_tile-1.6.0rc9-cp314-cp314t-win_amd64.whl

Download URL cuda_tile-1.6.0rc9-cp314-cp314t-win_amd64.whl
Size 365.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
1beae5d4f5eddd7eb8dd1423161149a423b719afbf90e9c5c26b63354ab59a7b
BLAKE2b-256 checksum
How to use checksums
caf73520a6c8fb772331a3f8827294952f48f9efc5859ccf2290c0e0d8aedebc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp314-cp314t-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc9-cp314-cp314t-manylinux2014_x86_64.whl
Size 383.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
159359621d99d2843fe7391e038773b21638b8edd9838ba7de904c442ee143a0
BLAKE2b-256 checksum
How to use checksums
77fbc4b654813ebe960b712563c8a883439ed81e4fcdaf8e777404e58b5e566e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp314-cp314t-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc9-cp314-cp314t-manylinux2014_aarch64.whl
Size 380.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d55d4cd3a488a73d3652682229a883b2aadb41566c600287cd97bd6d59a2e0d2
BLAKE2b-256 checksum
How to use checksums
d649901250c983878afe7712f301765398744925d19b2058ec18f5a25736416a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp314-cp314-win_amd64.whl

Download URL cuda_tile-1.6.0rc9-cp314-cp314-win_amd64.whl
Size 356.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9ee59a5fd793fbffa071ecb3a0de5481ab0e109c216475d01f591ab1df88dc52
BLAKE2b-256 checksum
How to use checksums
b3ef282cf50ced262164b6f75fac8c1737b495487219c782f2584ab604bee32b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp314-cp314-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc9-cp314-cp314-manylinux2014_x86_64.whl
Size 383.2 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8f6c2b0cc27019dac6ce2b5371d4cca4c2664dcd5915c5e7cacfa67cc25f329c
BLAKE2b-256 checksum
How to use checksums
ac29a4655261e9da19ec2a3a80ba92f46eb4001b0653153b099b3bbee472293f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp314-cp314-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc9-cp314-cp314-manylinux2014_aarch64.whl
Size 379.1 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
e752b04ead911290d7e0214ab025ab04d4f861c52cad456f86ff5c1493cfe9d6
BLAKE2b-256 checksum
How to use checksums
4ce8de9324c7943b4d931beaaf60a6d878de47a9800fe3e11f877036c5300693
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp313-cp313-win_amd64.whl

Download URL cuda_tile-1.6.0rc9-cp313-cp313-win_amd64.whl
Size 354.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
5128a2c4333977efce089977943caba811e453ffe2d430f3bada6d14c7b509f9
BLAKE2b-256 checksum
How to use checksums
05e14422fed67fa1dae77d9b0c0d166c4ddc2281a242d5c35316087e95a89fdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp313-cp313-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc9-cp313-cp313-manylinux2014_x86_64.whl
Size 382.2 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
09f751c5ca16660f58ca59bd590f6c184adff57695acd01d6eca2e41316f8646
BLAKE2b-256 checksum
How to use checksums
d597491ab05b45525f0cd70053e77db54a204bf0067a04b06e9299fbf6a46295
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp313-cp313-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc9-cp313-cp313-manylinux2014_aarch64.whl
Size 378.6 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
078843c6f741c6911d6183076ef1441c5c0220b681ca256fd411fa3f10e2b150
BLAKE2b-256 checksum
How to use checksums
64147388b7c23347892422feaef6945a4f3c602cc412194ffde3a501786473b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp312-cp312-win_amd64.whl

Download URL cuda_tile-1.6.0rc9-cp312-cp312-win_amd64.whl
Size 354.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
097f8b75eec8566bfefe090bb801d75e01507b577c3caaed2bc2136b0065dc92
BLAKE2b-256 checksum
How to use checksums
140a9289a6e39275564e80d0995a285c9d5f1a64c19ea33a786531cab52e1e3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp312-cp312-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc9-cp312-cp312-manylinux2014_x86_64.whl
Size 382.2 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
451722dca9753de0369f90bee58fdd21c4fb9bd21790148a3a63bc65b198644d
BLAKE2b-256 checksum
How to use checksums
b2f9787a2b090704f5120f171d585d3d47b33589a7ed3aa9cf7f99785fa82282
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp312-cp312-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc9-cp312-cp312-manylinux2014_aarch64.whl
Size 378.6 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
94bd9dad409da29ac832ae68865c333f4dc49bdb9ea27792305f61b2d8e9cab7
BLAKE2b-256 checksum
How to use checksums
299a9404ed8aab6757cc3bc2f7cc99a4eafd17c2b8a7a34f39de4e1b87603fb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp311-cp311-win_amd64.whl

Download URL cuda_tile-1.6.0rc9-cp311-cp311-win_amd64.whl
Size 353.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f15ef6c003b8d059de4dd69fc100f975c5d0bf526bbebe2e00e2b8645feb855a
BLAKE2b-256 checksum
How to use checksums
3721ad95af6b3a87655e8077d10976325744e59031b4908cfb403e2a607e374d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp311-cp311-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc9-cp311-cp311-manylinux2014_x86_64.whl
Size 382.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
55997eb186e4549e58aad163f9a487c4ab07ed50d6f1ef7bd5323f6cc17ddb33
BLAKE2b-256 checksum
How to use checksums
6b44e24187bc9b560b9b4a8e03e3e6caa8dfe53fcea798240b275d349640f4f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp311-cp311-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc9-cp311-cp311-manylinux2014_aarch64.whl
Size 378.9 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
56bba076ce247b2b17430b30dfd36abca3d19684cec28968b2677a36bbb25546
BLAKE2b-256 checksum
How to use checksums
7025d812d4ed25d8fe822fa0b33af8567bb3e837c5f9186cc07a3a75c0023609
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp310-cp310-win_amd64.whl

Download URL cuda_tile-1.6.0rc9-cp310-cp310-win_amd64.whl
Size 353.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
07c6df7b096ff7e12b49a80f4bcc0932c26dcdba580cf4290b60c98826f346e4
BLAKE2b-256 checksum
How to use checksums
fbda54cba8f7d586678a50dcd4d3d0d5fbda0a9749a201f14405f270660bfb82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp310-cp310-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc9-cp310-cp310-manylinux2014_x86_64.whl
Size 382.5 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c1d29ace39c4583a6d85d25a7e9ce58b15a5c312bdf68e2828a4b2dce3d7e7e5
BLAKE2b-256 checksum
How to use checksums
bdfc7883b3944c3b2437bece32e534ea24b29b67a56a5a1e7f4a09c02a115b2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuda_tile-1.6.0rc9-cp310-cp310-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc9-cp310-cp310-manylinux2014_aarch64.whl
Size 379.2 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
98d558d6ce7ec3894b555eaefaabcec5d8b516e253d8f8b9d457ddcf8fa29472
BLAKE2b-256 checksum
How to use checksums
3eee98ce1c22a1eb46a82fee6ec2e45cca941b26ed1c8e326fe396b272171f40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page