class_docstr: TVM device strucure.
  
  Typically constructed using convenience function
  :meth:`tvm.runtime.device`.
  
  Exposes uniform interface to device-specific APIs such as CUDA or
  OpenCL.  Some properties may return None depending on whether an
  API exposes that particular property.
  
  NOTE!  The integer values in MASK2STR and STR2MASK *must* correspond
  to the values provided by the DLDeviceType and TVMDeviceExtType enums.
class_docstr_tok: ["TVM","device","strucure",".","Typically","constructed","using","convenience","function",":","meth",":","`","tvm.runtime.device","`",".","Exposes","uniform","interface","to","device-specific","APIs","such","as","CUDA","or","OpenCL",".","Some","properties","may","return","None","depending","on","whether","an","API","exposes","that","particular","property",".","NOTE","!","The","integer","values","in","MASK2STR","and","STR2MASK","*","must","*","correspond","to","the","values","provided","by","the","DLDeviceType","and","TVMDeviceExtType","enums","."]
docstr: Total amount of shared memory per block in bytes.
  
  Returns device value for cuda, rocm, opencl, and vulkan.
  Returns remote device value for RPC devices.  Returns None for
  all other devices.
  
  Returns
  -------
  max_shared_memory_per_block : int or None
      Total amount of shared memory per block in bytes
docstr_tok: ["Total","amount","of","shared","memory","per","block","in","bytes",".","Returns","device","value","for","cuda",",","rocm",",","opencl",",","and","vulkan",".","Returns","remote","device","value","for","RPC","devices",".","Returns","None","for","all","other","devices",".","Returns","--","--","--","-","max_shared_memory_per_block",":","int","or","None","Total","amount","of","shared","memory","per","block","in","bytes"]
code: def max_shared_memory_per_block(self):
      """Total amount of shared memory per block in bytes.
  
      Returns device value for cuda, rocm, opencl, and vulkan.
      Returns remote device value for RPC devices.  Returns None for
      all other devices.
  
      Returns
      -------
      max_shared_memory_per_block : int or None
          Total amount of shared memory per block in bytes
  
      """
      return self._GetDeviceAttr(self.device_type, self.device_id, 3)
  
imports: import ctypes
  import json
  import numpy
  from .base import _LIB, check_call
label_desc: Use image node_id 6 for calling the Device obj's underlying member method code with example usage: obj.max_shared_memory_per_block() and returns: self