Skip to content
  1. Jul 09, 2018
    • Alexey Bataev's avatar
      [OPENMP, NVPTX] Support several images in the executable. · 2622e9e5
      Alexey Bataev authored
      Summary:
      Currently Cuda plugin supports loading of the single image, though we
      may have the executable with the several images, if it has target
      regions inside of the dynamically loaded library. Patch allows to load
      multiple images.
      
      Reviewers: grokos
      
      Subscribers: guansong, openmp-commits, kkwli0
      
      Differential Revision: https://reviews.llvm.org/D49036
      
      llvm-svn: 336569
      2622e9e5
    • Jonathan Peyton's avatar
      [OpenMP] Restructure loop code for hierarchical scheduling · 39ada854
      Jonathan Peyton authored
      This patch reorganizes the loop scheduling code in order to allow hierarchical
      scheduling to use it more effectively. In particular, the goal of this patch
      is to separate the algorithmic parts of the scheduling from the thread
      logistics code.
      
      Moves declarations & structures to kmp_dispatch.h for easier access in
      other files.  Extracts the algorithmic part of __kmp_dispatch_init() and
      __kmp_dispatch_next() into __kmp_dispatch_init_algorithm() and
      __kmp_dispatch_next_algorithm(). The thread bookkeeping logic is still kept in
      __kmp_dispatch_init() and __kmp_dispatch_next(). This is done because the
      hierarchical scheduler needs to access the scheduling logic without the
      bookkeeping logic.  To prepare for new pointer in dispatch_private_info_t, a
      new flags variable is created which stores the ordered and nomerge flags instead
      of them being in two separate variables. This will keep the
      dispatch_private_info_t structure the same size.
      
      Differential Revision: https://reviews.llvm.org/D47961
      
      llvm-svn: 336568
      39ada854
    • Jonathan Peyton's avatar
      [OpenMP] Use C++11 Atomics - barrier, tasking, and lock code · 37e2ef54
      Jonathan Peyton authored
      These are preliminary changes that attempt to use C++11 Atomics in the runtime.
      We are expecting better portability with this change across architectures/OSes.
      Here is the summary of the changes.
      
      Most variables that need synchronization operation were converted to generic
      atomic variables (std::atomic<T>). Variables that are updated with combined CAS
      are packed into a single atomic variable, and partial read/write is done
      through unpacking/packing
      
      Patch by Hansang Bae
      
      Differential Revision: https://reviews.llvm.org/D47903
      
      llvm-svn: 336563
      37e2ef54
  2. Jul 06, 2018
  3. Jul 05, 2018
  4. Jul 02, 2018
  5. Jun 29, 2018
  6. Jun 25, 2018
    • Alexey Bataev's avatar
      [OPENMP, NVPTX] Fixes for NVPTX RTL · 0ac29350
      Alexey Bataev authored
      Summary:
      Patch fixes several problems in the implementation of NVPTX RTL.
      1. Detection of the last iteration for loops with static scheduling, no chunks.
      2. Fixes reductions for the serialized parallel constructs.
      3. Fixes handling of the barriers.
      
      Reviewers: grokos
      
      Reviewed By: grokos
      
      Subscribers: Hahnfeld, guansong, openmp-commits
      
      Differential Revision: https://reviews.llvm.org/D48480
      
      llvm-svn: 335469
      0ac29350
  7. Jun 20, 2018
  8. Jun 19, 2018
  9. Jun 09, 2018
  10. May 28, 2018
  11. May 27, 2018
    • Jonas Hahnfeld's avatar
      [OMPT] Fix test parallel/not_enough_threads.c · 3c6595d6
      Jonas Hahnfeld authored
      Upcoming changes to FileCheck will modify CHECK-DAG to not match
      overlapping regions of the input. This test was found to be affected
      because it expects to find four threads to invoke events of type
      ompt_event_implicit_task_begin. It turns out this is wrong because
      OMP_THREAD_LIMIT is set to 2, so there are only two threads. The
      rest of the test got it right so it went unnoticed until now.
      
      (Rewrite test and apply clang-format to it as discussed in the past.)
      
      Differential Revision: https://reviews.llvm.org/D47119
      
      llvm-svn: 333361
      3c6595d6
  12. May 25, 2018
    • Jonas Hahnfeld's avatar
      [libomptarget-nvptx] loop: Determine if runtime uninitialized · 17aabf83
      Jonas Hahnfeld authored
      The generic entry points for static loop scheduling previously
      hardcoded that the runtime was initialized. This can be wrong if
      the compiler analyzes that the runtime is not needed and calls
      the init functions accordingly.
      
      This didn't affect clang-ykt because they have entry points for
      different combinations of SPMD x Runtime not needed. I didn't do
      measurements yet but with inlining we might get away with always
      calling the generic interface and letting compiler and runtime
      figure out the rest.
      In any case, a correct runtime is always better than having
      functions that may only be called if previous calls passed in
      a specific set of arguments!
      
      Differential Revision: https://reviews.llvm.org/D47131
      
      llvm-svn: 333285
      17aabf83
    • Jonas Hahnfeld's avatar
      [CMake] Unify install path for libraries · 65e0b878
      Jonas Hahnfeld authored
      Introduce OPENMP_INSTALL_LIBDIR and use in all install() commands.
      This also fixes installation of libomptarget-nvptx that previously
      didn't honor {OPENMP,LLVM}_LIBDIR_SUFFIX.
      
      Differential Revision: https://reviews.llvm.org/D47130
      
      llvm-svn: 333284
      65e0b878
  13. May 24, 2018
    • George Rokos's avatar
      [CUDA]Fix dynamic|guided scheduling. · 6da6f433
      George Rokos authored
      The existing implementation of the dynamic scheduling
      breaks the contract introduced by the original openmp
      runtime and, thus, is incorrect. Patch fixes it and
      introduces correct dynamic scheduling model.
      
      Thanks to Alexey Bataev for submitting this patch.
      
      Differential Revision: https://reviews.llvm.org/D47333
      
      llvm-svn: 333225
      6da6f433
  14. May 16, 2018
  15. May 15, 2018
  16. May 07, 2018
  17. May 04, 2018
  18. Apr 30, 2018
  19. Apr 26, 2018
  20. Apr 20, 2018
  21. Apr 19, 2018
  22. Apr 18, 2018
    • Jonathan Peyton's avatar
      [OpenMP] Fix affinity API for KMP_AFFINITY=none|compact|scatter · 1482db9e
      Jonathan Peyton authored
      Currently, the affinity API reports garbage for the initial place list and any
      thread's place lists when using KMP_AFFINITY=none|compact|scatter.
      This patch does two things:
      
      for KMP_AFFINITY=none, Creates a one entry table for the places, this way, the
      initial place list is just a single place with all the proc ids in it. We also
      set the initial place of any thread to 0 instead of KMP_PLACE_ALL so that the
      thread reports that single place (place 0) instead of garbage (-1) when using
      the affinity API.
      
      When non-OMP_PROC_BIND affinity is used
      (including KMP_AFFINITY=compact|scatter), a thread's place list is populated
      correctly. We assume that each thread is assigned to a single place. This is
      implemented in two of the affinity API functions
      
      Differential Revision: https://reviews.llvm.org/D45527
      
      llvm-svn: 330283
      1482db9e
    • Jonathan Peyton's avatar
      Introduce GOMP_taskloop API · 27a677fc
      Jonathan Peyton authored
      This patch introduces GOMP_taskloop to our API. It adds GOMP_4.5 to our
      version symbols. Being a wrapper around __kmpc_taskloop, the function
      creates a task with the loop bounds properly nested in the shareds so that
      the GOMP task thunk will work properly. Also, the firstprivate copy constructors
      are properly handled using the __kmp_gomp_task_dup() auxiliary function.
      
      Currently, only linear spawning of tasks is supported
      for the GOMP_taskloop interface.
      
      Differential Revision: https://reviews.llvm.org/D45327
      
      llvm-svn: 330282
      27a677fc
  23. Apr 12, 2018
  24. Apr 10, 2018
  25. Apr 09, 2018
  26. Apr 03, 2018
  27. Mar 30, 2018
  28. Mar 26, 2018
Loading