Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cuda_tile-1.5.0-cp314-cp314t-win_amd64.whl (313.4 kB view details)

Uploaded CPython 3.14tWindows x86-64

cuda_tile-1.5.0-cp314-cp314t-manylinux2014_x86_64.whl (326.8 kB view details)

Uploaded CPython 3.14t

cuda_tile-1.5.0-cp314-cp314t-manylinux2014_aarch64.whl (325.0 kB view details)

Uploaded CPython 3.14t

cuda_tile-1.5.0-cp314-cp314-win_amd64.whl (305.7 kB view details)

Uploaded CPython 3.14Windows x86-64

cuda_tile-1.5.0-cp314-cp314-manylinux2014_x86_64.whl (325.1 kB view details)

Uploaded CPython 3.14

cuda_tile-1.5.0-cp314-cp314-manylinux2014_aarch64.whl (322.8 kB view details)

Uploaded CPython 3.14

cuda_tile-1.5.0-cp313-cp313-win_amd64.whl (304.8 kB view details)

Uploaded CPython 3.13Windows x86-64

cuda_tile-1.5.0-cp313-cp313-manylinux2014_x86_64.whl (325.0 kB view details)

Uploaded CPython 3.13

cuda_tile-1.5.0-cp313-cp313-manylinux2014_aarch64.whl (322.6 kB view details)

Uploaded CPython 3.13

cuda_tile-1.5.0-cp312-cp312-win_amd64.whl (304.8 kB view details)

Uploaded CPython 3.12Windows x86-64

cuda_tile-1.5.0-cp312-cp312-manylinux2014_x86_64.whl (325.0 kB view details)

Uploaded CPython 3.12

cuda_tile-1.5.0-cp312-cp312-manylinux2014_aarch64.whl (322.6 kB view details)

Uploaded CPython 3.12

cuda_tile-1.5.0-cp311-cp311-win_amd64.whl (304.9 kB view details)

Uploaded CPython 3.11Windows x86-64

cuda_tile-1.5.0-cp311-cp311-manylinux2014_x86_64.whl (324.3 kB view details)

Uploaded CPython 3.11

cuda_tile-1.5.0-cp311-cp311-manylinux2014_aarch64.whl (322.7 kB view details)

Uploaded CPython 3.11

cuda_tile-1.5.0-cp310-cp310-win_amd64.whl (305.2 kB view details)

Uploaded CPython 3.10Windows x86-64

cuda_tile-1.5.0-cp310-cp310-manylinux2014_x86_64.whl (324.8 kB view details)

Uploaded CPython 3.10

cuda_tile-1.5.0-cp310-cp310-manylinux2014_aarch64.whl (323.0 kB view details)

Uploaded CPython 3.10

File details

