1. 25 Mar, 2019 1 commit
    • Swann Perarnau's avatar
      [fix] use local headers in aml.h · 4954e0fa
      Swann Perarnau authored
      To ensure that unit tests include the right version of the code, aml.h
      should include local header. This also works for installed programs.
  2. 22 Mar, 2019 2 commits
  3. 21 Mar, 2019 5 commits
  4. 20 Mar, 2019 3 commits
  5. 19 Mar, 2019 3 commits
  6. 14 Mar, 2019 1 commit
  7. 13 Mar, 2019 4 commits
  8. 12 Mar, 2019 1 commit
  9. 11 Mar, 2019 1 commit
  10. 08 Mar, 2019 2 commits
    • Swann Perarnau's avatar
      Merge branch 'fix-make-check' into 'master' · 4acd2fde
      Swann Perarnau authored
      [fix] Embed custom jemalloc into libaml
      Closes #26
      See merge request !28
    • Swann Perarnau's avatar
      [fix] Embed custom jemalloc into libaml · ac85bab6
      Swann Perarnau authored
      Force libtool to static link the PIC version of our jemalloc import into
      libaml, making libaml standalone. This requires us to test some
      additional libraries in our own configure (pthread, and dlopen).
      This also solves the long-standing issue of `make check` only working after
      `make install`, while removing our custom jemalloc from the installed
      Fixes #26.
  11. 15 Feb, 2019 1 commit
  12. 27 Aug, 2018 3 commits
    • Swann Perarnau's avatar
      [fix] fixup unit tests · c759c9df
      Swann Perarnau authored
      Mbind is giving us trouble again, will need to spend time looking at it
    • Swann Perarnau's avatar
      [refactor] have the benchmarks use the new tileids · e66f5948
      Swann Perarnau authored
      Modify the benchmarks to use the new functions.
    • Swann Perarnau's avatar
      [feature/refactor] add tileid function · 55500ab0
      Swann Perarnau authored
      Instead of asking the user to provide the offsets into a tiling, add a
      function providing a tileid. This tileid corresponds to the in-memory
      order of tiles, making the tilestart functions a lot simpler.
      We still need to split the tileid for tilestart because scratchpads
      create requests based on tileids.
      Also add a unit test for tiling_2d, to make sure we're not doing
      anything crazy.
  13. 24 Aug, 2018 1 commit
  14. 20 Aug, 2018 2 commits
  15. 06 Aug, 2018 10 commits
    • Swann Perarnau's avatar
      [fix] Align mbind arguments properly. · 30d3840a
      Swann Perarnau authored
      mbind requires that the input ptr be aligned on a page.
      NOTE: we could also figure out a way to ask jemalloc
      for page-aligned allocations, but that would probably
      be too much for each alloc.
    • Swann Perarnau's avatar
      [refactor] use one arena per area. · 67114902
      Swann Perarnau authored
      Prevents issue with the new arena/alloc logic. This way, no allocation
      can end up overlapping the pages of another one on a different binding.
    • Swann Perarnau's avatar
      [fix] Force mbind on allocation from arena · 759ec35a
      Swann Perarnau authored
      The way jemalloc handles big allocations can often result in surprising
      calls to mmap/mbind (splitting allocations, rounded up sizes). It also
      makes the path between an aml_alloc and mbind quite difficult to see.
      More worrying, if jemalloc reuses a previous allocation, the mbind will
      not be called again, which might result in the wrong binding happening.
      To fix those issues, we move the mbind logic to be around the
      allocations returned from jemalloc. This will ensure that we always bind
      properly. The only issue is that it might slow down allocations.
      It can also cause issues if the same arena is used by multiple areas, as
      allocations might be overlapping a page. We will move away from sharing
      arenas for benchmarks from now on.
    • Kamil Iskra's avatar
      [feature/fix] Duplicate dgemm_nofetch.c changes · b808beb2
      Kamil Iskra authored
      Duplicate changes to dgemm_nofetch.c from commits
      6a0d1cbd and
    • Kamil Iskra's avatar
      [fix] Make offset/pointer variables thread-local · 9326c388
      Kamil Iskra authored
      We had a race condition where OpenMP threads were accidentally reusing
      the same variables on stack, resulting in races and incorrect results.
      The number of FP operations was probably correct, although the memory
      accesses to the arrays may have been wrong.
    • Kamil Iskra's avatar
      [feature] Respect tiling representation of arrays · 6a0d1cbd
      Kamil Iskra authored
      The A, B, and C matrices are tiled (tiles in A are also transposed).
      Add initialization code for A and B and conversion code for C that
      respects the tiling, thus enabling a direct comparison of results with
      mkl and vanilla.
    • Swann Perarnau's avatar
      [fix] Wrong variable/type to aml calls · b67dc368
      Swann Perarnau authored
      Benchmarks were crashing due to bad parameters.
    • Swann Perarnau's avatar
      [refactor] use new tilings for dgemm_prefetch · 47c021c8
      Swann Perarnau authored
      Use the new 2D tilings for dgemm_prefetch, also refactor the code to
      match the rest of the benchmarks. The code should be a lot more cleaner
    • Swann Perarnau's avatar
      [feature/fix] add column-major 2D tiling · 9764f3c6
      Swann Perarnau authored
      Fix dgemm_noprefetch to match pattern from @suchyb in #19.
      In order to do so we split our 2d tiling into column-major and
      row-major ones. Note that those are refering to the order of the tiles,
      not the internal data of a tile, as a tiling should be agnostic to it.
    • Swann Perarnau's avatar
      [refactor/fix] use proper tiling and tile order · f673af2e
      Swann Perarnau authored
      1. refactor overall main function to match intended benchmark interface.
      2. Use the new tiling type to cleanup the noprefetch version. Careful
      inspection unearthed some bad offset computations, which are fixed here.
      3. double checked the way we were spawning threads, new code should be
      I believe that code should be easier to read and to play with.
      Converting the prefetch versions might not be as easy.