code: def run(self):
      self.dev = cuda.Device(self.number)
      self.ctx = self.dev.make_context()
  
      self.array_gpu = cuda.mem_alloc(some_array.nbytes)
      cuda.memcpy_htod(self.array_gpu, some_array)
  
      test_kernel(self.array_gpu)
      print("successful exit from thread %d" % self.number)
      self.ctx.pop()
  
      del self.array_gpu
      del self.ctx
  
file_path: pycuda/examples/from-wiki/multiple_threads.py
imports: import pycuda
  import pycuda.driver
  from pycuda.compiler import SourceModule
  import threading
  import numpy
label_desc: Use image node_id 2 for calling the GPUThread obj's underlying member method code with example usage: obj.run() without return types