class_docstr: Implements an efficient Sparse Self Attention of Transformer layer based on `Generative Modeling with Sparse Transformers`: https://arxiv.org/abs/1904.10509
  
  For more information please see, TODO DeepSpeed Sparse Transformer.
  
  For usage example please see, TODO DeepSpeed Sparse Transformer Tutorial.
code: def get_ops(self, H, L):
      from deepspeed.ops.sparse_attention.matmul import MatMul
      from deepspeed.ops.sparse_attention.softmax import Softmax
  
      if L not in SparseSelfAttention.ops:
          sparsity_layout = self.get_layout(L)
          sparse_dot_sdd_nt = MatMul(
              sparsity_layout,
              self.sparsity_config.block,
              "sdd",
              trans_a=False,
              trans_b=True,
          )
  
          sparse_dot_dsd_nn = MatMul(
              sparsity_layout,
              self.sparsity_config.block,
              "dsd",
              trans_a=False,
              trans_b=False,
          )
  
          sparse_softmax = Softmax(
              sparsity_layout, self.sparsity_config.block
          )
  
          SparseSelfAttention.ops[L] = (
              sparse_dot_sdd_nt,
              sparse_dot_dsd_nn,
              sparse_softmax,
          )
      return SparseSelfAttention.ops[L]
  
file_path: DeepSpeed/deepspeed/ops/sparse_attention/sparse_self_attention.py
imports: import torch.nn
  import torch
  from torch import distributed
  from deepspeed.ops.sparse_attention import SparsityConfig
label_desc: Use image node_id 3 for calling the SparseSelfAttention obj's underlying member method code with example usage: obj.get_ops(H, L) and returns: SparseSelfAttention