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.0rc10

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.0rc10
File
cuda_tile-1.6.0rc10-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
cuda_tile-1.6.0rc10-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.0rc10-cp314-cp314t-manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc10-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
cuda_tile-1.6.0rc10-cp314-cp314-manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc10-cp314-cp314-manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc10-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
cuda_tile-1.6.0rc10-cp313-cp313-manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc10-cp313-cp313-manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc10-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cuda_tile-1.6.0rc10-cp312-cp312-manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc10-cp312-cp312-manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc10-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
cuda_tile-1.6.0rc10-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc10-cp311-cp311-manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
cuda_tile-1.6.0rc10-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
cuda_tile-1.6.0rc10-cp310-cp310-manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
cuda_tile-1.6.0rc10-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.0rc10-cp314-cp314t-win_amd64.whl

Download URL cuda_tile-1.6.0rc10-cp314-cp314t-win_amd64.whl
Size 365.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
c2d2e8ed93388e509087abf692ed4cfaf88847c6b84c4392b878bf498419fc30
BLAKE2b-256 checksum
How to use checksums
906b43bcd4be8a0476a41d92072c1e62ffbbe7944ebed5837554130ed73c5478
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.0rc10-cp314-cp314t-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc10-cp314-cp314t-manylinux2014_x86_64.whl
Size 383.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e33392739770fb761844f9077b941f8a95dc739c59509ef3a3cd0d18964456c8
BLAKE2b-256 checksum
How to use checksums
af1d4d2d01ba7a42e59bb7d09363516e7d169247a3f48c7b3d6bcaf5920d7957
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.0rc10-cp314-cp314t-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc10-cp314-cp314t-manylinux2014_aarch64.whl
Size 380.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8ec157f2563123a74a379a18490ef125a351c46225a06578bb82caf17eaaef60
BLAKE2b-256 checksum
How to use checksums
21575f3462509aff097b9c0dafbc05dd0a9b5f28f610a7a547c044e1fd2fafdf
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.0rc10-cp314-cp314-win_amd64.whl

Download URL cuda_tile-1.6.0rc10-cp314-cp314-win_amd64.whl
Size 356.4 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
072b34e0d07335586b38de251d1b878af3e671671a31db038806f578ecf12077
BLAKE2b-256 checksum
How to use checksums
82ede3b25480d77675e99f90614ed15bb80ba13cb1d2dfa29c818e9d60f35f64
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.0rc10-cp314-cp314-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc10-cp314-cp314-manylinux2014_x86_64.whl
Size 383.4 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3b03d4e1aa74c27bcde2dbf016f30969bbee712d78326df60758ef0f3bb85e11
BLAKE2b-256 checksum
How to use checksums
90e42f3a2e2f2bbb3615753984edad569eaaf5ead94f274437b358b05024da8a
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.0rc10-cp314-cp314-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc10-cp314-cp314-manylinux2014_aarch64.whl
Size 379.0 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
38ced88a99d67335f4a502149a4e319cd902df9ac0de5300ed8b3bab313d6dc1
BLAKE2b-256 checksum
How to use checksums
178db0ef348aac1117fc254eb33972be64de1cfc047d7b62d1c4eae384e75fcf
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.0rc10-cp313-cp313-win_amd64.whl

Download URL cuda_tile-1.6.0rc10-cp313-cp313-win_amd64.whl
Size 354.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
c3cf15b070d0f19ebc9dfdc412518713cddb66ed1ccb9b93632427c3906fcbbf
BLAKE2b-256 checksum
How to use checksums
246e443f5713204be489cde530a29089e7033d103fae869eb926048be02e1654
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.0rc10-cp313-cp313-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc10-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
b241ee0e355ced80f3e2e15481610c60ba4928748656e870081b3fdf5c420a35
BLAKE2b-256 checksum
How to use checksums
68f38ce705869e7f3137b228ad9ae0ce92e9ba16478e51a7c0d86e1ed5df9d89
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.0rc10-cp313-cp313-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc10-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
836786d885e7a38a46a648e7db8960b77ffbe671502dbf55b98d7d1867be3038
BLAKE2b-256 checksum
How to use checksums
dffc8b33390b9b119ff922ebdcad8fd4be905e39e9dce37a419c7e77236babb3
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.0rc10-cp312-cp312-win_amd64.whl

