nvdiffrast wheel for torch 2.8.0+cu128 (Python 3.12, Linux), its license and build script
Browse files- .gitattributes +1 -0
- NVDIFFRAST_LICENSE.txt +97 -0
- README.md +10 -1
- wheels/build_nvdiffrast_wheel.sh +48 -0
- wheels/nvdiffrast-0.4.0+pt2.8.0cu128-cp312-cp312-linux_x86_64.whl +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
wheels/nvdiffrast-0.4.0+pt2.8.0cu128-cp312-cp312-linux_x86_64.whl filter=lfs diff=lfs merge=lfs -text
|
NVDIFFRAST_LICENSE.txt
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Copyright (c) 2020, NVIDIA Corporation. All rights reserved.
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
Nvidia Source Code License (1-Way Commercial)
|
| 5 |
+
|
| 6 |
+
=======================================================================
|
| 7 |
+
|
| 8 |
+
1. Definitions
|
| 9 |
+
|
| 10 |
+
"Licensor" means any person or entity that distributes its Work.
|
| 11 |
+
|
| 12 |
+
"Software" means the original work of authorship made available under
|
| 13 |
+
this License.
|
| 14 |
+
|
| 15 |
+
"Work" means the Software and any additions to or derivative works of
|
| 16 |
+
the Software that are made available under this License.
|
| 17 |
+
|
| 18 |
+
The terms "reproduce," "reproduction," "derivative works," and
|
| 19 |
+
"distribution" have the meaning as provided under U.S. copyright law;
|
| 20 |
+
provided, however, that for the purposes of this License, derivative
|
| 21 |
+
works shall not include works that remain separable from, or merely
|
| 22 |
+
link (or bind by name) to the interfaces of, the Work.
|
| 23 |
+
|
| 24 |
+
Works, including the Software, are "made available" under this License
|
| 25 |
+
by including in or with the Work either (a) a copyright notice
|
| 26 |
+
referencing the applicability of this License to the Work, or (b) a
|
| 27 |
+
copy of this License.
|
| 28 |
+
|
| 29 |
+
2. License Grants
|
| 30 |
+
|
| 31 |
+
2.1 Copyright Grant. Subject to the terms and conditions of this
|
| 32 |
+
License, each Licensor grants to you a perpetual, worldwide,
|
| 33 |
+
non-exclusive, royalty-free, copyright license to reproduce,
|
| 34 |
+
prepare derivative works of, publicly display, publicly perform,
|
| 35 |
+
sublicense and distribute its Work and any resulting derivative
|
| 36 |
+
works in any form.
|
| 37 |
+
|
| 38 |
+
3. Limitations
|
| 39 |
+
|
| 40 |
+
3.1 Redistribution. You may reproduce or distribute the Work only
|
| 41 |
+
if (a) you do so under this License, (b) you include a complete
|
| 42 |
+
copy of this License with your distribution, and (c) you retain
|
| 43 |
+
without modification any copyright, patent, trademark, or
|
| 44 |
+
attribution notices that are present in the Work.
|
| 45 |
+
|
| 46 |
+
3.2 Derivative Works. You may specify that additional or different
|
| 47 |
+
terms apply to the use, reproduction, and distribution of your
|
| 48 |
+
derivative works of the Work ("Your Terms") only if (a) Your Terms
|
| 49 |
+
provide that the use limitation in Section 3.3 applies to your
|
| 50 |
+
derivative works, and (b) you identify the specific derivative
|
| 51 |
+
works that are subject to Your Terms. Notwithstanding Your Terms,
|
| 52 |
+
this License (including the redistribution requirements in Section
|
| 53 |
+
3.1) will continue to apply to the Work itself.
|
| 54 |
+
|
| 55 |
+
3.3 Use Limitation. The Work and any derivative works thereof only
|
| 56 |
+
may be used or intended for use non-commercially. The Work or
|
| 57 |
+
derivative works thereof may be used or intended for use by Nvidia
|
| 58 |
+
or its affiliates commercially or non-commercially. As used herein,
|
| 59 |
+
"non-commercially" means for research or evaluation purposes only
|
| 60 |
+
and not for any direct or indirect monetary gain.
|
| 61 |
+
|
| 62 |
+
3.4 Patent Claims. If you bring or threaten to bring a patent claim
|
| 63 |
+
against any Licensor (including any claim, cross-claim or
|
| 64 |
+
counterclaim in a lawsuit) to enforce any patents that you allege
|
| 65 |
+
are infringed by any Work, then your rights under this License from
|
| 66 |
+
such Licensor (including the grant in Section 2.1) will terminate
|
| 67 |
+
immediately.
|
| 68 |
+
|
| 69 |
+
3.5 Trademarks. This License does not grant any rights to use any
|
| 70 |
+
Licensor's or its affiliates' names, logos, or trademarks, except
|
| 71 |
+
as necessary to reproduce the notices described in this License.
|
| 72 |
+
|
| 73 |
+
3.6 Termination. If you violate any term of this License, then your
|
| 74 |
+
rights under this License (including the grant in Section 2.1) will
|
| 75 |
+
terminate immediately.
|
| 76 |
+
|
| 77 |
+
4. Disclaimer of Warranty.
|
| 78 |
+
|
| 79 |
+
THE WORK IS PROVIDED "AS IS" WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 80 |
+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF
|
| 81 |
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR
|
| 82 |
+
NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER
|
| 83 |
+
THIS LICENSE.
|
| 84 |
+
|
| 85 |
+
5. Limitation of Liability.
|
| 86 |
+
|
| 87 |
+
EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL
|
| 88 |
+
THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE
|
| 89 |
+
SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
|
| 90 |
+
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF
|
| 91 |
+
OR RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK
|
| 92 |
+
(INCLUDING BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION,
|
| 93 |
+
LOST PROFITS OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER
|
| 94 |
+
COMMERCIAL DAMAGES OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF
|
| 95 |
+
THE POSSIBILITY OF SUCH DAMAGES.
|
| 96 |
+
|
| 97 |
+
=======================================================================
|
README.md
CHANGED
|
@@ -28,6 +28,7 @@ whole-body motion, after which a foot refinement module (FootMR) and a hand refi
|
|
| 28 |
|---|---|---|
|
| 29 |
| `exmr.safetensors` | ExMR model (EMA weights, 236 MB) | `8d3947310c30444ec59dae4662574d7a32bf83af30320eeac87146529ff2fda5` |
|
| 30 |
| `rtmw-x_384x288_fp16.onnx` | RTMW-x 2D whole-body keypoint detector, FP16 (optional `--pose_backend rtmw`), see below | `957ddb5ed34576593a918b3e514003ab9cc85d037309b9a23d9e0209530e98ed` |
|
|
|
|
| 31 |
|
| 32 |
## Usage
|
| 33 |
|
|
@@ -77,6 +78,14 @@ onnx.save(float16.convert_float_to_float16(model, keep_io_types=True), "rtmw-x_3
|
|
| 77 |
The only change is the conversion of the internal computations to FP16 (inputs and outputs stay
|
| 78 |
FP32). We host it so that ExMR's results can be reproduced with exactly this file.
|
| 79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
## Citation
|
| 81 |
|
| 82 |
```bibtex
|
|
@@ -90,4 +99,4 @@ FP32). We host it so that ExMR's results can be reproduced with exactly this fil
|
|
| 90 |
|
| 91 |
Please also cite [GVHMR](https://github.com/zju3dv/GVHMR), which ExMR builds on, and the
|
| 92 |
third-party models listed in the ExMR repository's
|
| 93 |
-
[THIRD_PARTY_NOTICES.md](https://github.com/twehrbein/ExMR/blob/main/THIRD_PARTY_NOTICES.md).
|
|
|
|
| 28 |
|---|---|---|
|
| 29 |
| `exmr.safetensors` | ExMR model (EMA weights, 236 MB) | `8d3947310c30444ec59dae4662574d7a32bf83af30320eeac87146529ff2fda5` |
|
| 30 |
| `rtmw-x_384x288_fp16.onnx` | RTMW-x 2D whole-body keypoint detector, FP16 (optional `--pose_backend rtmw`), see below | `957ddb5ed34576593a918b3e514003ab9cc85d037309b9a23d9e0209530e98ed` |
|
| 31 |
+
| `wheels/nvdiffrast-0.4.0+pt2.8.0cu128-cp312-cp312-linux_x86_64.whl` | nvdiffrast renderer for torch 2.8.0+cu128, Python 3.12, Linux (installed by ExMR's `docs/INSTALL.md`), see below | `ca26d44f4f198e8fb460f86f355c5fdaeaac6319e15a5551ea31397719c0d563` |
|
| 32 |
|
| 33 |
## Usage
|
| 34 |
|
|
|
|
| 78 |
The only change is the conversion of the internal computations to FP16 (inputs and outputs stay
|
| 79 |
FP32). We host it so that ExMR's results can be reproduced with exactly this file.
|
| 80 |
|
| 81 |
+
`wheels/nvdiffrast-0.4.0+pt2.8.0cu128-cp312-cp312-linux_x86_64.whl` is a build of
|
| 82 |
+
[nvdiffrast](https://github.com/NVlabs/nvdiffrast) v0.4.0 by NVIDIA, licensed under the NVIDIA
|
| 83 |
+
Source Code License for non-commercial use (research or evaluation) only (see
|
| 84 |
+
`NVDIFFRAST_LICENSE.txt` in this repository; the wheel contains it too). It is built from the
|
| 85 |
+
unmodified v0.4.0 source (commit `253ac4f`; only the version label `+pt2.8.0cu128` is added) with
|
| 86 |
+
`wheels/build_nvdiffrast_wheel.sh`: conda-forge nvcc 12.8 and gcc 14 against glibc 2.28, for the
|
| 87 |
+
GPUs that torch 2.8.0+cu128 supports. We host it so that ExMR installs without compiling.
|
| 88 |
+
|
| 89 |
## Citation
|
| 90 |
|
| 91 |
```bibtex
|
|
|
|
| 99 |
|
| 100 |
Please also cite [GVHMR](https://github.com/zju3dv/GVHMR), which ExMR builds on, and the
|
| 101 |
third-party models listed in the ExMR repository's
|
| 102 |
+
[THIRD_PARTY_NOTICES.md](https://github.com/twehrbein/ExMR/blob/main/THIRD_PARTY_NOTICES.md).
|
wheels/build_nvdiffrast_wheel.sh
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
# Build the nvdiffrast v0.4.0 wheel for ExMR's torch (2.8.0+cu128, Python 3.12, Linux x86_64), so
|
| 3 |
+
# that users install it without a compiler (ExMR's docs/INSTALL.md). Needs only conda (Miniforge):
|
| 4 |
+
#
|
| 5 |
+
# bash build_nvdiffrast_wheel.sh <out dir>
|
| 6 |
+
#
|
| 7 |
+
# The wheel works on every Linux that torch 2.8 supports: it is built against glibc 2.28's headers
|
| 8 |
+
# (conda's sysroot_linux-64=2.28, the manylinux_2_28 baseline of the torch wheels), so it needs no
|
| 9 |
+
# newer glibc than torch (checked 2026-10-23: GLIBC_2.14, GLIBCXX_3.4.21; imports and renders
|
| 10 |
+
# under glibc 2.28). GPUs: torch's own list (RTX 40 runs the code built for 8.6).
|
| 11 |
+
# The source is the unmodified v0.4.0 tag; only the version gets the local label +pt2.8.0cu128.
|
| 12 |
+
set -eo pipefail
|
| 13 |
+
OUT=$(realpath -m "${1:?usage: $0 <out dir>}")
|
| 14 |
+
ENV=${ENV:-nvdiffrast-build}
|
| 15 |
+
ARCHS="7.0;7.5;8.0;8.6;9.0;10.0;12.0"
|
| 16 |
+
COMMIT=253ac4fcea7de5f396371124af597e6cc957bfae # tag v0.4.0
|
| 17 |
+
|
| 18 |
+
source "$(conda info --base)/etc/profile.d/conda.sh"
|
| 19 |
+
conda create -y -n "$ENV" -c conda-forge python=3.12 sysroot_linux-64=2.28 \
|
| 20 |
+
cuda-version=12.8 cuda-nvcc cuda-cudart-dev cuda-cccl libcublas-dev libcusparse-dev \
|
| 21 |
+
libcusolver-dev ninja git
|
| 22 |
+
conda activate "$ENV" # sets CC/CXX to the environment's gcc
|
| 23 |
+
export PYTHONNOUSERSITE=1
|
| 24 |
+
pip install torch==2.8.0 --index-url https://download.pytorch.org/whl/cu128
|
| 25 |
+
pip install setuptools wheel
|
| 26 |
+
|
| 27 |
+
SRC=$(mktemp -d)
|
| 28 |
+
git clone -q https://github.com/NVlabs/nvdiffrast.git "$SRC/nvdiffrast"
|
| 29 |
+
git -C "$SRC/nvdiffrast" checkout -q "$COMMIT"
|
| 30 |
+
sed -i 's/^version = "0.4.0"$/version = "0.4.0+pt2.8.0cu128"/' "$SRC/nvdiffrast/pyproject.toml"
|
| 31 |
+
grep -n "^version" "$SRC/nvdiffrast/pyproject.toml"
|
| 32 |
+
|
| 33 |
+
mkdir -p "$OUT"
|
| 34 |
+
# the compiler packages set a default TORCH_CUDA_ARCH_LIST on activation: override it
|
| 35 |
+
TORCH_CUDA_ARCH_LIST="$ARCHS" CUDA_HOME=$CONDA_PREFIX \
|
| 36 |
+
pip wheel --no-build-isolation --no-deps -w "$OUT" "$SRC/nvdiffrast"
|
| 37 |
+
rm -rf "$SRC"
|
| 38 |
+
|
| 39 |
+
WHL=$(ls "$OUT"/nvdiffrast-0.4.0+pt2.8.0cu128-*.whl)
|
| 40 |
+
SO=$(mktemp -d)
|
| 41 |
+
python -m zipfile -e "$WHL" "$SO"
|
| 42 |
+
echo "== $WHL"
|
| 43 |
+
echo "sha256: $(sha256sum "$WHL" | cut -d' ' -f1)"
|
| 44 |
+
echo "glibc needed: $(objdump -T "$SO"/_nvdiffrast_c*.so | grep -o 'GLIBC_[0-9.]*' | sort -uV | tail -1)"
|
| 45 |
+
echo "libstdc++ needed: $(objdump -T "$SO"/_nvdiffrast_c*.so | grep -o 'GLIBCXX_[0-9.]*' | sort -uV | tail -1)"
|
| 46 |
+
command -v cuobjdump >/dev/null &&
|
| 47 |
+
echo "GPU code: $(cuobjdump --list-elf "$SO"/_nvdiffrast_c*.so | grep -o 'sm_[0-9]*' | sort -uV | tr '\n' ' ')"
|
| 48 |
+
rm -rf "$SO"
|
wheels/nvdiffrast-0.4.0+pt2.8.0cu128-cp312-cp312-linux_x86_64.whl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ca26d44f4f198e8fb460f86f355c5fdaeaac6319e15a5551ea31397719c0d563
|
| 3 |
+
size 4132409
|