1. 30 Aug, 2019 3 commits
    • Swann Perarnau's avatar
      [feature] add extra argument to dma operator · 7eb3d520
      Swann Perarnau authored
      Some operators will need an extra argument (like transforms).
      7eb3d520
    • Swann Perarnau's avatar
      [feature] extend dma to support custom operators · 42d0d493
      Swann Perarnau authored
      Change the DMA generic API to allow for a custom function pointer to
      perform a specific request. Requires us to change a bit the underlying
      management structures.
      42d0d493
    • Nicolas Denoyelle's avatar
      [feature] add area options on mmap · c3a501b9
      Nicolas Denoyelle authored
      ## Change area mmap interface to include implementation specific options.
      
      ### Summary of changes in mmap interface
      Previous mmap interface was:
      ```
      int aml_area_mmap(struct aml_area *area, void*ptr, size_t size);
      ```
      First, in this interface, the purpose of ptr is fuzzy as it is implementation specific and neither
      the user nor aml generic interface knows what to do with it in a generic way.
      Second, this interface does not allow for extensive options. In particular, linux mmap allow
      multiple arguments that cannot be elegantly passed with this interface.
      Instead we aml_mmap replace with this new interface:
      ```
      int aml_area_mmap(struct aml_area *area, size_t size, struct aml_area_options *options);
      ```
      Where the last field clearly state it is used for options and can always be NULL so that it can explicitly be used without knowledge of options implementation.
      c3a501b9
  2. 15 Jul, 2019 1 commit
  3. 27 Mar, 2019 1 commit
  4. 13 Mar, 2019 1 commit
    • Nicolas Denoyelle's avatar
      [refactor] reorganize repository · 2ad4488c
      Nicolas Denoyelle authored
      - create one directory per building block in src and include
      - keep one directory for tests, \
        otherwise automake make them "test suites"
      - move to AC_OPENMP, which is from autoconf 2.62 (2008)
      2ad4488c
  5. 15 Feb, 2019 1 commit
  6. 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
  7. 23 Aug, 2017 1 commit
  8. 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
  9. 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
  10. 21 Feb, 2017 1 commit
  11. 30 Jun, 2016 1 commit
    • Swann Perarnau's avatar
      Add first working version: limit numa allocs · 80669c37
      Swann Perarnau authored
      This is the first working version of the library. It does very little:
      - only numa support
      - one allocation per node only
      - limited tests
      - limited set of functions
      
      Nevertheless, this gives a good idea of what the API should look like, and the
      kind of benchmarks we can write with it.
      80669c37