Skip to content

Commit

Permalink
Last modifications for v0.16.0 (#815)
Browse files Browse the repository at this point in the history
* Finish everything for v0.16.0

Signed-off-by: Clement Fuji Tsang <cfujitsang@nvidia.com>

* --amend

Signed-off-by: Clement Fuji Tsang <cfujitsang@nvidia.com>

* add support for cuda 12.4

Signed-off-by: Clement Fuji Tsang <cfujitsang@nvidia.com>

---------

Signed-off-by: Clement Fuji Tsang <cfujitsang@nvidia.com>
  • Loading branch information
Caenorst authored Jul 25, 2024
1 parent 0e96cb4 commit b429235
Show file tree
Hide file tree
Showing 15 changed files with 2,649 additions and 53 deletions.
30 changes: 16 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,34 @@ Note that Kaolin library is part of the larger [NVIDIA Kaolin effort](https://de
Starting with v0.12.0, Kaolin supports installation with wheels:
```
# Replace TORCH_VERSION and CUDA_VERSION with your torch / cuda versions
pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VERSION}_cu{CUDA_VERSION}.html
pip install kaolin==0.16.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VERSION}_cu{CUDA_VERSION}.html
```
For example, to install kaolin 0.15.0 over torch 1.12.1 and cuda 11.3:
For example, to install kaolin 0.16.0 over torch 2.0.0 and cuda 11.8:
```
pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.12.1_cu113.html
pip install kaolin==0.16.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.0.0_cu118.html
```

## About the Latest Release (0.15.0)
## About the Latest Release (0.16.0)

In this version we added a [non commercial section](https://kaolin.readthedocs.io/en/latest/modules/kaolin.non_commercial.html) under [NSCL license](LICENSE.NSCL). See [The license section for more info](#Licenses) for more details.
In this version we added a [Physics section](https://kaolin.readthedocs.io/en/latest/modules/physics.html).

In this new section we implemented [features for Flexicubes](https://kaolin.readthedocs.io/en/latest/modules/kaolin.non_commercial.html#kaolin.non_commercial.FlexiCubes) a method to extract meshes from scalar fields. See more information in [the official repository](https://github.com/nv-tlabs/FlexiCubes) which is now using Kaolin's implementation.
In this new section we implemented [Simplicits](https://kaolin.readthedocs.io/en/latest/modules/kaolin.physics.html) a geometry-agnostic method for elastic simulation. See more information in [the project page](https://research.nvidia.com/labs/toronto-ai/simplicits/).

<a href="https://kaolin.readthedocs.io/en/latest/modules/kaolin.non_commercial.html#kaolin.non_commercial.FlexiCubes"><img src="./assets/flexicubes.png" alt="flexicubes" height="250" /></a>
We've also added a [math section](https://kaolin.readthedocs.io/en/latest/modules/kaolin.math.html) with quaternions math features.

In addition we implemented a [GLTF mesh loader](https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.gltf.html) that can be used to load models from [Objaverse](https://objaverse.allenai.org/objaverse-1.0) and [Objaverse-XL](https://objaverse.allenai.org/).
Finally we've improved workflow, with an [easy rendering API](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.easy_render.html), for quickly visualizing a model.

<a href="https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.gltf.html"><img src="./assets/gltf.png" alt="gltf" height="250" /></a>
Check our new tutorials:
[Use Simplicit's Easy API to Simulate a Mesh](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/physics/simplicits_easy_api.ipynb) In this notebook we show how to use the high-level Simplicit API to simulate an imported Mesh.
[Interact with a Physics Simulation](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/physics/simplicits_interactive.ipynb) In this notebook we show to interact with the simulation by moving objects.
[Use Simplicit's Full-Feature API](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/physics/simplicits_low_level_api.ipynb) In this notebook we show how to use the low-level API to simulate a pointcloud.


Check our new tutorial:
[**Load and render a GLTF file** interactively into a Jupyter notebook:](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/gltf_viz.ipynb)
In this file we show how to load a gltf file and fully differentiably render it with [nvdiffrast](https://nvlabs.github.io/nvdiffrast/) and [spherical gaussian for diffuse and specular lighting](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.lighting.html), using displacement mapping and other materials properties from the GLTF file.
[Easy rendering of Meshes](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/easy_mesh_render.ipynb) Use our new high-level API to load a mesh, create a camera and lighting parameters and render interactively.

<a href="https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/gltf_viz.ipynb"><img src="./assets/avocado.png" alt="gltf notebook" height="250" /></a>
<a href="https://github.com/NVIDIAGameWorks/kaolin/tree/master/examples/tutorial/physics"><img src="./assets/physics_bulldozer.gif" alt="physics documentation" height="250" /></a>

See [change logs](https://github.com/NVIDIAGameWorks/kaolin/releases/tag/v0.15.0) for details.
See [change logs](https://github.com/NVIDIAGameWorks/kaolin/releases/tag/v0.16.0) for details.

## Contributing

Expand Down Expand Up @@ -98,6 +99,7 @@ Current Team:
- Technical Lead: Clement Fuji Tsang
- Manager: Maria (Masha) Shugrina
- Charles Loop
- Vismay Modi
- Or Perel
- Alexander Zook

Expand Down
Binary file added assets/physics_bulldozer.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
206 changes: 202 additions & 4 deletions ci/gitlab_jenkins_templates/core_ci.jenkins
Original file line number Diff line number Diff line change
Expand Up @@ -65,53 +65,251 @@ def ubuntu_cpuonly_configs = [

// Configs for building python wheels
def ubuntu_for_cuda_wheels_configs = [
/*
[
'cudaVer': '11.7.1', 'cudnnVer': '8',
'torchVer': '2.0.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.0.0', 'archsToTest': 'MULTI'
],
/*
[
'cudaVer': '11.7.1', 'cudnnVer': '8',
'torchVer': '2.0.1', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.0.1', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.1.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.1.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.1.1', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.1.1', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.1.2', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.1.2', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.2.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.2.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.2.1', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.2.1', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.3.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.3.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.3.1', 'archsToTest': 'MULTI'
],
*/
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.3.1', 'archsToTest': 'MULTI'
]
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.4.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.4.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.4.1', 'cudnnVer': '',
'torchVer': '2.4.0', 'archsToTest': 'MULTI'
]
*/
]

def ubuntu_for_cpu_wheels_configs = [
/*
[
'torchVer': '2.3,1'
'torchVer': '2.0.0'
],
[
'torchVer': '2.0.0'
'torchVer': '2.0.1'
],
[
'torchVer': '2.1.0'
],
[
'torchVer': '2.1.1'
],
[
'torchVer': '2.1.2'
],
[
'torchVer': '2.2.0'
],
[
'torchVer': '2.2.1'
],
[
'torchVer': '2.3.0'
],
[
'torchVer': '2.3.1'
]
[
'torchVer': '2.4.0'
]
*/
]

def windows_for_cuda_wheels_configs = [
/*
[
'cudaVer': '11.7', 'cudnnVer': '8',
'torchVer': '2.0.0', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.0.0', 'archsToTest': ''
],
[
'cudaVer': '11.7', 'cudnnVer': '8',
'torchVer': '2.0.1', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.0.1', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.1.0', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.1.0', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.1.1', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.1.1', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.1.2', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.1.2', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.2.0', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.2.0', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.2.1', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.2.1', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.3.0', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.3.0', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.3.1', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.3.1', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.4.0', 'archsToTest': ''
],
*/
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.4.0', 'archsToTest': ''
],
[
'cudaVer': '12.4', 'cudnnVer': '',
'torchVer': '2.4.0', 'archsToTest': ''
]
]

def windows_for_cpu_wheels_configs = [
/*
[
'torchVer': '2.0.0', 'archsToTest': ''
],
[
'torchVer': '2.0.1', 'archsToTest': ''
],
[
'torchVer': '2.1.0', 'archsToTest': ''
],
[
'torchVer': '2.1.1', 'archsToTest': ''
],
[
'torchVer': '2.1.2', 'archsToTest': ''
],
[
'torchVer': '2.2.0', 'archsToTest': ''
],
[
'torchVer': '2.2.1', 'archsToTest': ''
],
[
'torchVer': '2.3.0', 'archsToTest': ''
],
[
'torchVer': '2.3.1', 'archsToTest': ''
]
*/
[
'torchVer': '2.4.0', 'archsToTest': ''
]
]
// Configs for build from Windows server docker images
// (See: https://hub.docker.com/_/microsoft-dotnet-framework-sdk)
Expand Down
2 changes: 0 additions & 2 deletions ci/gitlab_jenkins_templates/windows_wheels_CI.jenkins
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,7 @@ spec:
--log-disable=PIL.TiffImagePlugin \
--log-disable=kaolin.rep.surface_mesh \
/kaolin/tests/python/kaolin/io/test_gltf.py \
/kaolin/tests/python/kaolin/io/usd/ \
/kaolin/tests/python/kaolin/io/test_obj.py
'''
}
if (currentBuild.getCurrentResult() != "FAILURE") {
Expand Down
Loading

0 comments on commit b429235

Please sign in to comment.