code: def convert(func, params, blocksize, sparsity_threshold):
      """Convert a dense func and according parameters to block sparse
  
      Parameters
      ----------
      func : relay.Expr
          Expr will be optimized to sparse operation
      params : Dict[Srting, tvm.nd.array]
          Parameters of the Expr
      blocksize : Tuple(int, int)
          Blocksize for BSR matrix
      sparsity_threshold : float
          Minimal sparsity requirement for converting.
          If weight sparsity is lower than this threshold,
          the dense operation will be kept.
  
      Returns
      -------
      new_func: relay.Expr
          Mutated Expr with sparse operations
  
      params: Dict[Srting, tvm.nd.array]
          New params with BSR matrix for mutated Expr
      """
      weight_info = process_params(
          func, params, blocksize, sparsity_threshold
      )
      new_func = _run_opt_pass(
          func,
          relay.transform.DenseToSparse(
              weight_info.weight_name, weight_info.weight_shape
          ),
      )
      return new_func, params
  
imports: from tvm import relay
  from tvm.relay.analysis.sparse_dense import process_params
  from .utils import _run_opt_pass
label_desc: Use image node_id 1 for calling a global function with example usage: convert(func, params, blocksize, sparsity_threshold) and returns: new_func,  params