twehrbein commited on
Commit
03e3673
·
verified ·
1 Parent(s): 8debd2e

nvdiffrast wheel for torch 2.8.0+cu128 (Python 3.12, Linux), its license and build script

Browse files
.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