1. 06 Apr, 2020 3 commits
  2. 05 Apr, 2020 4 commits
    • [Relay][Topi][AutoTVM] Winograd support for Conv3D (#5186) · 02eb1833
      * Functional conv3d winograd working.
      
      * Formatted python code.
      
      * registered conv3d winograd compute and started adding relay without_weight_transform operator.
      
      * Add topi testing for conv3d winograd.
      
      * Format file.
      
      * small tweak to unrolling to prevent build sticking.
      
      * Refactoring convolution ops in relay.
      
      * Refactored relay convolutions.
      
      * Bug fixes.
      
      * Fixed static bug in convolution.
      
      * Added conv3d alter op layout and related support.
      
      * Bug fixes and testing done.
      
      * Fix a few autotvm bugs.
      
      * Drop silly debug print.
      
      * Removed debug_skip_region.
      
      * Add variant of conv3d_winograd that doesn't transform depth.
      
      * initial infrastructure done for depthless conv.
      
      * Fix no_depth schedule bugs.
      
      * automatic topi switching between depth and depthless winograd.
      
      * Fixed bug in schedule.
      
      * lint fixes.
      
      * Removed indents in convolution.cc
      
      * missed a few indents oops.
      
      * fixed flop count.
      
      * One more small tweak.
      
      * Change kernel pack inner axes order.
      
      * Style changes.
      
      * Comment fixes.
      Josh Fromm committed
    • [Fix][VM] Fix copy constructor (#5237) · c76cbd8d
      ga committed
    • [Relay][ADT]Static Tensor Array (#5103) · b5352ee2
      * Add other static tensor array ops
      
      * Add tensor array get data
      
      * Minor refactor
      
      * Fix pylint
      
      * Update docstring
      
      * Make get data more generic
      
      * Improve test
      
      * Improve split test
      
      * Improve get data
      
      * Minor fix
      
      * Further improvement for static shape
      
      * Improve shape parsing
      
      * Unify get_static_name
      Yao Wang committed
    • [REFACTOR][TIR] Migrate all low-level passes to the Pass Manager. (#5233) · e63e08fe
      * [REFACTOR][TIR] Migrate all low-level passes to the Pass Manager.
      
      This PR migrates the tvm.lower to return IRModule of PrimFuncs
      instead of the LoweredFuncs.
      
      * Remove LoweredFunc.
      Tianqi Chen committed
  3. 04 Apr, 2020 3 commits
  4. 03 Apr, 2020 8 commits
    • [REFACTOR][TIR] Migrate most of low-level build to use the Pass Manager. (#5225) · 75e936e1
      * [REFACTOR][TIR] Migrate most of low-level build to use the Pass Manager.
      
      - SplitHostDevice
      - ThreadSync
      - BindDevice
      - LowerThreadAllreduce
      - Provide a temp fix for printing IRModule with PrimFunc before the formal text printer.
      
      * Address comments, fix tests.
      
      * Fix relay tests
      
      * Explicit move
      Tianqi Chen committed
    • [RELAY] Non-recursive Graph Vistor and Rewriter (#4886) · 7de8a539
      * First pass a defining a non-recursive Graph Vistor and Rewriter
      
      autoformat
      
      remove a currently empty test until testing is solidfied
      
      * Make CalcDep from Dead Code Elimination non-recursive
      
      * Partially working, not passing all tests yet
      
      passes tests when disabling GetExprRefCount, I think I have a bug in visit counting
      
      fix GetExprRefCount
      
      Fix a subtle bug with nested recursive/non-recursive scopes
      
      * Refactor
      
      * improve comments
      
      * respond to review comments on comments
      
      * Fix a problem with default recursion for dataflow nodes
      
      mark DataflowVisitor methods as override
      
      * implement ScopeMutator
      
      * convert forward_rewrite to ScopeMutator, remove DataflowMutator
      
      * rewrite ExprRewriter and convert fast_math to use it
      
      * switch BiasAddSimplifier to ExprRewriter
      
      fix a clang warning
      
      fix cpp lint
      
      fix doc param error
      
      * respond to review comments
      
      * fix a typo in the iterative looping
      
      * add a regression test for GetExprRefCount issue
      
      * Normalize naming
      
      * fix lint
      
      * First pass a defining a non-recursive Graph Vistor and Rewriter
      
      autoformat
      
      remove a currently empty test until testing is solidfied
      
      * Make CalcDep from Dead Code Elimination non-recursive
      
      * Partially working, not passing all tests yet
      
      passes tests when disabling GetExprRefCount, I think I have a bug in visit counting
      
      fix GetExprRefCount
      
      Fix a subtle bug with nested recursive/non-recursive scopes
      
      * Refactor
      
      * improve comments
      
      * respond to review comments on comments
      
      * Fix a problem with default recursion for dataflow nodes
      
      mark DataflowVisitor methods as override
      
      * implement ScopeMutator
      
      * convert forward_rewrite to ScopeMutator, remove DataflowMutator
      
      * rewrite ExprRewriter and convert fast_math to use it
      
      * switch BiasAddSimplifier to ExprRewriter
      
      fix a clang warning
      
      fix cpp lint
      
      fix doc param error
      
      * respond to review comments
      
      * fix a typo in the iterative looping
      
      * add a regression test for GetExprRefCount issue
      
      * Normalize naming
      
      * fix lint
      
      * respond to review comments
      Matthew Brookhart committed
    • [RELAY][FIX] Fix hang in MergeCompilerRegions (#5227) · 54975a3f
      For certain network topologies, MCR could hang.
      This patch fixes that case.
      
      Change-Id: I3edd8a8a6b452b2b838b777720adea22a3b995b4
      mbaret committed
    • [KERAS]Upsample3d & ZeroPadding3d op (#5125) · b796c13c
      * [KERAS]upsampling3d and zeropadding3d op
      
      * [KERAS]upsampling3d and zeropadding3d test case
      
      * Review comments updated
      Samuel committed
    • [CodeGen][CUDA] Fix bugs (#5209) · 316ce055
      - Support vectorized casts
      
      - It is incorrect to extract elements from int8x4 with
      
         0x000000ff & (x >> i * 8)
      
        as this value is of type int in C/C++. If this expression
        is used for sign extensions, the sign bit will be wrong.
        Simply use C style casts instead and sign bits will just work.
      
      Signed-off-by: Wei Pan <weip@nvidia.com>
      Wei Pan committed
  5. 02 Apr, 2020 12 commits
  6. 01 Apr, 2020 8 commits
  7. 31 Mar, 2020 2 commits
    • [RELAY] Re-wrote the Graph Partitioner to support multiple outputs (#5143) · 14ae3a6e
      * [RELAY] Re-wrote the Graph Partitioner to support multiple outputs
      
      Input : A Relay module that have functions with disjoint annotated regions
              using compiler_begin and compiler_end. There could be multiple outputs.
      
      Output : A Relay module with global functions for such disjoint annotated regions
               with calls inserted at the respective location
      
      Dependencies : AnnotatedRegionSet Utility class.
      
      Methodology :
            1) The AnnotatedRegionSet utility class is able to construct a collection of
               nodes that are bound by a give annotation -- here we use compiler_begin
               and compiler_end
            2) Initially, for each function in the module AnnotatedRegionSets are populated.
            3) Then, Vistor pass is traversed until a compiler_end node is encountered
               that belongs to a "region".
            4) When the first compiler_end of a given annotated region is found, a function is
               formed and inserted.
               a) if the region has multiple outputs, a Tuple node (capturing all outputs)
                  is returned.
            5) Thereafter, if we encounter an another output of the same annotated region,
               it is important to note that the function is already formed. Therefore, it will
               lookup the function and add a TupleGetItemNode is inserted.
                a) We will use the location index of "rets" of each "Region" of AnnotatedRegionSet
                   as TupleGetItemNode index.
            6) Therefore, functions will be created for all annotated regions. The name for each
               global function is created using "Region" id and the compiler name.
      
      Change-Id: I1372f02a845b6d3da03b561763e03a378dca263c
      
      * [RELAY] Re-wrote the Graph Partitioner to support multiple outputs
      
          *removed the expected use-case as we are taking broken-down PR approach
          *code style fixes
          *some trivial one liners
      
      * [RELAY] Re-wrote the Graph Partitioner to support multiple outputs
      
          *fixed an implicit copy to a move
      
      * [RELAY] Re-wrote the Graph Partitioner to support multiple outputs
      
          *code style changes for comments
          *renamed test case multiple outputs --> mixed single multiple outputs
              Since the existing test case checks for both single and multiple
              output scenarios
          *added a new test case with conv2d + batch_norm
          *some var name changes in the test
      
      * [RELAY] Re-wrote the Graph Partitioner to support multiple outputs
      
      	*rebased
      manupa-arm committed