class_docstr: Initialize the Distributed Graph Server
  
  Args:
      root_dir: the graph data dir 
  
      node_types: the node type configs
  
      edge_types: the edge type configs.
  
      symmetry: whether the edges are symmetry
  
      slots: the node feature slot 
  
      token_slot: for erniesage token slot input
  
      slot_num_for_pull_feature: total slot feature number we should pull
  
      num_parts: the sharded parts of graph data
  
      metapath_split_opt: whether use metapath split optimization
code: def _setup_graph(self):
      self.graph.set_device(get_cuda_places())
      self.graph.set_up_types(self.etype_list, self.ntype_list)
  
      for ntype in self.ntype_list:
          for slot_id in self.slots:
              log.info("add_table_feat_conf of slot id %s" % slot_id)
              self.graph.add_table_feat_conf(
                  ntype, str(slot_id), "feasign", 1
              )
  
          if self.token_slot:
              log.info(
                  "add_table_feat_conf of token slot id %s"
                  % self.token_slot
              )
              self.graph.add_table_feat_conf(
                  ntype, str(self.token_slot), "feasign", 1
              )
      self.graph.set_slot_feature_separator(":")
      self.graph.set_feature_separator(",")
      self.graph.init_service()
  
imports: import sys
  import time
  from paddle.fluid.core import GraphGpuWrapper
  from pgl.utils.logger import log
  import helper
  import util
  from place import get_cuda_places
label_desc: Use image node_id 2 for calling the DistGraph obj's underlying member method code with example usage: obj._setup_graph() without return types