class_docstr: Block-Sparse Softmax class; this class computes softmax on a block sparse matrix. It is also able to apply either/all of the following masks:
     - relative position embedding
     - key padding mask
     - attention mask
  
  For more details about sparsity config, please see `Generative Modeling with Sparse Transformers`: https://arxiv.org/abs/1904.10509
class_docstr_tok: ["Block-Sparse","Softmax","class",";","this","class","computes","softmax","on","a","block","sparse","matrix",".","It","is","also","able","to","apply","either\/all","of","the","following","masks",":","-","relative","position","embedding","-","key","padding","mask","-","attention","mask","For","more","details","about","sparsity","config",",","please","see","`","Generative","Modeling","with","Sparse","Transformers","`",":","https",":","\/\/arxiv.org\/abs\/1904.10509"]
docstr: Generates the sparsity layout used in block-sparse softmax
          
docstr_tok: ["Generates","the","sparsity","layout","used","in","block-sparse","softmax"]
code: def make_lut(self, device):
      """Generates the sparsity layout used in block-sparse softmax"""
      key = (device,)
      if key not in self.lut_cache:
          self.lut_cache[key] = _sparse_softmax.make_lut(
              self.layout, self.block, device
          )
      return self.lut_cache[key]
  
file_path: H2O/h2o_flexgen/benchmark/third_party/DeepSpeed/deepspeed/ops/sparse_attention/softmax.py
imports: import torch
  import triton
  import triton.language
label_desc: Use image node_id 2 for calling the Softmax obj's underlying member method code with example usage: obj.make_lut(device) and returns: self