class Engine(object): def __init__(self, engine=None,autoflatten=True): engine = int(os.environ.get("ENGINE",engine)) self.engine_name = engine_names[engine] self.ctx = pyopencl.Context([pyopencl.get_platforms()[0].get_devices()[engine]]) self.queue = pyopencl.CommandQueue(self.ctx) self.bmgr = BufferManager(context=self.ctx, queue=self.queue) self.context_meta = {} self.calls = 0 self.runtime = 0.0 self.autoflatten=autoflatten def build(self, source): binary = pyopencl.Program(self.ctx, source) program = binary.build(options=["-w"]) return program def purge(self): self.bmgr.purgeBuffers() def write(self, a): assert hasattr(a,"dtype") return self.bmgr.writeBuffer(a) def read(self, a): return self.bmgr.readBuffer(a) def ensure(self, a): return self.bmgr.ensureBuffer(a)
def __init__(self, engine=None,autoflatten=True): engine = int(os.environ.get("ENGINE",engine)) self.engine_name = engine_names[engine] self.ctx = pyopencl.Context([pyopencl.get_platforms()[0].get_devices()[engine]]) self.queue = pyopencl.CommandQueue(self.ctx) self.bmgr = BufferManager(context=self.ctx, queue=self.queue) self.context_meta = {} self.calls = 0 self.runtime = 0.0 self.autoflatten=autoflatten