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.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ec8802aa0819e35866549536165962de8e6333fa9a1db5b3e4083263b580447 |
|
MD5 | 47310a0a26139eeeb8f6a2734c8c1619 |
|
BLAKE2b-256 | 4a2bb05bcb708d603e314da853af513444f3f51ecde7d549d42127575fa4a069 |
Hashes for cumm_cu113-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d3604cc9faca17ada6a9f7e616ce28da4e244fe39e925f61e23181a0191a126 |
|
MD5 | 3eef78ef8b016f35ce2e52ff60909b48 |
|
BLAKE2b-256 | 8072774e0456324fe6580563ae58d4a25a048e54c645d981653a9c0a1ce62e2e |
Hashes for cumm_cu113-0.2.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2d3a2d7b20b2b3c170f63f780d2eb29896e438722357782bb556d825045fc17 |
|
MD5 | 21dc5d62dd5369dce0e21ab9e38f3910 |
|
BLAKE2b-256 | 691871429c81c4f5fead50d3c111268b93695fa32768b5ca4719bb5b789ecdbf |
Hashes for cumm_cu113-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eee624e1b2f605921ad455bb349d239cf9b7ff4cb95ba022796cb7ad62cfd1df |
|
MD5 | 5f44de23a9404794facf5debd4fe4f08 |
|
BLAKE2b-256 | a098395f705f18f4647dd253c788a2893199eaabb24754b2d4a1bbfc1803146b |
Hashes for cumm_cu113-0.2.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 895fed351ea8ce0c2bb66d9d24e961c4b43566326fc87762ddd55d41ff6e25cb |
|
MD5 | 5bf7b11e22074b20fb039e8614bd13f2 |
|
BLAKE2b-256 | 568409f23a3a3bb490f9bf5e7d5d16ee48eb34a4ff73f80b099f7aa28d3bdb65 |
Hashes for cumm_cu113-0.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fe99697c5151c98b5691312afed7bc5282b63e933291049f6648ba01bcf4762 |
|
MD5 | f5a6ac18617600507664540f0e14c54f |
|
BLAKE2b-256 | c47cd8b84f73e106be893f9fbb8d81a7978e9a09045477ff874328a8b0f394c0 |
Hashes for cumm_cu113-0.2.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ee49224ebbc0af3b04407a1c522795b8154b6ed8cdbc13019ffacf007684fbb |
|
MD5 | a0f9727e72f32ca311bd990af383e8cd |
|
BLAKE2b-256 | 26cd568dca836a63310f96a86cf469e85afd46bd0ae82b725e3583b545e12dec |
Hashes for cumm_cu113-0.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57f06add645a8e70dda2b9f2915709509c2198dd520e052e40974c4eb6398570 |
|
MD5 | 5a1e03e5b6ca0b95f5ca29f837bbedc4 |
|
BLAKE2b-256 | fdcbbef772c1a90a14ba4081b54f5f7b03442ec9247abdb7f0971686876dd517 |
Hashes for cumm_cu113-0.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b4f4d628ba167d9a06302c05069b0ed90daf49e34899ca4e820f2a7b61eecfe |
|
MD5 | 1ef7f08d5d3d90fde25365f5e790215b |
|
BLAKE2b-256 | b4798e9f2c8526666557ccfa5279b525ecb85e63655ecae837212ce5bda841b6 |