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-0.2.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38b8088c8648733607652314ebc0881acdbc03c3331110431d676a4650840f7d |
|
MD5 | 4cc685f005bcfe036a2a3f636f44ddd5 |
|
BLAKE2b-256 | 17f4a8dbb9f3e88e30ad2160589034cb28f3ed9bb756b93d9b19558e848503b2 |
Hashes for cumm-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2af6fdfd7513b279ebf8ec14998adf42e14dc22179e5b30c39aa8ed48e86f57 |
|
MD5 | edaeda81c1e6e6faaa843cd22a737379 |
|
BLAKE2b-256 | 5336df0fb3c1f4cf56ba2569168496272e506aceea18f5d79730e473c835a5ce |
Hashes for cumm-0.2.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9924e5ec6660d21d8e954972c352910e398c5ef9ecc493fc6de467cb931e492a |
|
MD5 | 639f06c102230c999a7b6b51e76b6bfc |
|
BLAKE2b-256 | 053f247b45352b806d50e0e53becb9d2e9b1f8dee0d88af02e59c1534b85197e |
Hashes for cumm-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4889ddaca8f71b5024e1f07fda489b7fc65753c7accdef5c328a4f05374ca9b7 |
|
MD5 | de0ad80be75298e08cb1fb849505bb18 |
|
BLAKE2b-256 | eabcbb121062bd6171b1c413347c2b233442d82156db0b031a280712a1d53c88 |
Hashes for cumm-0.2.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d00a9e47f8f798f7f71db67abe278a04352d6d3524026b5e6a562706babc37c |
|
MD5 | 02f94144f73f32959620e6dc1f7c2bf4 |
|
BLAKE2b-256 | 317296232f7d7111c8d2471dfd774e6b7e77c7fd9e46be995b572e4d458fb566 |
Hashes for cumm-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 367ab1f00220b8ec37d404633e79e6f0e170982d573ab14d48c0c5baf25bdf53 |
|
MD5 | 1d1978e7a6b7e4549c36285dc809b897 |
|
BLAKE2b-256 | 910c728e6d1b0aa15d946dae1dfa5cccf124fb6d99f027b03535c75276351352 |
Hashes for cumm-0.2.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd7637449256e1b144585bfb98c898895707fc412d5433882baf0ddb59a4ef5e |
|
MD5 | 728e87291cefff08ce70ba2fffa42180 |
|
BLAKE2b-256 | 5c94cd123629d79706a7ed00bac11cc10c820b6ae5d341b2f27c29c250cec4d9 |
Hashes for cumm-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8576f21bd97f3b6d3e63155e142a4839763ce80ad6352c31440a3e33c9be6a8f |
|
MD5 | 49eeb5292371c0f120e412be1646e0f5 |
|
BLAKE2b-256 | 35c13836fb6edd8e4f6d523231d91a32016ba2911f765029c962e678793cf795 |