code: def __call__(self, a, *, scale=1.0, rel_logits=None, is_causal=False):
      if rel_logits is not None and rel_logits.dtype != a.dtype:
          raise ValueError(
              f"relative position embedding must be {a.dtype}"
          )
      a = _softmax.apply(
          a,
          scale,
          rel_logits,
          is_causal,
          self.spdims,
          self.block,
          self.lut,
          self.maxlut,
          self.is_dense,
      )
      return a
  
file_path: triton/python/triton/ops/blocksparse/softmax.py
imports: import torch
  from ...None import jit
  from ...None import language
  from ...None import next_power_of_2
label_desc: Use image node_id 2 for calling the softmax obj's underlying member method code with example usage: obj.__call__(a) and returns: a