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.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 525183a85c5bf27d589d373bcdd8801609f56768df93fe8c6d81a254e36f56af |
|
MD5 | e48e1c019d28a8e734cf74997997bf25 |
|
BLAKE2b-256 | ecc9da837ff39a54902eead777ac543e0ef7026a3bf66af3ea0ceca2aacc809a |
Hashes for cumm_cu113-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 978d4bcb0a84993a40a9aa0945b6d0d4ef14e7ae4ce1732c3d7c7f7b5e4f4471 |
|
MD5 | 6482fd2d22fcf496ff116281703ebc30 |
|
BLAKE2b-256 | 5ef7bad1e0dc6734f01f17e1b278f4e6178530ff85b0deb66610d0a3dd3aa314 |
Hashes for cumm_cu113-0.2.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 039873fedbfed5046d44b5cd3db8d39fd1f2200e2c5b89a848325db9758f7516 |
|
MD5 | dcdf05669c6bd227dca4715555b200fd |
|
BLAKE2b-256 | 44882616ff3dd61318260fa48bcc7470305995bfb3980c895c399080e4e4d8fc |
Hashes for cumm_cu113-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1a3c98474195c5e8fe716ea901d9dc2d37b4cc7c592a138824b87e3a613a1a0 |
|
MD5 | a1057356ce12c451a32f447922b117d5 |
|
BLAKE2b-256 | 845136c01d0d686413023cf16f48159f329ebae713f453bac36b6ca3480b7c0d |
Hashes for cumm_cu113-0.2.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 760e5c43d60036a1d8975595e6be7cb94a30cd92afc0d4d17cfd73844df544ab |
|
MD5 | 3ab169e4fac34203f9944f019d210cb1 |
|
BLAKE2b-256 | f5cc046d9d444bb0c3b5fddc0f35c7c5415613006b75355e18af2cf9b48a6ee3 |
Hashes for cumm_cu113-0.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec8fe82cfda5c19d9ffb372ef45a055dcb2c5473cb41dd9281f8d81a5947aa7c |
|
MD5 | 809adaf8117478d3eb954e57747c116b |
|
BLAKE2b-256 | eeb6dd42bcefd52306e3b838b80ebda311b2c026c46b147bb8af6ab5e4255ebb |
Hashes for cumm_cu113-0.2.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b250de557ac9e86da49df052917f3d541a49b57e2170100af5d70dbbbc10fe90 |
|
MD5 | 8f1b12f3d395cecf27c9f9526f97db61 |
|
BLAKE2b-256 | cf0be6fe033565ea47c9bd876c489864135626c17c3fa3703663315bce5f255b |
Hashes for cumm_cu113-0.2.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a320560ec9590d894693cdcb3db5e2b137b5781c811c7ab2721ced3a7936c59d |
|
MD5 | 56afba540ea281dece4983d2b5561756 |
|
BLAKE2b-256 | faeae46fc26864e857f5e8932ded406190e626213313040233d99d1a9b401b58 |
Hashes for cumm_cu113-0.2.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd5db324ed69231409196afe3ac1d93e9db9d054631cb0d04891ac43b190afab |
|
MD5 | 38ea6f8fda1175bb721b3fef5bf36e90 |
|
BLAKE2b-256 | c24ff24a36873956ea6fecfa36d33e06c4cdd1b003ac5c8fc30b56d4a78fce55 |