1. 20 Jul, 2018 1 commit
    • Swann Perarnau's avatar
      [refactor] move functional tests, proper OpenMP · 51167d12
      Swann Perarnau authored
      We are starting to work on benchmarks to evaluate the usefulness of this
      library. Instead of integrating them into the testing infrastructure, it
      makes more sense for them to have their own directory and a different
      way of handling them.
      
      This patch:
       - creates a benchmark directory for actual codes that we want to use as
         benchmarks of our library.
       - moves functional tests into it.
       - add proper OpenMP detection for these codes
      51167d12
  2. 30 Mar, 2018 3 commits
    • Swann Perarnau's avatar
      [fix] enforce type convertion, better pointer management · 54d0b418
      Swann Perarnau authored
      Fix small issues with type convertion across several tests,
      as a change of architecture might trigger bad behavior in
      variadic functions.
      54d0b418
    • Swann Perarnau's avatar
      [refactor] add openmp version of stream_add_pth · 21d3724e
      Swann Perarnau authored
      Add openmp version of the previous functional test. We also rename them,
      to mark the fact that those two tests are designed to use a *single-thread*
      to run the kernel across an entire tile.
      21d3724e
    • Swann Perarnau's avatar
      [refactor] make use of functional tests again · f47dc685
      Swann Perarnau authored
      This patch reintroduce the first functional test, a stream add
      implementation using pthreads for parallelism. We make use of our
      scratch_par implementation to implement a pipelined version of the
      application, where each worker thread is using its own batch of tiles,
      and migrating data asynchronously.
      f47dc685
  3. 23 Aug, 2017 1 commit
  4. 22 Aug, 2017 1 commit
    • Swann Perarnau's avatar
      [refactor] Rework code for better abstractions · a41b0412
      Swann Perarnau authored
      This is a rewrite of the existing code into a memory library exposing
      more of its internal abstractions. This refactoring is required to:
      - make progress faster by focusing on the core new features
      - abstract more of the underlying components and expose those
      abstractions
      - build upon existing libraries (memkind) for the internal stuff.
      
      Memkind is used as a crutch here, we do not intend to use it in the long
      term, as some of its internal are opposed to what we want (topology
      management in particular).
      
      Nevertheless, it currently provides a good allocator internally, and
      decent access to deep memory, for now.
      
      Over time, we figured out that the best way to build this API was to
      create several layers of APIs, each with more abstractions over the
      devices. At the same time, we want each layer to expose its internal
      mechanisms, so that a user can customize any of them.
      
      This is why we end up with areas and dma engines, and we will add in the
      future other stuff, like data decomposition and distribution methods, as
      well as direct support for "pipelining".
      a41b0412
  5. 27 Feb, 2017 1 commit
    • Swann Perarnau's avatar
      Implement non-transparent memory interface · 27252580
      Swann Perarnau authored
      This is a mmap-based, non-transparent version of the library, with a
      unit test checking that we can call move_pages properly from it.
      
      No node tracking performed. Memcpy not working.
      27252580