1. 31 Jul, 2019 1 commit
  2. 30 Jul, 2019 1 commit
    • Diego Caballero's avatar
      [MLIR] Bump MLIR repo to commit 26c683c, 07/29/2019. (#3310) · 81597f3a
      Diego Caballero authored
      * [MLIR] Bump MLIR repo to commit 59167c2, 07/25/2019.
      
      MLIR commit:
      Author: River Riddle <riverriddle@google.com>
      Date:   Wed Jul 24 16:41:11 2019 -0700
      
          NFC: Use ValueOfRange instead of T in Diagnostic::appendRange.
      
              For iterator_range, T is often the name of another iterator type
              and not the the value of the range.
      
      LLVM commit:
      Author: Marshall Clow <mclow.lists@gmail.com>
      Date:   Thu Jul 25 03:26:05 2019 +0000
      
          Implement change #4 of P1466: Change weekday to accept both 0 and 7
          as Sunday. Add accessors 'c_encoding' and 'iso_encoding' to provide
          different interpretations of the weekday. Remove 'operator unsigned'
      
      * style
      
      * Move MLIR/LLVM repos a bit more forward
      81597f3a
  3. 29 Jul, 2019 1 commit
    • Diego Caballero's avatar
      [MLIR] Enable affine dialect loop fusion (#3290) · aedd8c2e
      Diego Caballero authored
      * [MLIR] Enable affine dialect loop fusion
      
      Enable affine dialect loop fusion in nGraph pipeline. It also adds an
      opt flag to enable/disable it when ngraph-opt is in place. Fusion seems
      to work for simple cases. It wasn't able to fuse dot + add, though, at
      least in my test case. One example that worked:
      
      Input:
        %6 = alloc() : memref<2500x2500xf32>
        affine.for %i3 = 0 to 2500 {
          affine.for %i4 = 0 to 2500 {
            %7 = load %arg0[%i3, %i4] : memref<2500x2500xf32>
            %8 = load %0[%i3, %i4] : memref<2500x2500xf32>
            %9 = addf %8, %7 : f32
            store %9, %6[%i3, %i4] : memref<2500x2500xf32>
          }
        }
        %10 = alloc() : memref<2500x2500xf32>
        affine.for %i5 = 0 to 2500 {
          affine.for %i6 = 0 to 2500 {
            %11 = load %arg2[%i5, %i6] : memref<2500x2500xf32>
            %12 = load %0[%i5, %i6] : memref<2500x2500xf32>
            %13 = addf %12, %11 : f32
            store %13, %10[%i5, %i6] : memref<2500x2500xf32>
          }
        }
        %14 = alloc() : memref<2500x2500xf32>
        affine.for %i7 = 0 to 2500 {
          affine.for %i8 = 0 to 2500 {
            %15 = load %10[%i7, %i8] : memref<2500x2500xf32>
            %16 = load %6[%i7, %i8] : memref<2500x2500xf32>
            %17 = addf %16, %15 : f32
            store %17, %14[%i7, %i8] : memref<2500x2500xf32>
          }
        }
      
      Output:
        %8 = alloc() : memref<2500x2500xf32>
        affine.for %i3 = 0 to 2500 {
          affine.for %i4 = 0 to 2500 {
            %9 = load %arg2[%i3, %i4] : memref<2500x2500xf32>
            %10 = load %2[%i3, %i4] : memref<2500x2500xf32>
            %11 = addf %10, %9 : f32
            %12 = affine.apply #map2(%i3, %i4, %i3, %i4)
            %13 = affine.apply #map3(%i3, %i4, %i3, %i4)
            store %11, %0[%12, %13] : memref<1x1xf32>
            %14 = load %arg0[%i3, %i4] : memref<2500x2500xf32>
            %15 = load %2[%i3, %i4] : memref<2500x2500xf32>
            %16 = addf %15, %14 : f32
            %17 = affine.apply #map2(%i3, %i4, %i3, %i4)
            %18 = affine.apply #map3(%i3, %i4, %i3, %i4)
            store %16, %1[%17, %18] : memref<1x1xf32>
            %19 = affine.apply #map2(%i3, %i4, %i3, %i4)
            %20 = affine.apply #map3(%i3, %i4, %i3, %i4)
            %21 = load %0[%19, %20] : memref<1x1xf32>
            %22 = affine.apply #map2(%i3, %i4, %i3, %i4)
            %23 = affine.apply #map3(%i3, %i4, %i3, %i4)
            %24 = load %1[%22, %23] : memref<1x1xf32>
            %25 = addf %24, %21 : f32
            store %25, %8[%i3, %i4] : memref<2500x2500xf32>
          }
        }
      
      * Rename MLIR_LLVM_OPTIONS to NGRAPH_MLIR_OPTIONS
      
      Something like this works now:
      NGRAPH_MLIR_OPTIONS="--enable-affine-loop-fusion=false"
      
      * Disable loop fusion by default and fix typo
      aedd8c2e
  4. 26 Jul, 2019 3 commits
  5. 25 Jul, 2019 1 commit
    • Diego Caballero's avatar
      [MLIR] Fix naming convention in MLIR files (#3292) · a095c587
      Diego Caballero authored
      * [MLIR] Fix naming convention in MLIR files
      
      Add naming convention note per file to state which files should use
      nGraph naming convention and which MLIR naming convention and align
      naming convention in those files with such a note.
      
      * Remove m-prefix
      a095c587
  6. 24 Jul, 2019 3 commits
  7. 23 Jul, 2019 4 commits
  8. 20 Jul, 2019 1 commit
  9. 19 Jul, 2019 1 commit
  10. 18 Jul, 2019 2 commits
    • nmostafa's avatar
      Refactor ng dialect compile · 3a9de1bb
      nmostafa authored
      3a9de1bb
    • Adam Procter's avatar
      [MLIR] Concat (#3225) · c5b976c8
      Adam Procter authored
      * WIP
      
      * All but two unit tests passing
      
      * Explanatory comment
      
      * Cleanup
      
      * A bit of cleanup stemming from review comments
      
      * Rewrite to use LoopNestBuilder
      
      * Remove unnecessary check from CompiledKernel
      
      * Removed some dead-ish code I missed
      
      * Switch to camelCase in lowerer.cpp
      
      * Fix assignment of resIndexHandles that was triggering an assert
      
      * Add in some safety checks
      
      * dyn_cast -> cast
      c5b976c8
  11. 17 Jul, 2019 1 commit
    • Pruthvi's avatar
      - MLIR Binary ElementWise Op (#3223) · 073db8fb
      Pruthvi authored
      * - templatize computing binary elementwise
      - added lowering support for Add, Sub, Multiply, Divide
      
      * - Added Support for Greater and less Op
      
      * -Add support for Minimum and Maximum
      
      * use edsc::intrinsics::select instead of terenary operator
      
      * Addressed PR comments
      
      * - return after the conditional check
      073db8fb
  12. 11 Jul, 2019 1 commit
  13. 28 Jun, 2019 1 commit
    • Diego Caballero's avatar
      [MLIR] Bump MLIR repo to commit 82d5084 Wed Jun 26. · 2ebe33f1
      Diego Caballero authored
      Improvements and changes in dialect conversion APIs. Type conversion
      and op rewriting are now a bit more independent mechanisms. Dialect
      conversion now requires a target object with the legal transformations
      to be applied. Legality checks to detect illegal operations after
      dialect conversion have been strengthened significantly.
      
      MLIR LLVM commit:
      commit 82d5084cf28bca7a0eebec283cdeae118dfa1d11 (HEAD)
      Author: Jacques Pienaar <jpienaar@google.com>
      Date:   Wed Jun 26 11:12:40 2019 -0700
      
          Split out TranslateClParser and add new parse method that reuses
          SourceMgr.
      
      MLIR commit:
      commit 82d5084cf28bca7a0eebec283cdeae118dfa1d11 (HEAD)
      Author: Jacques Pienaar <jpienaar@google.com>
      Date:   Wed Jun 26 11:12:40 2019 -0700
      
          Split out TranslateClParser and add new parse method that reuses
          SourceMgr.
      2ebe33f1
  14. 20 Jun, 2019 1 commit
  15. 19 Jun, 2019 1 commit
  16. 13 Jun, 2019 6 commits
  17. 10 Jun, 2019 3 commits
  18. 03 Jun, 2019 2 commits
    • nmostafa's avatar
      style-apply · 9f0e1f60
      nmostafa authored
      9f0e1f60
    • Diego Caballero's avatar
      [MLIR] Improve MLIR dump · 3358d690
      Diego Caballero authored
      It refactor MLIR dump code in MLIRCompiler and adds missing dumps for
      some steps of the lowering. It also removes some redundant dump for
      affine dialect.
      3358d690
  19. 02 Jun, 2019 6 commits