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.7-3.11 and cuda 10.2/11.3/11.4/11.7/12.0 prebuilt binaries for linux (manylinux).

We offer python 3.7-3.11 and cuda 10.2/11.3/11.4/11.7/12.0 prebuilt binaries for windows 10/11.

pip install cumm for CPU-only

pip install cumm-cu102 for CUDA 10.2

pip install cumm-cu113 for CUDA 11.3

pip install cumm-cu114 for CUDA 11.4

pip install cumm-cu117 for CUDA 11.7

pip install cumm-cu120 for CUDA 12.0

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-cu117 0.6.3

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-cu117 0.6.3
File
cumm_cu117-0.6.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cumm_cu117-0.6.3-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_cu117-0.6.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
cumm_cu117-0.6.3-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_cu117-0.6.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
cumm_cu117-0.6.3-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_cu117-0.6.3-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
cumm_cu117-0.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
cumm_cu117-0.6.3-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
cumm_cu117-0.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details

Total release size: 122.6 MB

Release files / cumm_cu117-0.6.3-cp312-cp312-win_amd64.whl

Download URL cumm_cu117-0.6.3-cp312-cp312-win_amd64.whl
Size 1.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c0c82fda75538b8ac6372c6b96051d230a226d1aafe0245d495ab63b2fe2fe5a
BLAKE2b-256 checksum
How to use checksums
601564ea275840749763a046803974512febe5fb89f8c5ad35e85dd14e2b05d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / cumm_cu117-0.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu117-0.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.3 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c040d3d522728b9b4aac39d5d92cafd621529712946c32bd0fff0eb05774f954
BLAKE2b-256 checksum
How to use checksums
e178243721d38950f8859c9089f0c92ea42d579c4e6da97e3b28149ce60da162
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.5

Release files / cumm_cu117-0.6.3-cp311-cp311-win_amd64.whl

Download URL cumm_cu117-0.6.3-cp311-cp311-win_amd64.whl
Size 1.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
49a9aafcc7ecf1cbd007678686f93bb3431a14fb499779fff7304433533dab61
BLAKE2b-256 checksum
How to use checksums
c8a58cedd64dd3c4c9415e50688b4276b5683f74e38e6feae268b478d9e88d95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.9

Release files / cumm_cu117-0.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu117-0.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d0a5dc14ea298e968c8cfc50e92947c78b23e6f5421fa336b200c19063235a7d
BLAKE2b-256 checksum
How to use checksums
f062a9df401ed3ca19a5d3af27e20c457ac7fdcaa4bb3c99e60af5e490cf59ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.5

Release files / cumm_cu117-0.6.3-cp310-cp310-win_amd64.whl

Download URL cumm_cu117-0.6.3-cp310-cp310-win_amd64.whl
Size 1.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
41d8b822252adf9754e2eaa0312c0b443b57cf6a7117bb57e4fa9e522d269895
BLAKE2b-256 checksum
How to use checksums
d73acd054d8f5d98875ab15e2d6d18a0fee73849a76d1c1901746e31873542b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.11

Release files / cumm_cu117-0.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu117-0.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8c5fa2f4b59cabeca7036457ee8cb11b4fbf17a097a277dec624a11e9f8c5f16
BLAKE2b-256 checksum
How to use checksums
56125d18fa9de6f115d17476e9c0890266f6ed4a10a86e79f273d5d6c9c2f03b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.5

Release files / cumm_cu117-0.6.3-cp39-cp39-win_amd64.whl

Download URL cumm_cu117-0.6.3-cp39-cp39-win_amd64.whl
Size 1.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
3067567ab2c4b69d24723431e0c9a84d0e5715b02cf0f38d5a931d820827157d
BLAKE2b-256 checksum
How to use checksums
601098f9e84e4dabfb1a1ecaed65649a9cab2c662df6d0f0a8242ec5b9879779
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.13

Release files / cumm_cu117-0.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu117-0.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.3 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
42290c2fc118039614d5dcd86c267f6069720590b400f1b9df55dc6032d8decb
BLAKE2b-256 checksum
How to use checksums
63c27195413b7da06f1cfa82ee0466e775d484850da942510428db6b7d3cf0c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.5

Release files / cumm_cu117-0.6.3-cp38-cp38-win_amd64.whl

Download URL cumm_cu117-0.6.3-cp38-cp38-win_amd64.whl
Size 1.2 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
b2ac7ad343c0937003a986e137939b8965367a0c378dc5969eb8f239d1ba0cd5
BLAKE2b-256 checksum
How to use checksums
a67b2781e30fa968675c260cbbc2ccc4f9b342292a156a7c4cf268908d7905f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.8.10

Release files / cumm_cu117-0.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cumm_cu117-0.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.3 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
bb59e51801a61be3034966f4ecb5e6358311f59c985f350b415be1ddbb865c3c
BLAKE2b-256 checksum
How to use checksums
18be00baf22940b61b04cf5dde9a26700f49a18b2486846cbf0919890900e88b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.5

Release history Release notifications | RSS feed

This release

0.6.3 This release

10 release files

0.6.2

10 release files

0.6.1

10 release files

0.6.0

10 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

1 release file

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

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