docstr: Allocates shared memory and returns it as a 1-D array.
  
  Args:
      dtype (dtype):
          The dtype of the returned array.
      size (int or None):
          If ``int`` type, the size of static shared memory.
          If ``None``, declares the shared memory with extern specifier.
      alignment (int or None): Enforce the alignment via __align__(N).
docstr_tok: ["Allocates","shared","memory","and","returns","it","as","a","1-D","array",".","Args",":","dtype","(","dtype",")",":","The","dtype","of","the","returned","array",".","size","(","int","or","None",")",":","If","``","int","``","type",",","the","size","of","static","shared","memory",".","If","``","None","``",",","declares","the","shared","memory","with","extern","specifier",".","alignment","(","int","or","None",")",":","Enforce","the","alignment","via","__align__","(","N",")","."]
code: def __call__(self, dtype, size, alignment=None):
      """Allocates shared memory and returns it as a 1-D array.
  
      Args:
          dtype (dtype):
              The dtype of the returned array.
          size (int or None):
              If ``int`` type, the size of static shared memory.
              If ``None``, declares the shared memory with extern specifier.
          alignment (int or None): Enforce the alignment via __align__(N).
      """
      super().__call__()
  
imports: from typing import Any, Mapping
  import warnings
  import cupy
  from cupy_backends.cuda.api import runtime
  from cupy.cuda import device
  from cupyx.jit import _cuda_types
  from cupyx.jit import _cuda_typerules
  from cupyx.jit._internal_types import BuiltinFunc
  from cupyx.jit._internal_types import Data
  from cupyx.jit._internal_types import Constant
  from cupyx.jit._internal_types import Range
  from cupyx.jit import _compile
  from functools import reduce
label_desc: Use image node_id 1 for calling the SharedMemory obj's underlying member method code with example usage: obj.__call__(dtype, size, alignment) without return types