Add initial CUDA 13.0 support for pulsar and pycuda modules
Summary: CUDA 13.0 introduced breaking changes that cause build failures in pytorch3d:
1. Symbol Visibility Changes (pulsar)
- NVCC now forces
__global__functions to have hidden ELF visibility by default__global__function template stubs now have internal linkageFix: Added NVCC flags (
--device-entity-has-hidden-visibility=falseand-static-global-template-stub=false) for fbcode builds with CUDA 13.0+.2. cuCtxCreate API Change (pycuda)
- CUDA 13.0 changed
cuCtxCreatefrom 3 to 4 arguments- pycuda 2022.2 (current default) uses the old signature and fails to compile
- pycuda 2025.1.2 (D83501913) includes the CUDA 13.0 fix
Fix: Added CUDA 13.0 constraint to pycuda alias to auto-select pycuda 2025.1.2.
NCCL Compatibility Note:
- Current stable NCCL (2.25) is NOT compatible with CUDA 13.0 (
cudaTypedefs.hremoved)- NCCL 2.27+ works with CUDA 13.0 and will become stable in early January 2026 (per HPC Comms team)
- Until then, CUDA 13.0 builds require
-c hpc_comms.use_nccl=2.27References:
- GitHub issue: https://github.com/facebookresearch/pytorch3d/issues/2011
- NVIDIA blog: https://developer.nvidia.com/blog/cuda-c-compiler-updates-impacting-elf-visibility-and-linkage/
- FBGEMM_GPU fix: D86474263
- pycuda 2025.1.2 buckification: D83501913
Reviewed By: bottler
Differential Revision: D88816596
fbshipit-source-id: 1ba666dab8c0e06d1286b8d5bc5d84cfc55c86e6
Introduction
PyTorch3D provides efficient, reusable components for 3D Computer Vision research with PyTorch.
Key features include:
PyTorch3D is designed to integrate smoothly with deep learning methods for predicting and manipulating 3D data. For this reason, all operators in PyTorch3D:
Within FAIR, PyTorch3D has been used to power research projects such as Mesh R-CNN.
See our blog post to see more demos and learn about PyTorch3D.
Installation
For detailed instructions refer to INSTALL.md.
License
PyTorch3D is released under the BSD License.
Tutorials
Get started with PyTorch3D by trying one of the tutorial notebooks.
Documentation
Learn more about the API by reading the PyTorch3D documentation.
We also have deep dive notes on several API components:
Overview Video
We have created a short (~14 min) video tutorial providing an overview of the PyTorch3D codebase including several code examples. Click on the image below to watch the video on YouTube:
Development
We welcome new contributions to PyTorch3D and we will be actively maintaining this library! Please refer to CONTRIBUTING.md for full instructions on how to run the code, tests and linter, and submit your pull requests.
Development and Compatibility
mainbranch: actively developed, without any guarantee, Anything can be broken at any timemainContributors
PyTorch3D is written and maintained by the Facebook AI Research Computer Vision Team.
In alphabetical order:
Citation
If you find PyTorch3D useful in your research, please cite our tech report:
If you are using the pulsar backend for sphere-rendering (the
PulsarPointRendererorpytorch3d.renderer.points.pulsar.Renderer), please cite the tech report:News
Please see below for a timeline of the codebase updates in reverse chronological order. We are sharing updates on the releases as well as research projects which are built with PyTorch3D. The changelogs for the releases are available under
Releases, and the builds can be installed usingcondaas per the instructions in INSTALL.md.[Oct 31st 2023]: PyTorch3D v0.7.5 released.
[May 10th 2023]: PyTorch3D v0.7.4 released.
[Apr 5th 2023]: PyTorch3D v0.7.3 released.
[Dec 19th 2022]: PyTorch3D v0.7.2 released.
[Oct 23rd 2022]: PyTorch3D v0.7.1 released.
[Aug 10th 2022]: PyTorch3D v0.7.0 released with Implicitron and MeshRasterizerOpenGL.
[Apr 28th 2022]: PyTorch3D v0.6.2 released
[Dec 16th 2021]: PyTorch3D v0.6.1 released
[Oct 6th 2021]: PyTorch3D v0.6.0 released
[Aug 5th 2021]: PyTorch3D v0.5.0 released
[Feb 9th 2021]: PyTorch3D v0.4.0 released with support for implicit functions, volume rendering and a reimplementation of NeRF.
[November 2nd 2020]: PyTorch3D v0.3.0 released, integrating the pulsar backend.
[Aug 28th 2020]: PyTorch3D v0.2.5 released
[July 17th 2020]: PyTorch3D tech report published on ArXiv: https://arxiv.org/abs/2007.08501
[April 24th 2020]: PyTorch3D v0.2.0 released
[March 25th 2020]: SynSin codebase released using PyTorch3D: https://github.com/facebookresearch/synsin
[March 8th 2020]: PyTorch3D v0.1.1 bug fix release
[Jan 23rd 2020]: PyTorch3D v0.1.0 released. Mesh R-CNN codebase released: https://github.com/facebookresearch/meshrcnn