facebookresearch / pytorch3d

PyTorch3D is FAIR's library of reusable components for deep learning with 3D data
https://pytorch3d.org/
Other
8.81k stars 1.32k forks source link

Pulsar's Global Presorting & Signature Calculation #1581

Closed fhahlbohm closed 1 year ago

fhahlbohm commented 1 year ago

I am currently trying to get a detailed understanding of the Pulsar implementation and would like to ask two questions.

  1. I can't get my head around why there are 3 calls to the radix sort function in Pulsar's forward pass. I realise that all three "things" need to be sorted but can not understand why this can/should not be done in a single radix sort. Is it more efficient this way? And if so, why?

  2. The calc_signature kernel ist called twice during a single forward+backward pass combination. Why is this calculation done twice instead of once (i.e. during forward pass)? Is this to make Pulsar less memory hungry at the cost of performance or is there something I am missing as to why this is necessary/not slower?

bottler commented 1 year ago

Sadly, we probably can't tell you what the design considerations were years ago.