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.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cd61d285e793a36a0370d3c61794bb3ba4a25df2268fe3db47f07b6512fb654 |
|
MD5 | 8c5cbf281a17a228ff380102fb0feaea |
|
BLAKE2b-256 | f5402832efac92d2f44223cc59bdc8326980b203fd9345693c456dccbbf617a8 |
Hashes for cumm_cu113-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08c6680e55e05b76d66c12324809454c8499edc69c4716583ab66faf69247a1a |
|
MD5 | c6f9c44d2721e31941046e506a6b4eed |
|
BLAKE2b-256 | 57aba99abb3cd8518bd7313fe257d7559dd95de3ffb009eb9856137178a624db |
Hashes for cumm_cu113-0.2.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e196ba104259d893b73f73c2e2b639e47cef9f0f7ac35bf139b0abefc4dba05 |
|
MD5 | f047196bdba9c7dcfec14da52ea2dee0 |
|
BLAKE2b-256 | 3ff634f7c16d2cad9f958b52a74fa28e6b365fbd0f59e99cb3bf46a4c4acba74 |
Hashes for cumm_cu113-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6653ec152dc8edfd3d6dffc771da5e1fa4152d22c3f30539681d633d50b62868 |
|
MD5 | 8fafc2b5f4a3884dc7e09e4f95a7dd22 |
|
BLAKE2b-256 | 3ce108da19cb578e1edf40108a68a47324f1b38306c6f0f579bdd3dd7bc8d4c2 |
Hashes for cumm_cu113-0.2.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b51fbb0cb5ecb008d527b23f23b233f5e494b09a93a1b102a7610312218ad7d |
|
MD5 | f759d8fe38d45afb81c401ceafc30927 |
|
BLAKE2b-256 | 31679765a36c7bc59f7c6d540cce8e90a196481d5cf018e565f35274d228262e |
Hashes for cumm_cu113-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c4b181b4a2723364a1b437e405a1134ac5ce399edddb77e757d9a41df01b206 |
|
MD5 | 7ebe1f28d9fb21bfcea65ab46dfafa4b |
|
BLAKE2b-256 | 185628287a1a5360d654d20f85faca67f9d6d949c007c558a98bac73dad81baf |
Hashes for cumm_cu113-0.2.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dee3744e541bb393e2a07756970f8fb7baef9f36f04080c25d4f6bd1d95d6d6e |
|
MD5 | d0cf596ad5c0eba179efd5992f6bcebe |
|
BLAKE2b-256 | 413ba8b69982bfd90d5fe21ad144e8e50ce204e46049753fd6d29749281cc94c |
Hashes for cumm_cu113-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec1786324adb4adbc630f21ed50a7128170c82274cdd0bb2da7d076a6f63633a |
|
MD5 | 228b4b34d170ebdabcc51f6e75b02aee |
|
BLAKE2b-256 | 2d2b8b6782cbc8cfbf4124ef276d413580d1fb09a23a81ca265d0343a7ccd089 |