CUda Matrix Multiply library
Project description
cumm
CUda Matrix Multiply library.
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.
Install
Prebuilt
We offer python 3.7-3.10 and cuda 10.2/11.1/11.3/11.4 prebuilt binaries for linux (manylinux).
We offer python 3.7-3.10 and cuda 10.2/11.1/11.3/11.4 prebuilt binaries for windows 10/11.
We will offer prebuilts for CUDA versions supported by latest pytorch release. For example, pytorch 1.9 support cuda 10.2 and 11.1, so we support them too.
pip install cumm-cu102
for CUDA 10.2
pip install cumm-cu111
for CUDA 11.1
pip install cumm-cu113
for CUDA 11.3
pip install cumm-cu114
for CUDA 11.4
Build from source
Linux
- install build-essential, install CUDA
- run
export CUMM_DISABLE_JIT="1"
- run
python setup.py install
/pip install -e .
/python setup.py bdist_wheel
+pip install dists/xxx.whl
Windows 10/11
- install visual studio 2019 or newer. make sure C++ development package is installed. install CUDA
- set powershell script execution policy
- start a new powershell, run
tools/msvc_setup.ps1
- run
$Env:CUMM_DISABLE_JIT = "1"
- run
python setup.py install
/pip install -e .
/python setup.py bdist_wheel
+pip install dists/xxx.whl
Note
The work is done when the author is an employee at Tusimple.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for cumm_cu111-0.2.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfcf4c45b5176ed9c65db17784712332819a6a5c2458973fcdedae1d282aed96 |
|
MD5 | ddfe3926cc9462d3cbd7098b60b66c95 |
|
BLAKE2b-256 | a7859b7f36fdfe50b7f909eafbecc1d9f2802a9fff052510a3b5be1d51a43913 |
Hashes for cumm_cu111-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86e9cb1d3757715d0145f4aefd76c35949482d43732dab2bc8ce8d5a81e2c0a4 |
|
MD5 | 08b0c1d258a5edff823475ae12dc7244 |
|
BLAKE2b-256 | 33b6be8c1d3c8dd834febb6c06925ba19069b2d1d5ffb66a9da3aa6acee053da |
Hashes for cumm_cu111-0.2.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09e9ab4b1c12e37f56563d17f959309be0b027636e2a1e96359553ec0b52eab1 |
|
MD5 | 3aa31960bc414e3cca91d2a7083ad5d6 |
|
BLAKE2b-256 | 43549e1abca6ed08e9f8d68f2d5b7e7b8fd28409b0d01f018fc6065d8a1add04 |
Hashes for cumm_cu111-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85b4140f3af0540237aea0619d0d866e91a737e33eadc16246b5460040e3bb9a |
|
MD5 | 8938c50d9e9db10b85d78883ae59783d |
|
BLAKE2b-256 | 1fc764ba608e6e56098d9c0b496246c146563de28d3b317d0bdb1f8c48ca3d33 |
Hashes for cumm_cu111-0.2.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f370687cf660b4c33f9e878baa9d34dca6e28bace5a46e13b87180d2c78c9946 |
|
MD5 | 72fba552482ddfb57020004235373e72 |
|
BLAKE2b-256 | e6717219a5be0ab7e3f5cfcb8fccb1c1db38ad05c3218c10384ba8650218f051 |
Hashes for cumm_cu111-0.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 383c0e6024942a5ee55353d2007f7b15b9f00e2c4eb5383c9cf8384bf20975c7 |
|
MD5 | 174e4399a0a77fdbdb0ea30af16e12ee |
|
BLAKE2b-256 | ef2580af3b753fcc0f4bdd1fb961475edf2351a38b94e6da984f0708981932c8 |
Hashes for cumm_cu111-0.2.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 126c9db40bf861614d3276e813a2621e917d1fe33ae0ec7d0c35e5ae5564f171 |
|
MD5 | 1a2f627dddd03147e851e02d915f723e |
|
BLAKE2b-256 | 8e62deaaf5c728950b6158989b7e60a84fedff4af50422e1aaaf8e4859d824da |
Hashes for cumm_cu111-0.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c11109a7286cf4686063ff8a537601ef39f5b80f3a6f65c1fb0f34a4b53c1cc |
|
MD5 | 2a03b8a1551de16e8d966d10643b970b |
|
BLAKE2b-256 | 7d53f6966190536172eca71dcead8387b03b8a6d381391291736ea1c620fc8b9 |
Hashes for cumm_cu111-0.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17c52e73036930ab6b5c464bdabccc58ed7a7cf23dbb012ef9774911f0b2387b |
|
MD5 | e7b3d3bd92b0ebecdbe31ea6c1a0cd08 |
|
BLAKE2b-256 | c86b352bf00c23e2845e0ea35db9055dfd0399c7884bcec0fc9bdafa2fa735b2 |