class_docstr: Creates a Module from multiple .cu source, library file and/or data
  objects linked against the static or dynamic CUDA runtime.
class_docstr_tok: ["Creates","a","Module","from","multiple",".cu","source",",","library","file","and\/or","data","objects","linked","against","the","static","or","dynamic","CUDA","runtime","."]
code: def __init__(
      self,
      nvcc="nvcc",
      link_options=None,
      keep=False,
      no_extern_c=False,
      arch=None,
      code=None,
      cache_dir=None,
      include_dirs=[],
      message_handler=None,
      log_verbose=False,
      cuda_libdir=None,
  ):
      from pycuda.driver import Context
  
      compute_capability = Context.get_device().compute_capability()
      if compute_capability < (3, 5):
          raise Exception(
              "Minimum compute capability for dynamic parallelism is 3.5 (found: %u.%u)!"
              % (compute_capability[0], compute_capability[1])
          )
      else:
          from pycuda.driver import Linker
  
          self.linker = Linker(
              message_handler, link_options, log_verbose
          )
      self._check_arch(arch)
      self.nvcc = nvcc
      self.keep = keep
      self.no_extern_c = no_extern_c
      self.arch = arch
      self.code = code
      self.cache_dir = cache_dir
      self.include_dirs = include_dirs
      self.cuda_libdir = cuda_libdir
      self.libdir, self.libptn = None, None
      self.module = None
  
imports: from pytools import memoize
  import os
  import sys
  from tempfile import mkstemp
  from os import unlink
  from pytools.prefork import call_capture_output
label_desc: Use image node_id 1 to create a new DynamicModule object from inherited base classes: CudaModule with example: obj = DynamicModule(nvcc, link_options, keep, no_extern_c, arch, code, cache_dir, include_dirs, message_handler, log_verbose, cuda_libdir)