Skip to main content

cumm

CUda Matrix Multiply library.

Build Status

cumm is developed during learning of CUTLASS, which use too much c++ template and make code unmaintainable. So I develop pccm, use python as meta programming language, to replace c++ template meta programming. Now pccm become a foundational framework of cumm and my other c++ project such as spconv. cumm also contains a python asyncio-based gemm simulator that share same meta program with CUDA code, enable gemm visualization and easy debug experience.

BREAKING CHANGES

  • 0.3.1: tv::DType enum value changed, this will affect all binary code of tv::Tensor user. you must recompile all code if upgrade to cumm >= 0.3.1.

News

Install

Prebuilt

We offer python 3.9-3.13 and cuda 11.4/11.8/12.1/12.4/12.6 prebuilt binaries for linux (manylinux_2_28).

We offer python 3.9-3.13 and cuda 11.4/11.8/12.1/12.4/12.6 prebuilt binaries for windows 10/11.

We offer python 3.9-3.13 prebuilt binaries for Mac OS X >= 14.0 (Apple Silicon Only).

pip install cumm for CPU-only

pip install cumm-cu114 for CUDA 11.4

pip install cumm-cu126 for CUDA 12.6

Build from source for development (JIT, recommend for develop)

WARNING Use code in tags!!! code in main branch may contain bugs.

The c++ code will be built automatically when you change c++ code in project.

Linux

  1. uninstall cumm installed by pip. you must ensure no "cumm" exists in pip list | grep cumm
  2. install build-essential, install CUDA
  3. git clone https://github.com/FindDefinition/cumm, cd ./cumm, git checkout tags/<tag_name>, pip install -e .
  4. in python, import cumm and wait for build finish.

Windows

  1. uninstall spconv and cumm installed by pip. you must ensure no "cumm" exists in pip list | grep cumm
  2. install visual studio 2019 or newer. make sure C++ development component is installed. install CUDA
  3. set powershell script execution policy
  4. start a new powershell, run tools/msvc_setup.ps1
  5. git clone https://github.com/FindDefinition/cumm, cd ./cumm, git checkout tags/<tag_name>, pip install -e .
  6. in python, import cumm and wait for build finish.

Build wheel from source

WARNING Use code in tags!!! code in main branch may contain bugs.

WARNING: If CUMM_CUDA_VERSION is set with a CUDA version, following steps will create a wheel named "cumm-cuxxx", not "cumm", this means you must use cumm-cuxxx in dependency of your project which depend on cumm, not cumm. If CUMM_CUDA_VERSION isn't set, cumm will always built with CUDA, so the CUDA must exists in your system. The wheel name will be cumm even if it is built with cuda.

Linux

It's recommend to build Linux packages in official build docker. Build with CUDA support don't need a real GPU.

Build in Official Docker
  1. select a cuda version. available: CUDA 11.1, 11.3, 11.4, 11.5, 12.0
  2. (Example for CUDA 11.4) git clone https://github.com/FindDefinition/cumm, cd ./cumm, docker run --rm -e PLAT=manylinux2014_x86_64 -e CUMM_CUDA_VERSION=114 -v `pwd`:/io scrin/manylinux2014-cuda:cu114-devel-1.0.0 bash -c "source /etc/bashrc && /io/tools/build-wheels.sh"
Build in your environment
  1. install build-essential, install CUDA
  2. set env for installed cuda version. for example, export CUMM_CUDA_VERSION="11.4". If you want to build CPU-only, run export CUMM_CUDA_VERSION="". If CUMM_CUDA_VERSION isn't set, you need to ensure cuda libraries are inside OS search path, and the built wheel name will be cumm, otherwise cumm-cuxxx
  3. run export CUMM_DISABLE_JIT="1"
  4. run python setup.py bdist_wheel+pip install dists/xxx.whl

Windows 10/11

  1. install visual studio 2019 or newer. make sure C++ development package is installed. install CUDA
  2. set powershell script execution policy
  3. start a new powershell, run tools/msvc_setup.ps1
  4. set env for installed cuda version. for example, $Env:CUMM_CUDA_VERSION = "11.4". If you want to build CPU-only, run $Env:CUMM_CUDA_VERSION = "". . If CUMM_CUDA_VERSION isn't set, you need to ensure cuda libraries are inside OS search path, and the built wheel name will be cumm, otherwise cumm-cuxxx
  5. run $Env:CUMM_DISABLE_JIT = "1"
  6. run python setup.py bdist_wheel+pip install dists/xxx.whl

Contributers

Note

The work is done when the author is an employee at Tusimple.

LICENSE

Apache 2.0

Metadata

Release files for cumm-cu114 0.8.2

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 cumm-cu114 0.8.2
File
cumm_cu114-0.8.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
cumm_cu114-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
cumm_cu114-0.8.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cumm_cu114-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
cumm_cu114-0.8.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
cumm_cu114-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
cumm_cu114-0.8.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
cumm_cu114-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
cumm_cu114-0.8.2-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
cumm_cu114-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details

Total release size: 129.9 MB

