Skip to content

Build fails with 'undefined reference' linker error on CUDA 13.0 #2011

@msplr

Description

@msplr

CUDA 13.0 introduces breaking symbol default visibility changes resulting in linker errors not finding some symbols.
The changes are described in this post: CUDA C++ Compiler Updates Impacting ELF Visibility and Linkage.

Workaround

As suggested in above blog post, the old behavior can be brought back with an NVCC flag until it is fixed in the pytorch3d source.

NVCC_FLAGS="-static-global-template-stub=false" pip install git+https://github.com/facebookresearch/pytorch3d.git@stable

Error Reproduction

In an ubuntu 24.04 docker image like nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04

docker run --rm -it nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 bash
apt update && apt install python3.12 python3.12-venv
python3 -m venv testenv
source testenv/bin/activate
pip install https://download.pytorch.org/whl/cu130/torch-2.9.0%2Bcu130-cp312-cp312-manylinux_2_28_x86_64.whl
pip install --no-build-isolation git+https://github.com/facebookresearch/pytorch3d.git@stable

Error log:

aarch64-linux-gnu-g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -shared -Wl,-O1 -Wl,-Bsymbolic-functions /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/ball_query/ball_query.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/ball_query/ball_query_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/blending/sigmoid_alpha_blend.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/blending/sigmoid_alpha_blend_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/compositing/alpha_composite.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/compositing/alpha_composite_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/compositing/norm_weighted_sum.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/compositing/norm_weighted_sum_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/compositing/weighted_sum.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/compositing/weighted_sum_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/ext.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/face_areas_normals/face_areas_normals.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/face_areas_normals/face_areas_normals_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/gather_scatter/gather_scatter.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/gather_scatter/gather_scatter_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/interp_face_attrs/interp_face_attrs.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/iou_box3d/iou_box3d.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/iou_box3d/iou_box3d_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/knn/knn.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/knn/knn_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/marching_cubes/marching_cubes.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/marching_cubes/marching_cubes_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/mesh_normal_consistency/mesh_normal_consistency_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/packed_to_padded_tensor/packed_to_padded_tensor.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/packed_to_padded_tensor/packed_to_padded_tensor_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/point_mesh/point_mesh_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/point_mesh/point_mesh_cuda.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/points_to_volumes/points_to_volumes.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/points_to_volumes/points_to_volumes_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.backward.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.backward_dbg.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.calc_gradients.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.calc_signature.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.construct.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.create_selector.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.destruct.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.fill_bg.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.forward.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.norm_cam_gradients.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.norm_sphere_gradients.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.render.gpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.backward.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.backward_dbg.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.calc_gradients.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.calc_signature.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.construct.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.create_selector.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.destruct.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.fill_bg.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.forward.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.norm_cam_gradients.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.norm_sphere_gradients.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/host/renderer.render.cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/pytorch/camera.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/pytorch/renderer.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/pytorch/tensor_util.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/pytorch/util.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/warnings.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/rasterize_coarse/rasterize_coarse.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/rasterize_meshes/rasterize_meshes.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/rasterize_meshes/rasterize_meshes_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/rasterize_points/rasterize_points.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/rasterize_points/rasterize_points_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/sample_farthest_points/sample_farthest_points.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/sample_farthest_points/sample_farthest_points_cpu.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/sample_pdf/sample_pdf.o /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/sample_pdf/sample_pdf_cpu.o -L/root/.cache/pypoetry/virtualenvs/lyte-docker-xS3fZVNL-py3.12/lib/python3.12/site-packages/torch/lib -L/usr/local/cuda/lib64 -L/usr/lib/aarch64-linux-gnu -lc10 -ltorch -ltorch_cpu -ltorch_python -lcudart -lc10_cuda -ltorch_cuda -o build/lib.linux-aarch64-cpython-312/pytorch3d/_C.cpython-312-aarch64-linux-gnu.so
      /usr/bin/ld: /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.backward.gpu.o: in function `void pulsar::Renderer::backward<true>(pulsar::Renderer::Renderer*, float const*, float const*, float const*, float const*, float const*, float const*, pulsar::CamInfo const&, float const&, float, unsigned int const&, float const*, unsigned long const&, unsigned int const&, bool const&, bool const&, bool const&, bool const&, bool const&, CUstream_st*)':
      tmpxft_000011d2_00000000-6_renderer.backward.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer8backwardILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_P11CUstream_st[_ZN6pulsar8Renderer8backwardILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_P11CUstream_st]+0x7ec): undefined reference to `void pulsar::Renderer::calc_signature<true>(pulsar::Renderer::Renderer, float3 const*, float const*, float const*, unsigned int)'
      /usr/bin/ld: tmpxft_000011d2_00000000-6_renderer.backward.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer8backwardILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_P11CUstream_st[_ZN6pulsar8Renderer8backwardILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_P11CUstream_st]+0xbd0): undefined reference to `void pulsar::Renderer::calc_gradients<true>(pulsar::CamInfo, float const*, float, float3 const*, float const*, float const*, float const*, unsigned int, float const*, float const*, pulsar::Renderer::DrawInfo const*, pulsar::Renderer::IntersectInfo const*, bool, bool, bool, bool, bool, float*, float*, float3*, pulsar::CamGradInfo*, float*, int*, int, unsigned int, unsigned int)'
      /usr/bin/ld: tmpxft_000011d2_00000000-6_renderer.backward.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer8backwardILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_P11CUstream_st[_ZN6pulsar8Renderer8backwardILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_P11CUstream_st]+0xcfc): undefined reference to `void pulsar::Renderer::norm_sphere_gradients<true>(pulsar::Renderer::Renderer, int)'
      /usr/bin/ld: tmpxft_000011d2_00000000-6_renderer.backward.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer8backwardILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_P11CUstream_st[_ZN6pulsar8Renderer8backwardILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_P11CUstream_st]+0xeec): undefined reference to `void pulsar::Renderer::norm_cam_gradients<true>(pulsar::Renderer::Renderer)'
      /usr/bin/ld: /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.backward_dbg.gpu.o: in function `void pulsar::Renderer::backward_dbg<true>(pulsar::Renderer::Renderer*, float const*, float const*, float const*, float const*, float const*, float const*, pulsar::CamInfo const&, float const&, float, unsigned int const&, float const*, unsigned long const&, unsigned int const&, bool const&, bool const&, bool const&, bool const&, bool const&, unsigned int const&, unsigned int const&, CUstream_st*)':
      tmpxft_0000128d_00000000-6_renderer.backward_dbg.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer12backward_dbgILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_SB_SB_P11CUstream_st[_ZN6pulsar8Renderer12backward_dbgILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_SB_SB_P11CUstream_st]+0x8a8): undefined reference to `void pulsar::Renderer::calc_signature<true>(pulsar::Renderer::Renderer, float3 const*, float const*, float const*, unsigned int)'
      /usr/bin/ld: tmpxft_0000128d_00000000-6_renderer.backward_dbg.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer12backward_dbgILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_SB_SB_P11CUstream_st[_ZN6pulsar8Renderer12backward_dbgILb1EEEvPNS0_8RendererEPKfS5_S5_S5_S5_S5_RKNS_7CamInfoERS4_fRKjS5_RKmSB_RKbSF_SF_SF_SF_SB_SB_P11CUstream_st]+0xcac): undefined reference to `void pulsar::Renderer::calc_gradients<true>(pulsar::CamInfo, float const*, float, float3 const*, float const*, float const*, float const*, unsigned int, float const*, float const*, pulsar::Renderer::DrawInfo const*, pulsar::Renderer::IntersectInfo const*, bool, bool, bool, bool, bool, float*, float*, float3*, pulsar::CamGradInfo*, float*, int*, int, unsigned int, unsigned int)'
      /usr/bin/ld: /tmp/pip-req-build-nj5pu1g5/build/temp.linux-aarch64-cpython-312/tmp/pip-req-build-nj5pu1g5/pytorch3d/csrc/pulsar/gpu/renderer.forward.gpu.o: in function `void pulsar::Renderer::forward<true>(pulsar::Renderer::Renderer*, float const*, float const*, float const*, pulsar::CamInfo const&, float const&, float, unsigned int const&, float const*, float const*, unsigned long const&, unsigned int const&, CUstream_st*)':
      tmpxft_0000151a_00000000-6_renderer.forward.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer7forwardILb1EEEvPNS0_8RendererEPKfS5_S5_RKNS_7CamInfoERS4_fRKjS5_S5_RKmSB_P11CUstream_st[_ZN6pulsar8Renderer7forwardILb1EEEvPNS0_8RendererEPKfS5_S5_RKNS_7CamInfoERS4_fRKjS5_S5_RKmSB_P11CUstream_st]+0x82c): undefined reference to `void pulsar::Renderer::calc_signature<true>(pulsar::Renderer::Renderer, float3 const*, float const*, float const*, unsigned int)'
      /usr/bin/ld: tmpxft_0000151a_00000000-6_renderer.forward.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer7forwardILb1EEEvPNS0_8RendererEPKfS5_S5_RKNS_7CamInfoERS4_fRKjS5_S5_RKmSB_P11CUstream_st[_ZN6pulsar8Renderer7forwardILb1EEEvPNS0_8RendererEPKfS5_S5_RKNS_7CamInfoERS4_fRKjS5_S5_RKmSB_P11CUstream_st]+0xd00): undefined reference to `void pulsar::Renderer::create_selector<true>(pulsar::Renderer::IntersectInfo const*, unsigned int, int, int, int, int, char*)'
      /usr/bin/ld: tmpxft_0000151a_00000000-6_renderer.forward.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer7forwardILb1EEEvPNS0_8RendererEPKfS5_S5_RKNS_7CamInfoERS4_fRKjS5_S5_RKmSB_P11CUstream_st[_ZN6pulsar8Renderer7forwardILb1EEEvPNS0_8RendererEPKfS5_S5_RKNS_7CamInfoERS4_fRKjS5_S5_RKmSB_P11CUstream_st]+0x3b08): undefined reference to `void pulsar::Renderer::render<true>(unsigned long const*, pulsar::Renderer::IntersectInfo const*, pulsar::Renderer::DrawInfo const*, float const*, int const*, float const*, pulsar::CamInfo, float, float, unsigned int, float const*, unsigned int, int, int, int, int, float*, float*, int)'
      /usr/bin/ld: tmpxft_0000151a_00000000-6_renderer.forward.gpu.cudafe1.cpp:(.text._ZN6pulsar8Renderer7forwardILb1EEEvPNS0_8RendererEPKfS5_S5_RKNS_7CamInfoERS4_fRKjS5_S5_RKmSB_P11CUstream_st[_ZN6pulsar8Renderer7forwardILb1EEEvPNS0_8RendererEPKfS5_S5_RKNS_7CamInfoERS4_fRKjS5_S5_RKmSB_P11CUstream_st]+0x3d74): undefined reference to `void pulsar::Renderer::fill_bg<true>(pulsar::Renderer::Renderer, pulsar::CamInfo, float const*, float, unsigned int)'
      /usr/bin/ld: build/lib.linux-aarch64-cpython-312/pytorch3d/_C.cpython-312-aarch64-linux-gnu.so: hidden symbol `_ZN6pulsar8Renderer7fill_bgILb1EEEvNS0_8RendererENS_7CamInfoEPKffj' isn't defined
      /usr/bin/ld: final link failed: bad value
      collect2: error: ld returned 1 exit status
      error: command '/usr/bin/aarch64-linux-gnu-g++' failed with exit code 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions