class MyOCL(IOpenCLUnit): def __init__(self): self.a = Array(zeros([kibi >> 1, kibi], dtype=float32)) self.b = Array() self.b.mem = zeros([kibi, kibi], dtype=float32) def initialize(self, device, **kwargs): self.a.initialize(self) self.b.initialize(self) def ocl_init(): self.krn_.set_arg(0, self.a.devmem) self.krn_.set_arg(1, self.b.devmem) ocl_init() def __call__(self, *args, **kwargs): self.a.unmap() self.b.unmap() self.execute_kernel(global_size, local_size, self.krn_) a = self.a.ocl_map_read()