Download URL cuda_tile-1.6.0rc10-cp312-cp312-win_amd64.whl
Size 354.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
223bb1c7e45bb5978b92f7d88121122e23195202c962f3c60f3199712e7b84f6
BLAKE2b-256 checksum
How to use checksums
80492b888ea84e0e504d020edf3b98064b942b0776f0011a17c841404c974931
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.0rc10-cp312-cp312-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc10-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
be405305105e0540d1b55a63eded159027b633986a095a4452cbfe63d4e3aa05
BLAKE2b-256 checksum
How to use checksums
a26df47c1a402a717222c64f5c8856752137230fb67288b9bc6e1ca9e38981fe
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.0rc10-cp312-cp312-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc10-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
d466117302bbe9b5a70efbe8db875c2b8e87547ecd66eef0d892cb36342b3895
BLAKE2b-256 checksum
How to use checksums
f7286b22715b8ca3518d7454d97ca8932f66ea1db05f60ee503f0ea01e112682
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.0rc10-cp311-cp311-win_amd64.whl

Download URL cuda_tile-1.6.0rc10-cp311-cp311-win_amd64.whl
Size 353.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2047b146c925854afd612aa7b2efccadabefd52faae20e767abc761da8aa59d7
BLAKE2b-256 checksum
How to use checksums
206c8a452c469033ed23860dd3608b138b0e33facbb80d874b41930f6a4b9536
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.0rc10-cp311-cp311-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc10-cp311-cp311-manylinux2014_x86_64.whl
Size 382.2 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
882014a2c9e29a0118e8e45607ead35b6e4a85739138c4a87f1c5c8baf7a4e85
BLAKE2b-256 checksum
How to use checksums
5d96a9007db6c307db4669f9a4ea860b68c9cc3e211ea5be7df001d7baaaefce
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.0rc10-cp311-cp311-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc10-cp311-cp311-manylinux2014_aarch64.whl
Size 379.0 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
1ae0fad92b3b94676df0e297cc75363f39657522be68353e8b65ca6505520392
BLAKE2b-256 checksum
How to use checksums
6e506e8aa68ea55a4fd7d66b0199a903794a8cce27ce502a2f6386cb467ded35
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.0rc10-cp310-cp310-win_amd64.whl

Download URL cuda_tile-1.6.0rc10-cp310-cp310-win_amd64.whl
Size 353.4 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
00f0462bc0fcb2ea400a6e1555175de313b84a14d8fc26e2ab3142dad5ebaa7c
BLAKE2b-256 checksum
How to use checksums
66a2d54ec4e91ab3f1452fde5c9c487124983fb426fabb3bc912385839dc2003
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.0rc10-cp310-cp310-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc10-cp310-cp310-manylinux2014_x86_64.whl
Size 382.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
411805c427fad9b3bf4d837ce75c63c850a1ad24d7a9f9b51413a06de71b92f2
BLAKE2b-256 checksum
How to use checksums
eabe6ed2f0df595bcc7558fd1e818feec98155043253930a0fbbf9c33cd9b9e9
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.0rc10-cp310-cp310-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc10-cp310-cp310-manylinux2014_aarch64.whl
Size 379.3 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
83f7122605fab669c4c6c0ad13a7aac4ff27cdcd2d97ae05d94f4f8b80b1e4a2
BLAKE2b-256 checksum
How to use checksums
836952a8d0d4831e1206c38294722979bdb4ed639cf43696c6c0c7ce1c18a52a
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