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_cu113-0.2.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20600ec8c606f434af2a89b68c542a386c6b7bfc2f56680153e508f20816e8fd |
|
MD5 | c31107bad69950f613f6e0eb55438fbf |
|
BLAKE2b-256 | d98c316919e3945b010b0188fddaa2dfab1ef1250b297d31f993e7ddb101e7b6 |
Hashes for cumm_cu113-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 027e260e4b6637171bfe360764093dfa554df7ef06a8e4d93e044131bda7e05b |
|
MD5 | d24cb26740bee83940a31373fa8ffc7d |
|
BLAKE2b-256 | 256e18a52def4498c3986b59cdcfecc0c4237df0c18b9a369f8412ec0366319d |
Hashes for cumm_cu113-0.2.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5eb29d761d839726377d3633512fe2ac34bc7ba32feffdc8b7d3a208ab0257c |
|
MD5 | 419c0649ef92d7ec514153da0b00859b |
|
BLAKE2b-256 | 7ce506053541078c043ab35e5d87ad841a8d807e9b3f8d6a01c69cca7c2588c0 |
Hashes for cumm_cu113-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3286bb78af8d03ec1e283be7483a3e2375fafd5a37716a3774267afbfe5ab4a9 |
|
MD5 | 097cb769bcb2d3cdc829781b666d5d7c |
|
BLAKE2b-256 | a4a366231d3d0961257d5abd7cb656759fd9f966a2191f19e72800ece995b17c |
Hashes for cumm_cu113-0.2.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3112b69600a69339545884cb876856365a3c1ed47cdf5c118a21f2f7168c6c11 |
|
MD5 | 3749f9b506a138d901ed83cff8cfd1f0 |
|
BLAKE2b-256 | 6b83ee4e2c50a8780ec36a5d79dd3c22972eacd0c6764567f82bf233ed862b99 |
Hashes for cumm_cu113-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce3c9abb2938be35e54577d16d957faf4d00e5ca32257b292271da3cd3cf69e7 |
|
MD5 | 383f651242d8abed2c6ace5c5f837085 |
|
BLAKE2b-256 | 30bfb89a716b3df556fc16aedc02012f0eff13b9694c27830a4d85589a089bf3 |
Hashes for cumm_cu113-0.2.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39624f86dbb33fbc3a8f9e10a355811109470441c54ee6cc62ad6ed659388bd6 |
|
MD5 | 72e53311bd384d34e166e58f9c746663 |
|
BLAKE2b-256 | 48fb981064aaf03a17146b0ce44c5936d247db174b1029cb36ef10e6c18aa506 |
Hashes for cumm_cu113-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ee36027bf28ecd3450254920dacc81a779bd7c85f8277861cc07775c7320856 |
|
MD5 | 278ed542a42e43c56f4b2aacd1a6c613 |
|
BLAKE2b-256 | c4073b0fed013340a7c11245baae9eac03d2c731f3b60637eb55f9eb73693dc5 |