nnvm/tvm/topi/python/topi/x86/nn.py
def schedule_dense(outs):
    """Schedule for dense

    Parameters
    ----------
    outs: Array of Tensor
          The computation graph description of pool
          in the format of an array of tensors.

    Returns
    -------
    sch: Schedule
        The computation schedule for the op.
    """

    outs = [outs] if isinstance(outs, tvm.tensor.Tensor) else outs
    s = tvm.create_schedule([x.op for x in outs])

    def traverse(op):
        """Traverse operators from computation graph"""
        # inline all one-to-one-mapping operators except the last stage (output)
        if tag.is_broadcast(op.tag):
            if op not in s.outputs:
                s[op].compute_inline()
            for tensor in op.input_tensors:
                if tensor.op.input_tensors:
                    traverse(tensor.op)

        if 'dense' in op.tag:
            C = op.output(0)
            x, y = C.op.axis

            # Write cache for blocks
            CC = s.cache_write(C, 'global')

            # Tile
            bnx = 1
            bny = 4
            _, yo, _, yi = s[C].tile(x, y, bnx, bny)
            s[CC].compute_at(s[C], yo)
            xc, yc = s[CC].op.axis
            k, = s[CC].op.reduce_axis
            ko, ki = s[CC].split(k, factor=4)
            s[CC].reorder(ko, xc, ki, yc)
            s[CC].unroll(ki)
            s[CC].vectorize(yc)

            # Vectorization
            s[C].vectorize(yi)

            # Parallelization
            s[C].parallel(yo)

    traverse(outs[0].op)
    return s
Schedule for dense

    Parameters
    ----------
    outs: Array of Tensor
          The computation graph description of pool
          in the format of an array of tensors.

    Returns
    -------
    sch: Schedule
        The computation schedule for the op.
    
Schedule for dense
Parameters

Array of Tensor
The computation graph description of pool
in the format of an array of tensors.

Returns

Schedule
The computation schedule for the op.
Schedule for dense Parameters Array of Tensor The computation graph description of pool in the format of an array of tensors . Returns Schedule The computation schedule for the op .
def schedule_dense(outs):
    outs = [outs] if isinstance(outs, tvm.tensor.Tensor) else outs
    s = tvm.create_schedule([x.op for x in outs])
    def traverse(op):
        if tag.is_broadcast(op.tag):
            if op not in s.outputs:
                s[op].compute_inline()
            for tensor in op.input_tensors:
                if tensor.op.input_tensors:
                    traverse(tensor.op)
        if 'dense' in op.tag:
            C = op.output(0)
            x, y = C.op.axis
            CC = s.cache_write(C, 'global')
            bnx = 1
            bny = 4
            _, yo, _, yi = s[C].tile(x, y, bnx, bny)
            s[CC].compute_at(s[C], yo)
            xc, yc = s[CC].op.axis
            k, = s[CC].op.reduce_axis
            ko, ki = s[CC].split(k, factor=4)
            s[CC].reorder(ko, xc, ki, yc)
            s[CC].unroll(ki)
            s[CC].vectorize(yc)
            s[C].vectorize(yi)
            s[C].parallel(yo)
    traverse(outs[0].op)
    return s
def schedule_dense ( outs ) : outs = [ outs ] if isinstance ( outs , tvm . tensor . Tensor ) else outs s = tvm . create_schedule ( [ x . op for x in outs ] ) def traverse ( op ) : """Traverse operators from computation graph""" if tag . is_broadcast ( op . tag ) : if op not in s . outputs : s [ op ] . compute_inline ( ) for tensor in op . input_tensors : if tensor . op . input_tensors : traverse ( tensor . op ) if 'dense' in op . tag : C = op . output ( 0 ) x , y = C . op . axis CC = s . cache_write ( C , 'global' ) bnx = 1 bny = 4 _ , yo , _ , yi = s [ C ] . tile ( x , y , bnx , bny ) s [ CC ] . compute_at ( s [ C ] , yo ) xc , yc = s [ CC ] . op . axis k , = s [ CC ] . op . reduce_axis ko , ki = s [ CC ] . split ( k , factor = 4 ) s [ CC ] . reorder ( ko , xc , ki , yc ) s [ CC ] . unroll ( ki ) s [ CC ] . vectorize ( yc ) s [ C ] . vectorize ( yi ) s [ C ] . parallel ( yo ) traverse ( outs [ 0 ] . op ) return s
Schedule for dense
Parameters
Schedule for dense Parameters
"""Schedule for dense

    Parameters
    ----------
    outs: Array of Tensor
          The computation graph description of pool
          in the format of an array of tensors.

    Returns
    -------
    sch: Schedule
        The computation schedule for the op.
    """ """Traverse operators from computation graph""" # inline all one-to-one-mapping operators except the last stage (output) # Write cache for blocks # Tile # Vectorization # Parallelization
outs