Take this explanation with a grain of salt, as I’m neither deeply familiar with your use case nor with PyTorch3D.
The description:

weights – Optional FloatTensor of shape (N,) giving weights for batch elements for reduction operation.

sounds ambiguous, as apparently two reductions are used:

batch_reduction – Reduction operation to apply for the loss across the batch, can be one of [“mean”, “sum”] or None.


point_reduction – Reduction operation to apply for the loss across the points, can be one of [“mean”, “sum”].

Based on the shape of weigths I would assume that it’s used in the batch_reduction since each sample is supposed to get a weight value.
Based on your description I understand that you would rather want to add weights to specific points instead. If so, I would have tried to apply the weighting to the unreduced loss, but it doesn’t seem that the reduction option provide the 'none' option.
In that case you could try to implement your custom weighted chamfer_distance by copying the implementation from here 1 and add the point weighting manually.