Release files / cumm_cu114-0.8.2-cp313-cp313-win_amd64.whl

Download URL cumm_cu114-0.8.2-cp313-cp313-win_amd64.whl
Size 2.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
bff7e0cdb5594b9a3c30667783fdb43402f6808f2c03989060be749328a855dd
BLAKE2b-256 checksum
How to use checksums
043ee1cbf7f75f7021fafda52f183f84ba7950203c91c1454ebc183db1a4d80b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / cumm_cu114-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu114-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.8 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
efbc8c5a38fef0b40303eedaadb56ce5ce21342f2b42be86c40780c082e0591f
BLAKE2b-256 checksum
How to use checksums
ef42e8640fbed1cdb766fe3bdd9e9eb62a0370554937ad2e8d8c6e0d0b109941
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / cumm_cu114-0.8.2-cp312-cp312-win_amd64.whl

Download URL cumm_cu114-0.8.2-cp312-cp312-win_amd64.whl
Size 2.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
dc6edc9a61cd50eda2ec44c9ba106e2ec1a83510182fd6374a57b072eafc50ff
BLAKE2b-256 checksum
How to use checksums
d300c6d688dae240b2c180d6c42003afb608d13e556920be0119acc15e63a5d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.10

Release files / cumm_cu114-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu114-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.8 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0ccb07c1e31e8f997584428ffadcc7afd2b898673415d757387aaab868ce933b
BLAKE2b-256 checksum
How to use checksums
01d06df323aa422bc588958709a49ba0def30b72ca112973f30cbdb1b3ab9d17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / cumm_cu114-0.8.2-cp311-cp311-win_amd64.whl

Download URL cumm_cu114-0.8.2-cp311-cp311-win_amd64.whl
Size 2.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c443bd90e4cdbf97f73ab3b314a64bcda6f15fed35a682fe8cb79307d164ae35
BLAKE2b-256 checksum
How to use checksums
4248aaa00f65a91b5205a8d4118fcc464f7fd6819bdd15ca3cd32fc4ae361477
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / cumm_cu114-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu114-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.8 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
89e3f4f2e82f0498b8f650dfa72a90d3a102f65be39e2fe0bbbeaf72e21eccae
BLAKE2b-256 checksum
How to use checksums
10b69672963c77cede920a3697f8857ee76f9f9e586986558f6ca71a83557a94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / cumm_cu114-0.8.2-cp310-cp310-win_amd64.whl

Download URL cumm_cu114-0.8.2-cp310-cp310-win_amd64.whl
Size 2.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
26947cb3120475b200a90b81a77cf7d2e17a8486b9e64c9661d5aba373d9010c
BLAKE2b-256 checksum
How to use checksums
5b518f84300e4c440b50a314cb220d455f0d1a19d9fc630df8aa6dbac7148104
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.11

Release files / cumm_cu114-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu114-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.8 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
89154acd6175ff8b3b538e5b6d4efe0e1c615209379333b67bca1079ac79201b
BLAKE2b-256 checksum
How to use checksums
6b6259410470c8266902f3423a2642a8edcbf18e3b50658380b81bf46070fe06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / cumm_cu114-0.8.2-cp39-cp39-win_amd64.whl

Download URL cumm_cu114-0.8.2-cp39-cp39-win_amd64.whl
Size 2.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
37a965a82e54f55751057113ac3a7d851805377de475be87eb8f059480d221b2
BLAKE2b-256 checksum
How to use checksums
10afbf4f23918bbfd08b8dc7be0e71e2168f86df3c37509cb31bad21e2f1aa63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13

Release files / cumm_cu114-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu114-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.8 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
dc14299d8710c47655e34a3bb1e90a41b1ebc42ee14f6838ff26560e8e848ce2
BLAKE2b-256 checksum
How to use checksums
15d2e223512839281207085ea1e2c2d097abe5649ea71041102cf59758bfb82f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.8.2 This release

10 release files

0.8.1

10 release files

0.7.9

10 release files

0.6.3

5 release files

0.6.2

5 release files

0.6.1

5 release files

0.6.0

5 release files

0.5.3

10 release files

0.5.1

10 release files

0.5.0

10 release files

0.4.9

10 release files

0.4.8

10 release files

0.4.6

10 release files

0.4.5

10 release files

0.4.4

10 release files

0.4.3

10 release files

0.4.2

5 release files

0.4.1

10 release files

0.4.0

10 release files

0.3.5

10 release files

0.3.4

10 release files

0.3.3

10 release files

0.3.2

10 release files

0.3.1

10 release files

0.3.0

10 release files

0.2.9

9 release files

0.2.8

9 release files

0.2.7

1 release file

0.2.6

9 release files

0.2.5

9 release files

0.2.3

9 release files

0.2.2

9 release files

0.2.1

8 release files

0.2.0

8 release files

0.1.9

10 release files

0.1.8

10 release files

0.1.7

10 release files

0.1.6

10 release files

0.1.5

10 release files

0.1.4

10 release files

0.1.3

10 release files

0.1.1

5 release files

0.1.0

10 release files

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