示例#1
0
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)
示例#2
0
 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