def make_backend_call_frame(function): manager = Manager.get(pytest.config.getoption('backend')) external = manager.compile(function) backend = manager.allocate_backend() cf = backend.make_call_frame(external) return backend, cf
def build_callframe(self): """ Initialize Ngraph backend. Build and initialize Ngraph callframe from Function. """ self.manager = Manager.get(self.transformer.ngraph_backend) self.external = self.manager.compile(self.function) self.backend = self.manager.allocate_backend() self.cf = self.backend.make_call_frame(self.external) # create the primary_tensor_view for result's using the ngraph++ initilized backend for node in self.neon_return_list: org_node = node if isinstance(node.tensor, AssignOp): node = node.args[1] shape = list(node.tensor.axes.lengths) self.result_primary_tensor_view_list.append( self.backend.make_primary_tensor_view( self.element_type, Shape(shape))) # Allocate return buffer # TODO - need to define dtype of numpy array's for results based on result.dtype result_arr = np.zeros(shape, dtype=np.float32) self.neon_return_buffer[org_node] = result_arr # prepare tensor_views for placeholders for node in self.computation_op.parameters: shape = list(node.axes.lengths) self.param_primary_tensor_view_list.append( self.backend.make_primary_tensor_view( self.element_type, Shape(shape))) # prepare tensor_views for input variables for node in self.neon_variable_list: if node not in self.computation_op.parameters: shape = list(node.axes.lengths) self.variable_primary_tensor_view_list.append( self.backend.make_primary_tensor_view( self.element_type, Shape(shape))) # prepare tensor_views for input variables for node in self.neon_randomvariable_list: shape = list(node.axes.lengths) self.randomvariable_primary_tensor_view_list.append( self.backend.make_primary_tensor_view( self.element_type, Shape(shape))) # prepare tensor_views for weights for node in self.neon_update_list: shape = list(node.axes.lengths) self.update_primary_tensor_view_list.append( self.backend.make_primary_tensor_view( self.element_type, Shape(shape)))
def __init__(self, manager_name): # type: (str) -> None self.manager_name = manager_name self.manager = Manager.get(manager_name) self.backend = self.manager.allocate_backend()