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

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

Total release size: 6.5 MB

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

Download URL cuda_tile-1.6.0rc8-cp314-cp314t-win_amd64.whl
Size 357.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
5190ba45e80e60af1544844b499cca060971061302f3429954b23540a8e739d7
BLAKE2b-256 checksum
How to use checksums
0718f101355e9d51c1e68294cac45b396d0bbcb629ce3f7ec5e6573dfe102592
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp314-cp314t-manylinux2014_x86_64.whl
Size 374.2 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ea7c1cffcc67dfa695226a9b43d1648ac1f07e3df8a1d18f98f0b4602f1b7b9e
BLAKE2b-256 checksum
How to use checksums
3eed495b4a0f978c916a928af341b8ea0487f69524d2cc4b693727342d81f70b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp314-cp314t-manylinux2014_aarch64.whl
Size 370.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
849f08f404aa943aef19150623484e5769582984fe0b63d4d8f08f76d2740b85
BLAKE2b-256 checksum
How to use checksums
7ab71390455465f71dfef96db8e1af005f4ff9cc04e46127b95ace5b6a424566
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp314-cp314-win_amd64.whl
Size 349.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
0c3407603e1178f73f53929f302cf53f6cbe16e3644a59c161e9f0cdaae0af19
BLAKE2b-256 checksum
How to use checksums
32ab26cced4e31f03412cf76da02fbe0f3da996a097218f4f09b0ffd17686123
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp314-cp314-manylinux2014_x86_64.whl
Size 371.9 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6c356401f4d649af6842a3f54fbaa3bd8152d305132e01548b3bf5981ab1ec3a
BLAKE2b-256 checksum
How to use checksums
5e90b5155ea29c1ccbd206349edfe6b37ca3d8799feeb7b316a72c6b864c3354
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp314-cp314-manylinux2014_aarch64.whl
Size 368.3 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
67d788f964f7d624ec3b8f0f270e0eec828bce1b6fc30c1fc0ff0637f5d9dac2
BLAKE2b-256 checksum
How to use checksums
aa49d73e8e81fcb21fa09b77f1f302535d616dcc8f2005b46ed8cda6dbfc6f03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp313-cp313-win_amd64.whl
Size 347.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
2cda5da30ed72d0525bb5119e667908933a03536d8c12fa1fdc67d01c49ae53f
BLAKE2b-256 checksum
How to use checksums
5cda95bc62f4d8567695043ad218e392f57749614795d5514090f927a582899d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp313-cp313-manylinux2014_x86_64.whl
Size 371.5 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
035ab16e8f19e4274ed070e4f83cebbbdd84e0b3b11416cb494fc153c735969d
BLAKE2b-256 checksum
How to use checksums
b72ebc615d3590fca562c686774abcf3113d45dc51278b1a5842162a7939d22b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp313-cp313-manylinux2014_aarch64.whl
Size 368.7 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
e40f3b469b65a2be795e40679eb3b73b6dfc08e8334496d6c20beae56da34aee
BLAKE2b-256 checksum
How to use checksums
9ea5b109b7d20770e2ccbc30f27df73cddf608a375ecc992398615e50598fcff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp312-cp312-win_amd64.whl
Size 347.7 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
9cb14face28585570a8c6e86eb6e6e4ad87b52fa7d049930bcfb76d819cfec69
BLAKE2b-256 checksum
How to use checksums
bc0cb753cb0de832fa2288b30f8b3b2dbe22d623e9f37420c990f55740bcddf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

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

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

Download URL cuda_tile-1.6.0rc8-cp312-cp312-manylinux2014_aarch64.whl
Size 368.7 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
3b0e767d245cb11ddcca7c144b243feb51ec5b87c1e3ccb20b3f3f4b9f3c9a76
BLAKE2b-256 checksum
How to use checksums
427a0ebf41f6ceffd207a5b666395225221aa982ddea89386203141d351e6e83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp311-cp311-win_amd64.whl
Size 346.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a40feac869fdbaa95c6ac889357f160207d8f011fb3f4f3f0d8a94f2a898e720
BLAKE2b-256 checksum
How to use checksums
6ae6b7a7f8c9578a09dab60f85fd5a0d04feb6bfaacf6c7b213e5d30aee0de0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp311-cp311-manylinux2014_x86_64.whl
Size 371.8 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
22e1a817e2083880d38d2889669229f9ca1920904221e7310f2a0731b1f66961
BLAKE2b-256 checksum
How to use checksums
fe3b785aa0564c45da9f95b244c5f578efd6940d88e8b4388654ee8babe42bf0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp311-cp311-manylinux2014_aarch64.whl
Size 368.9 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
93a8dc80b08cbd3cf1c7727f9c1e719aac4df96a19c4938efda60c3bda57905e
BLAKE2b-256 checksum
How to use checksums
c81cdddaea5e45b525cceb198932588920f0bf06b8bd7f81577818a45c0f55b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

Download URL cuda_tile-1.6.0rc8-cp310-cp310-win_amd64.whl
Size 346.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
f84b856033705af178ab6c808d5c75f31087be58323eadddf0e59090571012dd
BLAKE2b-256 checksum
How to use checksums
c4c7d222ec68e73450a9daaa4c32664ef1fc4c80f2d6e2fa4b70b68422e49e90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

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

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

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

Download URL cuda_tile-1.6.0rc8-cp310-cp310-manylinux2014_aarch64.whl
Size 369.1 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
23012d51d7bed9e43156b4a4af92bed84a1c5fef55e6e570cfa6b666333b95a3
BLAKE2b-256 checksum
How to use checksums
d4a883e0bcc7431ac083cc0593d396a421db439773d0dcecb2b30fb720e1305d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6
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