code: def backward(ctx, grad):
      row_indices, out, row_offsets, column_indices = ctx.saved_tensors
      m, n = ctx.size
  
      # gradients w.r.t. values
      grad = grad.contiguous()
      ga = torch.ops.xformers.sparse_softmax_backward_sputnik(
          m, n, row_indices, out, grad, row_offsets, column_indices
      )
  
      return None, None, None, ga, None, None
  
file_path: xformers/xformers/sparse/_csr_ops.py
imports: import torch
  from .utils import _csr_to_coo, _transpose_with_info
label_desc: Use image node_id 2 for calling the _SparseSoftmax obj's underlying member method code with example usage: obj.backward(ctx, grad) and returns: None,  None,  None,  ga,  None,  None