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 add_source(self, source, nvcc_options=None, name="kernel.ptx"):
      ptx = compile(
          source,
          nvcc=self.nvcc,
          options=nvcc_options,
          keep=self.keep,
          no_extern_c=self.no_extern_c,
          arch=self.arch,
          code=self.code,
          cache_dir=self.cache_dir,
          include_dirs=self.include_dirs,
          target="ptx",
      )
      from pycuda.driver import jit_input_type
  
      self.linker.add_data(ptx, jit_input_type.PTX, name)
      return self
  
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 3 for calling the DynamicModule obj's underlying member method code with example usage: obj.add_source(source, nvcc_options, name) and returns: self