Commit 1f5ce924 authored by yan.yan's avatar yan.yan
Browse files

v2.2.4: add prebuilts for cuda 11.6 and 11.8

parent bd5bc8db
......@@ -15,8 +15,8 @@ jobs:
runs-on: windows-2019
strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11.0-rc.2']
cuda-version: ['10.2', '11.3', '11.4', '11.7']
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
cuda-version: ['10.2', '11.3', '11.4', '11.6', '11.7', '11.8']
steps:
- uses: actions/checkout@master
- uses: dorny/paths-filter@v2
......@@ -115,8 +115,8 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11.0-rc.2'] # this version is only used for upload.
cuda-version: ['102', '113', '114', '117', '']
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] # this version is only used for upload.
cuda-version: ['102', '113', '114', '116', '117', '118']
steps:
- uses: actions/checkout@master
......
# Changelog
## [2.2.4] - 2022-10-13
### Added
- Add prebuilt for CUDA 11.8 (RTX 4090 and H100) and CUDA 11.6.
### Fixed
- Fix small bugs
## [2.2.3] - 2022-9-28
### Fixed
- Fix missing .contiguous for input feature
......
......@@ -17,6 +17,8 @@
[pypi-ver-114]: https://img.shields.io/pypi/v/spconv-cu114
[pypi-ver-111]: https://img.shields.io/pypi/v/spconv-cu111
[pypi-ver-117]: https://img.shields.io/pypi/v/spconv-cu117
[pypi-ver-116]: https://img.shields.io/pypi/v/spconv-cu116
[pypi-ver-118]: https://img.shields.io/pypi/v/spconv-cu118
[pypi-ver-113]: https://img.shields.io/pypi/v/spconv-cu113
[pypi-ver-120]: https://img.shields.io/pypi/v/spconv-cu120
......@@ -36,9 +38,15 @@
[pypi-download-120]: https://img.shields.io/pypi/dm/spconv-cu120
[pypi-url-cpu]: https://pypi.org/project/spconv/
[pypi-download-cpu]: https://img.shields.io/pypi/dm/spconv
[pypi-url-118]: https://pypi.org/project/spconv-cu118/
[pypi-download-118]: https://img.shields.io/pypi/dm/spconv-cu118
[pypi-url-116]: https://pypi.org/project/spconv-cu118/
[pypi-download-116]: https://img.shields.io/pypi/dm/spconv-cu118
# SpConv: Spatially Sparse Convolution Library
[![Build Status](https://github.com/traveller59/spconv/workflows/build/badge.svg)](https://github.com/traveller59/spconv/actions?query=workflow%3Abuild)
![pypi versions](https://img.shields.io/pypi/pyversions/spconv-cu117)
| | PyPI | Install |Downloads |
......@@ -47,7 +55,10 @@
| CUDA 10.2 | [![PyPI Version][pypi-ver-102]][pypi-url-102] | ```pip install spconv-cu102```| [![pypi monthly download][pypi-download-102]][pypi-url-102]|
| CUDA 11.3 | [![PyPI Version][pypi-ver-113]][pypi-url-113] | ```pip install spconv-cu113```| [![pypi monthly download][pypi-download-113]][pypi-url-113]|
| CUDA 11.4 | [![PyPI Version][pypi-ver-114]][pypi-url-114] | ```pip install spconv-cu114```| [![pypi monthly download][pypi-download-114]][pypi-url-114]|
| CUDA 11.6 | [![PyPI Version][pypi-ver-116]][pypi-url-116] | ```pip install spconv-cu116```| [![pypi monthly download][pypi-download-116]][pypi-url-116]|
| CUDA 11.7 | [![PyPI Version][pypi-ver-117]][pypi-url-117] | ```pip install spconv-cu117```| [![pypi monthly download][pypi-download-117]][pypi-url-117]|
| CUDA 11.8 | [![PyPI Version][pypi-ver-118]][pypi-url-118] | ```pip install spconv-cu118```| [![pypi monthly download][pypi-download-118]][pypi-url-118]|
<!-- | CUDA 12.0 | [![PyPI Version][pypi-ver-120]][pypi-url-120] | ```pip install spconv-cu120```| [![pypi monthly download][pypi-download-120]][pypi-url-120]| -->
```spconv``` is a project that provide heavily-optimized sparse convolution implementation with tensor core support. check [benchmark](docs/BENCHMARK.md) to see how fast spconv 2.x runs.
......@@ -131,7 +142,7 @@ For Linux users, you need to install pip >= 20.3 first to install prebuilt.
**NOTE** It's safe to have different **minor** cuda version between system and conda (pytorch) in **CUDA >= 11.0** because of [CUDA Minor Version Compatibility](https://docs.nvidia.com/deploy/cuda-compatibility/#minor-version-compatibility). For example, you can use spconv-cu114 with anaconda version of pytorch cuda 11.1 in a OS with CUDA 11.2 installed.
**NOTE** In Linux, you can install spconv-cuxxx without install CUDA to system! only suitable NVIDIA driver is required. for CUDA 11, we need driver >= 450.82.
**NOTE** In Linux, you can install spconv-cuxxx without install CUDA to system! only suitable NVIDIA driver is required. for CUDA 11, we need driver >= 450.82. You may need newer driver if you use newer CUDA. for cuda 11.8, you need to have driver >= 520 installed.
#### Prebuilt GPU Support Matrix
......@@ -141,8 +152,8 @@ If you use a GPU architecture that isn't compiled in prebuilt, spconv will use N
| CUDA version | GPU Arch List |
| -------------- |:---------------------:|
| 11.x | 52,60,61,70,75,80,86 |
| 12.x | 70,75,80,86,90 |
| 11.1~11.7 | 52,60,61,70,75,80,86 |
| 11.8+ | 60,70,75,80,86,89,90 |
### Build from source for development (JIT, recommend)
......@@ -191,6 +202,18 @@ You need to rebuild ```cumm``` first if you are build along a CUDA version that
5. run ```pip install pccm cumm wheel```
6. run ```python setup.py bdist_wheel```+```pip install dists/xxx.whl```
## Citation
If you find this project useful in your research, please consider cite:
```latex
@misc{spconv2022,
title={Spconv: Spatially Sparse Convolution Library},
author={Spconv Contributors},
howpublished = {\url{https://github.com/traveller59/spconv}},
year={2022}
}
```
## Contributers
* [EvernightAurora](https://github.com/EvernightAurora): add ampere feature.
......
[build-system]
requires = ["setuptools>=41.0", "wheel", "pccm>=0.4.0", "cumm>=0.3.4"]
requires = ["setuptools>=41.0", "wheel", "pccm>=0.4.0", "cumm>=0.3.5"]
# requires = ["setuptools>=41.0", "wheel", "pccm>=0.4.0", "cumm @ file:///io/dist/cumm_cu118-0.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"]
build-backend = "setuptools.build_meta"
......@@ -249,6 +249,11 @@ setup(
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: Implementation :: CPython',
],
# $ setup.py publish support.
......
......@@ -573,6 +573,7 @@ class GemmTunerSimple(pccm.ParameterizedClass):
auto ldb = b.stride(0);
auto ldc = c.stride(0);
if (desp.supported_ldx(lda, ldb, ldc)){{
auto desp2 = desp;
if (desp.is_nvrtc){{
if (!CompileInfo::algo_can_be_nvrtc_compiled(desp.min_arch)){{
continue;
......@@ -581,14 +582,13 @@ class GemmTunerSimple(pccm.ParameterizedClass):
if (!CompileInfo::arch_is_compiled_gemm(arch)){{
if (!CompileInfo::gemm_algo_can_use_ptx(desp.min_arch, arch)){{
if (CompileInfo::algo_can_be_nvrtc_compiled(desp.min_arch)){{
auto desp2 = desp;
desp2.is_nvrtc = true;
}}else{{
continue;
}}
}}
}}
finally_algos.push_back(desp);
finally_algos.push_back(desp2);
}}
}}
std::sort(finally_algos.begin(), finally_algos.end(), [](auto a, auto b){{return a.min_arch > b.min_arch;}});
......@@ -1078,6 +1078,7 @@ class ConvTunerSimple(pccm.ParameterizedClass):
mask_width_valid = mask_width % desp.tile_shape[2] == 0;
}}
if (desp.supported_ldx_conv(ldi, ldw, ldo) && mask_width_valid){{
auto desp2 = desp;
if (desp.is_nvrtc){{
if (!CompileInfo::algo_can_be_nvrtc_compiled(desp.min_arch)){{
continue;
......@@ -1086,14 +1087,13 @@ class ConvTunerSimple(pccm.ParameterizedClass):
if (!CompileInfo::arch_is_compiled_gemm(arch)){{
if (!CompileInfo::gemm_algo_can_use_ptx(desp.min_arch, arch)){{
if (CompileInfo::algo_can_be_nvrtc_compiled(desp.min_arch)){{
auto desp2 = desp;
desp2.is_nvrtc = true;
}}else{{
continue;
}}
}}
}}
finally_algos.push_back(desp);
finally_algos.push_back(desp2);
}}
}}
std::sort(finally_algos.begin(), finally_algos.end(), [](auto a, auto b){{return a.min_arch > b.min_arch;}});
......
......@@ -11,6 +11,7 @@ $CUDA_KNOWN_URLS = @{
"11.3" = "https://developer.download.nvidia.com/compute/cuda/11.3.1/network_installers/cuda_11.3.1_win10_network.exe";
"11.4" = "https://developer.download.nvidia.com/compute/cuda/11.4.2/network_installers/cuda_11.4.2_win10_network.exe";
"11.5" = "https://developer.download.nvidia.com/compute/cuda/11.5.0/network_installers/cuda_11.5.0_win10_network.exe";
"11.6" = "https://developer.download.nvidia.com/compute/cuda/11.6.2/network_installers/cuda_11.6.2_windows_network.exe"
"11.7" = "https://developer.download.nvidia.com/compute/cuda/11.7.1/network_installers/cuda_11.7.1_windows_network.exe";
"11.8" = "https://developer.download.nvidia.com/compute/cuda/11.8.0/network_installers/cuda_11.8.0_windows_network.exe";
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment