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

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

Total release size: 6.3 MB

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

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

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

Download URL cuda_tile-1.6.0rc7-cp314-cp314t-manylinux2014_aarch64.whl
Size 357.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
85c8a381a50d2560f2d2982932d0903735edd0fcbf7b1c47f5dfd1caf19b1a66
BLAKE2b-256 checksum
How to use checksums
9b55b63a9dd8435ebebcfa5d87e59f12aba2cfa7ec50a0cc24cadd2d2a5c08a0
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.0rc7-cp314-cp314-win_amd64.whl

Download URL cuda_tile-1.6.0rc7-cp314-cp314-win_amd64.whl
Size 336.5 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
318dcb4b96a45cffc86912500c19b60430f81869b224672f59f5fc7c87a333aa
BLAKE2b-256 checksum
How to use checksums
5dc156553ab52eec05d6fbb04a1f2ef2fae3ee4d74ad561944617d2d65aa038e
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.0rc7-cp314-cp314-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc7-cp314-cp314-manylinux2014_x86_64.whl
Size 358.5 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d5e314a9100db18fa4e92399d1eb7ce19ab9b93ba502e839da8f2352c6356970
BLAKE2b-256 checksum
How to use checksums
5fed1614bf4ef22554be5e2a1789aae6d2cca48e453830337bab2c1e3d9d81d4
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.0rc7-cp314-cp314-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc7-cp314-cp314-manylinux2014_aarch64.whl
Size 356.3 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
74a23786972e7d371f528888315f322c5f9bb7eaac0a2da092621e2a8ffcaa07
BLAKE2b-256 checksum
How to use checksums
1b93fa1caf133667cf09173707166d71903cbea8188d61fb9e2994bc3a2be8ab
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.0rc7-cp313-cp313-win_amd64.whl

Download URL cuda_tile-1.6.0rc7-cp313-cp313-win_amd64.whl
Size 335.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
d3fad85967446bf0ead07cc2e313aa7bc088a2ed741df2eb6d90791c4aee5a4a
BLAKE2b-256 checksum
How to use checksums
c605d69a09279c10272c9c99d47220bf5bfe0af25b3eb370c3e2d40e8bf5eeeb
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.0rc7-cp313-cp313-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc7-cp313-cp313-manylinux2014_x86_64.whl
Size 358.5 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
087472964a8bfea9a03370fb3a65e34c4d663fb39f64cdc24a07f3a9e7b4d6ba
BLAKE2b-256 checksum
How to use checksums
8791cf1bd1b314c6e9030113f6efe41a5a14a79e4f437414e225b747d3ba6f74
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.0rc7-cp313-cp313-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc7-cp313-cp313-manylinux2014_aarch64.whl
Size 356.2 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
cc262b5fb7e23f651c1ec930bf5b944468197067c2deede10885495ad693e10c
BLAKE2b-256 checksum
How to use checksums
6a3dfb14bdff7fef8a955bd2c3fa0a0394c6743284c5c96a4393e9f668e319d5
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.0rc7-cp312-cp312-win_amd64.whl

Download URL cuda_tile-1.6.0rc7-cp312-cp312-win_amd64.whl
Size 335.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
7054b2574acb76ec191d8844b0f676f0f57f35631783e9ac264aba37f5643451
BLAKE2b-256 checksum
How to use checksums
041d09dc3ffb22e1922bea716bc22a4b2535d01a40bde459113ccb1acf6047e3
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.0rc7-cp312-cp312-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc7-cp312-cp312-manylinux2014_x86_64.whl
Size 358.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
eaace59f444e53fb861175df3de41deae48f7458723b06b13da4020b45dbeed6
BLAKE2b-256 checksum
How to use checksums
49fcf98e983fecc4df0286b7f0fbf45b2ccc73d75a80f45a5338c3de396c2a7c
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.0rc7-cp312-cp312-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc7-cp312-cp312-manylinux2014_aarch64.whl
Size 356.2 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d653e6a8dacbc6c538434d3ef150fde0df268bee6e528db1dd517f48a979af5a
BLAKE2b-256 checksum
How to use checksums
84136796135f011ced44d1b7ef1b17ba3c151e6836cd0ec8e91973c88833bb42
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.0rc7-cp311-cp311-win_amd64.whl

Download URL cuda_tile-1.6.0rc7-cp311-cp311-win_amd64.whl
Size 334.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c5362f69e478ff288e515c4a7967c9559df23d35f820cf81a2ed84b2a2928c02
BLAKE2b-256 checksum
How to use checksums
d72b288603681aeae45d11f3d96bf591dad9a05661dd6cf72a21730f07865f9e
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.0rc7-cp311-cp311-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc7-cp311-cp311-manylinux2014_x86_64.whl
Size 358.0 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b605a30c3d516488f901f2034d98518e7e9606d8f3fbec69b25941392dbfd329
BLAKE2b-256 checksum
How to use checksums
d4d97924eedb33f45b421f5cbe8b0fffa2b6d41d255083ba2230328db7d2dd29
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.0rc7-cp311-cp311-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc7-cp311-cp311-manylinux2014_aarch64.whl
Size 355.9 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
b47553acd1b0cbcd3625347938bbc2c199a43a147859c8034ce17ce6aaae99d4
BLAKE2b-256 checksum
How to use checksums
f06b00e51365f6ed733c09adf5a6213aaf3326dc3da9f158a435ab2cadf4b0cf
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.0rc7-cp310-cp310-win_amd64.whl

Download URL cuda_tile-1.6.0rc7-cp310-cp310-win_amd64.whl
Size 334.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
f3d783e2ec7c50f89c6c32fedbe2b5c5b1f5255a09f520304aadc4045562972d
BLAKE2b-256 checksum
How to use checksums
5cb910debd328610bb8768ca2dd565c6cffba21e19ba99ee93ca656f3c72ef80
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.0rc7-cp310-cp310-manylinux2014_x86_64.whl

Download URL cuda_tile-1.6.0rc7-cp310-cp310-manylinux2014_x86_64.whl
Size 358.3 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f903df59411a5d817f0ca2aa2e7733a480820e971aee3d213fe8da7cb9801e2b
BLAKE2b-256 checksum
How to use checksums
0429de85ea273b48936b9a029108d3d008f0cb08467d00c1d2000ba645e58025
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.0rc7-cp310-cp310-manylinux2014_aarch64.whl

Download URL cuda_tile-1.6.0rc7-cp310-cp310-manylinux2014_aarch64.whl
Size 356.2 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c13c8db5588d0dc498e8c21d302e94595b388b38fad761139ddb72f2bf03501a
BLAKE2b-256 checksum
How to use checksums
293753875cbd6ac0b167110beddb3005739665e8346f4571f004e36655979ec2
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