Details for the file cuda_tile-1.5.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: cuda_tile-1.5.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 313.4 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cuda_tile-1.5.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 70ecc0e4be063317b5216dc620085be8021f78092a81613268129693cf63e179
MD5 dee492bfc9d1dedc0b7972e0bf8d5b6b
BLAKE2b-256 dfea104cd115a15768ed3e6d58ce658744784e3376dcf9ca5f1402c6ddab61f5

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp314-cp314t-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp314-cp314t-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1088a3ebb5622c24ec32034d0d451bab9c1b85ae67fcdc647464951ec1d1b6ad
MD5 9f0d9415263dbb871062d80b1db9e6ad
BLAKE2b-256 d7b86260d8089287dd8e8f5e456a60391537520b20cd90287eacaac4c71fd140

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp314-cp314t-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp314-cp314t-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a4ede5529bd5e13318ec9bbf3f79abaf23b6368c58d247eaf2e5eb5ccae3fa73
MD5 560d054282c4390cd360327122196885
BLAKE2b-256 2c53e5947ebd44774183f72c317907d803648d8cd87e8a571bb0a4e89a578309

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: cuda_tile-1.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 305.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cuda_tile-1.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b3c5e0a5af1347b6326fe7a49e44b15ea01ae2d8ed138617c8331b6aba311d16
MD5 09fe89c57419741cfecc07a7f4fe359d
BLAKE2b-256 fd764f0b7bd3ac2d8383b3cc166ce67c528653b51a761ebc0fc6c132e57ef19b

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp314-cp314-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp314-cp314-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d4054dc12b6d35d69cb07fcc224183b84f3ad1a0e85ec4414cf660144b8467b0
MD5 29ca0801cc6703bbc36ea2e0a336557f
BLAKE2b-256 6538165499cbfb7c1ada110592fa9224e20851125b337bbe2e656b5d56c676f0

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp314-cp314-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp314-cp314-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b88d7a3ea0cb30a962c0ff9cb01e2b2b87c6ef816fd53dd92ead3bcff3449e37
MD5 9a79a239864a923bca593fdb3edca8c6
BLAKE2b-256 82f2861000a1cc2204be90295c980c488670600e89c638138192c61bf79949f1

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cuda_tile-1.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 304.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cuda_tile-1.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c400918faa8492d84c4da3da81ce01ed30d81ed780f9ddbc1a9bdd588058b776
MD5 0b8334f7bb003af119ca9a86d39a496b
BLAKE2b-256 daa6e3f6e9aefcc94d548e5d69f01a02ba5da7c5e200702eba3eb7a4f572a883

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e7cb56186b0cc98166b72c7e5a3764c236151aa8d53e0b37a153766b79ea005a
MD5 ddee921dc8711288de2e305f15c37407
BLAKE2b-256 26d5ae03d2b70ed8d6c21ca809ddc98227ad07988e7fe67e7e41d888c0b13d32

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp313-cp313-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp313-cp313-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cfa4a5ef920d9c1fee702611b25bde449915f12bf929c1b8a3faee0c9b03f750
MD5 e0082d1eaf3387f1892815a34e77d1f0
BLAKE2b-256 004660aea981ee7cc0b159eb08c42b795e8e95ae8a7fb451e4565cad0f43cca0

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cuda_tile-1.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 304.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cuda_tile-1.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 16d97a60ed1d33388abbca85ea08cdae6325cc700476b3135f190d0fb50329f4
MD5 873548547a345e4ead67eb3d802c261b
BLAKE2b-256 a56e7a60f317c503580ab7946dbb7fd080438fe953d0ddfdc81904beb9a1fab7

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cef6d30acc37557643ece0de3770fc4c33497c4af40209e424f72fbfcbe6ea5a
MD5 3781098d86ecc2b9329aa6ce7ecdb869
BLAKE2b-256 1cf5b4ba9d0fc71198d939ebf9a090228179995d8411ee9def8f638a0e3ccdc5

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp312-cp312-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp312-cp312-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 87652483baa9c81a9a24e4450f016e4ee78fd205d8422dad8996571bd1f2622e
MD5 cdfec1ad4f94f956db0d499201fa14eb
BLAKE2b-256 7c6dcc2fb5a25689a501564a2eced4acf654f307e801a2c1506be97c0d100491

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cuda_tile-1.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 304.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cuda_tile-1.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bda5f1721a6daa45124033f031685d1b30439ea9dbb07e0d46ec2355cfde0657
MD5 0ecefaac9264b01cecb83a91b7979e06
BLAKE2b-256 95b2a863d460f6b70431869be5a18f82b1a1af91b5d7629e914c204e3545cac2

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9494170237d34bbbce83f2ada005d2dabb704f1f8c6a0af59088c180bd1bf028
MD5 09630a637a2a75e44496476f3be38b2d
BLAKE2b-256 eba8981c2eb351f15a4b75b5913e35d2ef16cee32a45c950d0e16f85e626dd05

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp311-cp311-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp311-cp311-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81b8a93e757258260bd05dbbe6eec8bb50655ee1a88d5ebbc8412c526d3c0ed4
MD5 22f5f361547d4d9fe3ab49188de0cbac
BLAKE2b-256 5e4de07fd65640c26c1f990ee621af11f073672e8d96501663026c7e1978f5b8

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cuda_tile-1.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 305.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cuda_tile-1.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d808355e4cb6a850c7e3e82a5cd656c0062c33225fce69a8fd40290bc5b0bcaa
MD5 778dcc02ba4465150ce7ac8563ca3caa
BLAKE2b-256 50ede98669f59bdea9d5f698cb22aab3bbc6ed10eadef640a79bf2d7e5a3c4cc

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc390ac00d2ecd5f7c2e26198b410787fa39baf3737c6abceac9bda3ca9fccef
MD5 03d3ce38f04486731f88b6b826210e2b
BLAKE2b-256 d1aa8af16bde9b0c41cda286791749a246195716a15eea7f0dc79a99d37d8686

See more details on using hashes here.

File details

Details for the file cuda_tile-1.5.0-cp310-cp310-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuda_tile-1.5.0-cp310-cp310-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 27da6113d3469de0b2f75dd269904e730b6d2bc81336addbd299c593d6a125c4
MD5 4827137587110fd8acae096058d9472a
BLAKE2b-256 781d03499651b6957b31ab70c875d91f23220da5f8f84cbad1fb7cba2d7dd435

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page