diff --git a/openmp-wg/meeting-minutes/images/image1.png b/openmp-wg/meeting-minutes/images/image1.png new file mode 100644 index 0000000..4e58b6d Binary files /dev/null and b/openmp-wg/meeting-minutes/images/image1.png differ diff --git a/openmp-wg/meeting-minutes/images/image2.png b/openmp-wg/meeting-minutes/images/image2.png new file mode 100644 index 0000000..792f8c6 Binary files /dev/null and b/openmp-wg/meeting-minutes/images/image2.png differ diff --git a/openmp-wg/meeting-minutes/images/image3.png b/openmp-wg/meeting-minutes/images/image3.png new file mode 100644 index 0000000..2f81c23 Binary files /dev/null and b/openmp-wg/meeting-minutes/images/image3.png differ diff --git a/openmp-wg/meeting-minutes/images/image4.jpg b/openmp-wg/meeting-minutes/images/image4.jpg new file mode 100644 index 0000000..5f7d995 Binary files /dev/null and b/openmp-wg/meeting-minutes/images/image4.jpg differ diff --git a/openmp-wg/meeting-minutes/images/image5.png b/openmp-wg/meeting-minutes/images/image5.png new file mode 100644 index 0000000..0e70f68 Binary files /dev/null and b/openmp-wg/meeting-minutes/images/image5.png differ diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-08-12.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-08-12.md new file mode 100644 index 0000000..cb63e12 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-08-12.md @@ -0,0 +1,123 @@ +### 2020, August 12 + +### Agenda + + 1. Roll Call Put your name in the participants list below (if you want) + 2. administrative things: weekly meetings, google docs, + + + +Need regular backups of the document + + 3. Open : + + + +Plugin : … + + Jon made AMD plugin runtime. About 6000 lines, only builds if a cmake variable ROCM_DIR is set. Would like to check in as is. + + Johannes prefers to work on enabling testing (after merge) + + Order plugin table in chronological order. + +Greg wants libomptarget to look in current directory for plugin to avoid using LD_LIBRARY_PATH + +Greg also want some early check for device availability before loading plugin + + 4. present clause (Joel) + + + +Done. target update, target data. For target regions checked on entry and exit. + +Need clarification about map and present clause ordering. + +Alexey is working on reordering mapping clauses based on 5.0 requirements. + + 5. Status of failures when switching OpenMP version to 50 (Saiyed) + + + 1. https://reviews.llvm.org/D84844 + 2. https://reviews.llvm.org/D85150 + 3. https://reviews.llvm.org/D85214 + + + + 360 tests need to be updated.. Hopefully it will be done by next week. + + Split test to run in parallel. ([https://reviews.llvm.org/D85695](https://www.google.com/url?q=https://reviews.llvm.org/D85695&sa=D&source=editors&ust=1778600246610329&usg=AOvVaw2Y90P3veFiBgtp5XOZw-5v) & [https://reviews.llvm.org/D85551](https://www.google.com/url?q=https://reviews.llvm.org/D85551&sa=D&source=editors&ust=1778600246610411&usg=AOvVaw0xYVA--OGRTvph_BW8th0f)) + + 6. target memory manager & pool allocator (Shilei) + + + + Patches are [https://reviews.llvm.org/D81054](https://www.google.com/url?q=https://reviews.llvm.org/D81054&sa=D&source=editors&ust=1778600246610586&usg=AOvVaw32u-2qHDL8h3KrrbZHQ60Q) and [https://reviews.llvm.org/D85274](https://www.google.com/url?q=https://reviews.llvm.org/D85274&sa=D&source=editors&ust=1778600246610658&usg=AOvVaw0i2EWBI40yLrTpCoMSWnGI) + + 7. unshackled task / async support (Shilei) + 8. Heterogeneous LLVM-IR Modules (Johannes) + 9. Support fat static library + 10. Libomptarget dependency handling (Shilei) + 11. OpenMP IRBuilder status, Flang + OpenMP + 12. OpenMP optimization command center (Johannes) + 13. Automatic detection of target pragmas without user command line -fopenmp-targets= + 14. DeviceRTL redesign to support sharing code + 15. OpenMP feature tracking status ( https://clang.llvm.org/docs/OpenMPSupport.html) + 16. LTO for fat binary linking + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=47063](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D47063&sa=D&source=editors&ust=1778600246611456&usg=AOvVaw3IsUdgxQJU4sMJojIIBF36) + * [https://bugs.llvm.org/show_bug.cgi?id=47122](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D47122&sa=D&source=editors&ust=1778600246611577&usg=AOvVaw2Nb7ihdADoUFdrry6Jtb6P) + + + +### Patches to look at + + * [https://reviews.llvm.org/D80816](https://www.google.com/url?q=https://reviews.llvm.org/D80816&sa=D&source=editors&ust=1778600246611720&usg=AOvVaw2DQYK6NlKpZV9C93JXYEbd) \- clang-offload-bundler (SDL) - needs approval/review. + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert (ANL) + * George Rokos (Intel) + * Joel Denny, Valentin Clement (ORNL) + * Kelvin Li (IBM) + * Shilei Tian (SBU) + * Lukas Sommer (TU Darmstadt) + * Roger Ferrer Ibañez (Barcelona Supercomputing Center) + * Saiyedul Islam, Raghu Maddhipatla, Rich Bleikamp, Greg Rodgers, Jan Sjodin (AMD) + * Ye Luo(ANL) + * Michael Kruse (ANL) + * Andrey Churbanov (Intel) + + + +* * * + +## Meeting Template (to be copied into next meeting) + +### + +### Agenda + + * + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * * * * * * * * * * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-08-19.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-08-19.md new file mode 100644 index 0000000..74d63b4 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-08-19.md @@ -0,0 +1,45 @@ +### 2020, August 19 + +### Agenda + + * Shilei Tian, `nowait` support (=async, unshakled tasks, …) [D77609](https://www.google.com/url?q=https://reviews.llvm.org/D77609&sa=D&source=editors&ust=1778600246607531&usg=AOvVaw1QDwK5hvHi4aEVPWW7F2G_) + + + * Presented unshackled implementations support. [Slides](https://www.google.com/url?q=https://drive.google.com/file/d/1d1kQBY_1ZGz-O3z3Q5drBJCa1E5pF3GZ/view?usp%3Dsharing&sa=D&source=editors&ust=1778600246607672&usg=AOvVaw0mkWUzVxk79BVrzctFoqI6) + * How should the array list be handled when the pool of threads are increased? + + + +### Open Bugs + + * Lookup plugins in libomptarget directory. + + + * Greg to investigate and provide details on why this is necessary for their implementation. + + + * [https://bugs.llvm.org/show_bug.cgi?id=47122](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D47122&sa=D&source=editors&ust=1778600246608051&usg=AOvVaw3g1SJUbfg8d5nBleaQ7rvq) + + + +### Patches to look at + + * [https://reviews.llvm.org/D77609](https://www.google.com/url?q=https://reviews.llvm.org/D77609&sa=D&source=editors&ust=1778600246608193&usg=AOvVaw2SpGsoNwRbudhyB3iwJAow) + * [https://reviews.llvm.org/D81054](https://www.google.com/url?q=https://reviews.llvm.org/D81054&sa=D&source=editors&ust=1778600246608291&usg=AOvVaw0ZObYjfwzhZB_V_vQV6svD) + + + +### Participants (voluntary/incomplete listing) + + * Johannes Doerfert (ANL) + * Ravi Narayanaswamy (Intel) + * George Rokos (Intel) + * Kelvin Li (IBM) + * Valentin Clement, Joel Denny (ORNL) + * Greg Rodgers(AMD) + * Ye Luo (ANL) + * Saiyedul Islam (AMD) + * Shilei Tian (SBU) + * Andrey Churbanov (Intel) + * Jan Sjodin (AMD) + * Jon Chesterfield (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-08-26.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-08-26.md new file mode 100644 index 0000000..e7720fd --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-08-26.md @@ -0,0 +1,57 @@ +### 2020, August 26 + +### Agenda + + * Communicating OMP_TGT_MAPTYPE_LITERAL to plugins + + + * Overload offset field by setting it to MAXINT to communicate literals + + + * Search location of plugin libraries + * Test update status + + + * Salyedul is waiting for 2 reviews. Alexey will review the patches + + + * Questions from Alex Duran on unshackled threads ([https://reviews.llvm.org/D77609](https://www.google.com/url?q=https://reviews.llvm.org/D77609&sa=D&source=editors&ust=1778600246605335&usg=AOvVaw0EFc6XCZk_YxSpPTsG1OPW)) + * Release Notes for OpenMP in LLVM/Clang 11, collected right now ([https://reviews.llvm.org/D86562](https://www.google.com/url?q=https://reviews.llvm.org/D86562&sa=D&source=editors&ust=1778600246605496&usg=AOvVaw3aUpt0q74aGM4aGUlezSSV)) + * Target memory manager (merged) + * Pack first private (merged) + * Plugin lifetime + * Emit more errors to users ([https://reviews.llvm.org/D86483](https://www.google.com/url?q=https://reviews.llvm.org/D86483&sa=D&source=editors&ust=1778600246605739&usg=AOvVaw2wf67Lgl3bJcHETSYKQjeK)) ([https://docs.google.com/document/d/1nvQANWODnsCszGLDdqsbNkQokOolxBVXlFfvk2tHxU4/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1nvQANWODnsCszGLDdqsbNkQokOolxBVXlFfvk2tHxU4/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246605893&usg=AOvVaw3Z_KQ0lxfvvEjaL-Q_7Ybu)) + * + + +Target Memory Manager effect on SU(3)xSU(3) (grid mini app), it is patched below, includes the -fopenmp-cuda-mode flag in the plot: + +![](images/image2.png) + +### Open Bugs + + * + + +### Patches to look at + + * [https://reviews.llvm.org/D77609](https://www.google.com/url?q=https://reviews.llvm.org/D77609&sa=D&source=editors&ust=1778600246606500&usg=AOvVaw1rOkSwD9Dm6x9jYc9o6Fge) + * [https://reviews.llvm.org/D81054](https://www.google.com/url?q=https://reviews.llvm.org/D81054&sa=D&source=editors&ust=1778600246606593&usg=AOvVaw35YTFOK16VbyQBL8I22Wic) + * [https://reviews.llvm.org/D80816](https://www.google.com/url?q=https://reviews.llvm.org/D80816&sa=D&source=editors&ust=1778600246606681&usg=AOvVaw1Oo0TlMTKca3HYGpS-B5l_) + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Jan Sjodin (AMD) + * George Rokos (Intel) + * Saiyedul Islam (AMD) + * Johannes Doerfert (ANL) + * Jon Chesterfield (AMD) + * Andrey Churbanov (Intel) + * Shilei Tian (SBU) + * Valentin Clement (ORNL) + * Joel Denny (ORNL) + * Ye Luo (ANL) + * Hal Finkel (ANL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-09-02.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-09-02.md new file mode 100644 index 0000000..6b5a4a1 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-09-02.md @@ -0,0 +1,71 @@ +### 2020, September 2 + +### Agenda + + * Support struct mapping : #pragma omp target map(alloc:S) map(S.p[:N]) map(to:S.a, S.b) where S is a struct with 3 fields p,a,b +[https://reviews.llvm.org/D86119](https://www.google.com/url?q=https://reviews.llvm.org/D86119&sa=D&source=editors&ust=1778600246602343&usg=AOvVaw01Hf7iUxWL1o9Hf012IJvU) + * OpenMP device runtime build setup + + + * 1) Remove the non .bc support, this is largely untested and unhelpful, also unneeded after we do step 2) and 3) + * 2) Setup cmake to build the .bc device runtimes with the clang that was created in the build, if any. We have some precedence here I was told. (nb: LLVM_ENABLE_RUNTIMES didn't work for this out of the box) + * 3) Setup cmake to build all supported .bc device runtimes and let the user opt-out of that. Building a device runtime is basically free compared to the rest of LLVM, having out-of-the-box support for all devices is worth it (IMHO). + + + +Have a default clang which could be the one just built and then have an option to choose a different clang. + +Please respond by next week so a decision can be made. + +A related patch has been on the Phabricator in a blocked state: [https://reviews.llvm.org/D46842](https://www.google.com/url?q=https://reviews.llvm.org/D46842&sa=D&source=editors&ust=1778600246603274&usg=AOvVaw0TRISRDj1mLpIj9DMQ9sIp) + + * Unshackled task + + + * All issues have been addressed in the review. + + + * Target nowait is broken (Ye) + + + * Mapper change introduced wrong arguments which results in seg fault. + * George said there is a patch.[https://reviews.llvm.org/D84470](https://www.google.com/url?q=https://reviews.llvm.org/D84470&sa=D&source=editors&ust=1778600246603684&usg=AOvVaw10Ua9Qvcl7xvM9v0FGAiMN) which should address the issue + + + + * Fat archive + + + * Patch for offload bundler is waiting to be reviewed + * Hope to get the driver change to accept device archive + + + * Runtime debug generation + + + * Better support to print info to user + * Ye: Errors common to all the plugins captured by libomptarget by number. + * Ye: not sure all the plugins should be forced to use numbers instead of ad-hoc printing messages. + + + +### Open Bugs + + * + + +### Patches to look at + + * [https://reviews.llvm.org/D80816](https://www.google.com/url?q=https://reviews.llvm.org/D80816&sa=D&source=editors&ust=1778600246604400&usg=AOvVaw3lGb0Nt8eD-UpBom2OQoT5) \- offload-bundler archives patch + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy, George Rokos(Intel) + * Jan Sjodin (AMD) + * Ye Luo (Argonne) + * Johannes Doerfert (ANL) + * Jon Chesterfield + * Andrey Churbanov (Intel) + * Kelvin Li (IBM) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-09-09.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-09-09.md new file mode 100644 index 0000000..a694028 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-09-09.md @@ -0,0 +1,83 @@ +### 2020, September 9 + +### Agenda + + * FE optimization : if (omp_is_initial_device()) + + + + d + + Results in d passed as arg on host compilation and not for device compilation + +Proposed solution: + + #omp begin declare variant match(device={kind(host)}) + + Int omp_is_initial_device() { return 1; } + + #omp end declare variant + +#omp begin declare variant match(device={kind(nohost)}) + + Int omp_is_initial_device() { return 0; } + + #omp end declare variant + +[https://clang.godbolt.org/z/cnhe6G](https://www.google.com/url?q=https://clang.godbolt.org/z/cnhe6G&sa=D&source=editors&ust=1778600246599430&usg=AOvVaw0w1CBtf20asnO5Us0iz6hd) + +[https://clang.godbolt.org/z/Wqo9hM](https://www.google.com/url?q=https://clang.godbolt.org/z/Wqo9hM&sa=D&source=editors&ust=1778600246599553&usg=AOvVaw3zDES4ZhDCHHwMS0L3ZtEm) + + * Using Clang to compile openmp device code + * Change the default linkage for OpenMP kernels (and such) to `weak_odr` (from `weak`) + * Target nowait is broken. Has the mapper fixed uploaded? + + + * Have patch which fixes the problem. + * Need LIT test. George or Alexey will add it + * Declare mapper is unstable. Should we disable it? + + + * Clean revert is problematic + * Seems like disabling in 11 is the right choice + + + * Support struct mapping : #pragma omp target map(alloc:S) map(S.p[:N]) map(to:S.a, S.b) where S is a struct with 3 fields p,a,b +[https://reviews.llvm.org/D86119](https://www.google.com/url?q=https://reviews.llvm.org/D86119&sa=D&source=editors&ust=1778600246600271&usg=AOvVaw1kO1VvRAyMsF_Pxz-yjYXu) + * OpenMP device runtime build setup [from last week] + * Runtime debug generation + + + * https://reviews.llvm.org/D87165 + + + +### + +### Open Bugs + + * + + +### Patches to look at + + * [https://reviews.llvm.org/D80816](https://www.google.com/url?q=https://reviews.llvm.org/D80816&sa=D&source=editors&ust=1778600246600671&usg=AOvVaw1GuYyfokOyfXq5JyttSflB) \- offload-bundler archives patch + * [https://reviews.llvm.org/D84470](https://www.google.com/url?q=https://reviews.llvm.org/D84470&sa=D&source=editors&ust=1778600246600792&usg=AOvVaw0PfqioPZPai8a2ybIRtFku) Mapper bug fix + * [https://reviews.llvm.org/D86558](https://www.google.com/url?q=https://reviews.llvm.org/D86558&sa=D&source=editors&ust=1778600246600893&usg=AOvVaw0EN2QvbxNjyGGfIv86LIcC) \- Support for allocated locals in untied tasks. + * [https://reviews.llvm.org/D86119](https://www.google.com/url?q=https://reviews.llvm.org/D86119&sa=D&source=editors&ust=1778600246601018&usg=AOvVaw2NFcPgPV0s7LBuOEBQJu7w) \- support for overlapped mappings + * [https://reviews.llvm.org/D85762](https://www.google.com/url?q=https://reviews.llvm.org/D85762&sa=D&source=editors&ust=1778600246601166&usg=AOvVaw2k1M0_QXBZwKQVOjQZzuQR) \- [Do not allow threadprivates as base for array-like reduction.](https://www.google.com/url?q=https://reviews.llvm.org/D85762&sa=D&source=editors&ust=1778600246601272&usg=AOvVaw3PDXPf5R0WUSHIhoYWIQXo) + * [https://reviews.llvm.org/D84887](https://www.google.com/url?q=https://reviews.llvm.org/D84887&sa=D&source=editors&ust=1778600246601363&usg=AOvVaw3TzZGQ8jijVVS9UnzPxkeX) \- [Fix codegen for is_device_ptr component, captured by reference.](https://www.google.com/url?q=https://reviews.llvm.org/D84887&sa=D&source=editors&ust=1778600246601509&usg=AOvVaw1O36gck2EL9fj39lmr_Uwo) + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Valentin Clement (ORNL) + * Shilei Tian (SBU) + * Joel Denny (ORNL) + * George Rokos (Intel) + * Saiyedul Islam (AMD) + * Johannes Doerfert, Ye Luo (ANL) + * Andrey Churbanov (Intel) + * Kelvin Li (IBM) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-10-07.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-10-07.md new file mode 100644 index 0000000..a5595a5 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-10-07.md @@ -0,0 +1,171 @@ +### 2020, October 7 + +### Agenda + + * Setenv use in the runtime: [http://lists.llvm.org/pipermail/openmp-dev/2020-September/003652.html](https://www.google.com/url?q=http://lists.llvm.org/pipermail/openmp-dev/2020-September/003652.html&sa=D&source=editors&ust=1778600246592830&usg=AOvVaw2oorDGksOsPhuBbOmDkxB3) + + + * Intel has an implementation that work. There are some corner case Todd is working. + + + * Plans for detached task? + + + * Intel has a version implemented according to OpenMP Spec in the runtime + * Frontend has some use of detached task.. + + + * b09cce07c7ebd6d42c97f7144f5a2e7dd8fca19e + + + * Walk through the list and keep it up to date: [https://clang.llvm.org/docs/OpenMPSupport.html#basic-support-for-cuda-devices](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23basic-support-for-cuda-devices&sa=D&source=editors&ust=1778600246593381&usg=AOvVaw1GbJQFuBTjPj8XA3VyxnyW) + + + * There are some line items marked unclaimed. This may be due to the reason the description is not clear on what needs to be done. + + + * Discuss location pointers in target runtime functions and augmenting the mapper functions with variable declaration names. [https://reviews.llvm.org/D87946](https://www.google.com/url?q=https://reviews.llvm.org/D87946&sa=D&source=editors&ust=1778600246593715&usg=AOvVaw1X2fqAVElWruya_xYRGrmX) + + + * Adding ident support need to add new API. + * Add array of struct with name, line and column + + + * Map types PTR_AND_OBJ reused for PTR (named array) + + + * George will send an example to clarify the issue. + + + * Fat archive libraries. + * Conflicting host and target pointer width errors.[ https://reviews.llvm.org/D88594 ](https://www.google.com/url?q=https://reviews.llvm.org/D88594&sa=D&source=editors&ust=1778600246594137&usg=AOvVaw1AUfnhG26cTV4Mhq-tWmOb) + * [http://openmp.llvm.org/docs](https://www.google.com/url?q=http://openmp.llvm.org/docs&sa=D&source=editors&ust=1778600246594232&usg=AOvVaw261guA2Qi6QF8tVFnBciJY) + * GPU variable globalization work (quick update) + * + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert, Ye Luo (ANL) + * George Rokos (Intel) + * Andrey Churbanov (Intel) + * Joseph Huber (ORNL) + * Jose M Monsalve Diaz (ANL/UD) + * Valentin Clement (ORNL) + * Joel Denny (ORNL) + + + +### +2020, September 16 + +### Agenda + + * IWOMP and OpenMP F2F next 2 weeks. + + + * Next 2 weeks cancelled. + + + * Clang OpenMP tests rewrite using update_cc_test_checks.py + + + * Looking to supporting global variables + * Teach script about run lines and how to test them. + * Then start updating FE tests to use scripts + * [Islam] Is the plan for new tests or current tests + + + * [Johannes] Also for current tests + * [https://reviews.llvm.org/D83004](https://www.google.com/url?q=https://reviews.llvm.org/D83004&sa=D&source=editors&ust=1778600246595539&usg=AOvVaw1reJnMxM5fI6lJif95aoka) + * [https://reviews.llvm.org/D85932](https://www.google.com/url?q=https://reviews.llvm.org/D85932&sa=D&source=editors&ust=1778600246595666&usg=AOvVaw2IXLYUH_OG3oLgBbh1SRsG) + + + * Print variable names in mapped clause in libomptarget + + + * Extend the API + * Have a new function called in debugging mode to map address to names + + + * FE uses 0 size for is_device_ptr pointers and non-zero size for firstprivate literals, + + + * FE may already be doing this. + * Add a new map type which is a clean solution. + + + * Moderator for the OpenMPOpt tech talk @LLVM-Dev: + + + * [https://whova.com/embedded/session/llvm_202010/1162344/?view=](https://www.google.com/url?q=https://whova.com/embedded/session/llvm_202010/1162344/?view%3D&sa=D&source=editors&ust=1778600246596279&usg=AOvVaw3UcDA6Vka0IJUxKqJpeKCH) + + + +Usually I request volunteers from the community to moderate the talks at the dev meeting. However, given that we are in a virtual format, moderators will have a much larger role. + + + +Moderators will be asked to moderate the live Q&A portion of your talk. They will take questions from the audience through the Whova Q&A feature. They also should have a couple questions prepared in the event that no questions are submitted. + + + +It would be extremely beneficial to have a moderator who is familiar with your work. This might be an author, co-worker, or someone you know in the LLVM community. + + + +I'm asking all speakers to try to recruit a moderator for your talk by September 18th. Once you have a moderator, please have them fill out this form: + +https://forms.gle/8o4kP2uQdwvnPdWF8 + + + +Moderators will participate in a training session that is listed on the form and they can select their day/time. + + * is _initial_device update + * Issue with declare variant. + + + * The names in declare variant is mangled but the call is not. + + + * Are we still required to keep libomptarget independent from llvm? In particular there's some unfortunate duplication going on because we can't #include one file from both, I think on licensing grounds, but it looks like libomp has the same license as llvm now. Propose that we declare that the LLVM source tree is required on disk in order to build libomp, and take a CMake variable pointing to it, so we can #include various constants. That'll annoy whoever is building libomp without clang, but on balance it seems reasonable to ask whoever is doing that to download a few source files. + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Jon Chesterfield (AMD) + * George Rokos (Intel) + * Saiyedul Islam (AMD) + * Ron Lieberman (AMD) + * Johannes Doerfert (ANL) + * Valentin Clement (ORNL) + * Joel Denny (ORNL) + * Jose M Monsalve Diaz (UDEL/ANL) + * Andrey Churbanov (Intel) + * Shilei Tian (SBU) + * Joseph Huber (ORNL) + * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-10-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-10-14.md new file mode 100644 index 0000000..c21e3ad --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-10-14.md @@ -0,0 +1,66 @@ +### 2020, October 14 + +### Agenda + + * Fat archive libraries. + + + * Jan who was working left AMD. + * Need Greg to discuss what his plans are going forward + + + * Openmp offload on godbolt + + + * Johannes heard somebody was working on making it work. Wanted to know if anybody heard of this. + + + * Including a header from llvm instead of copy&paste, D87841 + + + * Review is stalled. + * Johannes will accept the patch + + + * Target map "names" + + + * For debugging pass variable name to runtime.to generate error with names instead of pointers. + * Add an extra argument to convey the name.when -g is enabled. + * OmpD is working to enhance dwarf to support openmp. Can we work with OmpD to use dwarf. + + + * Device rtl for host (OpenMP implemented device RTL) + * OpenMP offloading to host into new process + + + +### Open Bugs + + * Nowait + * mapper? + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayaanaswamy (Intel) + * George Rokos (Intel) + * Saiyedul Islam (AMD) + * Johannes Doerfert (ANL) + * Kelvin Li (IBM) + * Jose M Monsalve Diaz (ANL/UD) + * Joel Denny (ORNL) + * Joseph Huber (ORNL) + * Lukas Sommer (TU Darmstadt) + * Andrey Churbanov (Intel) + * Jon Chesterfield (AMD) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-10-21.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-10-21.md new file mode 100644 index 0000000..372d4ce --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-10-21.md @@ -0,0 +1,73 @@ +### 2020, October 21 + +### Agenda + + * Reorganization + + + * Jan left AMD and Saiyed will be taking over. + * Presentation at ISC has the current status. + * Need to merge [https://reviews.llvm.org/D80816](https://www.google.com/url?q=https://reviews.llvm.org/D80816&sa=D&source=editors&ust=1778600246588875&usg=AOvVaw2QF8tfUlpdAL5a6H9OCtu_) + + + * Target mapping names + + + * [https://reviews.llvm.org/D89802](https://www.google.com/url?q=https://reviews.llvm.org/D89802&sa=D&source=editors&ust=1778600246589010&usg=AOvVaw1JinHNqPFjXbi7PpyNcnVz) + + + +#pragma omp target map(to:s) map(tofrom:sp->x) map(from:A[0:10]) + +A[0:10] test.cpp:4:12 + +s test.cpp:2:21 + +sp->x test.cpp:3:11 + + * Fat archive libraries. + * Test suites + + + * [https://github.com/TApplencourt/OvO/](https://www.google.com/url?q=https://github.com/TApplencourt/OvO/&sa=D&source=editors&ust=1778600246589427&usg=AOvVaw3ERqxxygpGHn_OYd39lI7n) + * [https://github.com/SOLLVE/sollve_vv](https://www.google.com/url?q=https://github.com/SOLLVE/sollve_vv&sa=D&source=editors&ust=1778600246589524&usg=AOvVaw04z6qDFKu1c5ShVrvX4rpO) + * [https://github.com/clang-ykt/omptests](https://www.google.com/url?q=https://github.com/clang-ykt/omptests&sa=D&source=editors&ust=1778600246589619&usg=AOvVaw3eUgXEIEkT-6z19OT4Y6xS) + + + * libomptarget image registration order + * Libomptarget refactoring patch (D89654) + * Fix compiling with debugging using ptxas causing a crash + * \--cuda-path in regression tests (Michael) + + + * https://lists.llvm.org/pipermail/openmp-dev/2020-October/003698.html + * see: https://github.com/SOLLVE/ci/blob/knowngood_jlse/output.txt (scroll to the end) + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Joseph Huber (ORNL) + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert (ANL) + * George Rokos (Intel) + * Jon Chesterfield (AMD) + * Shilei Tian (SBU) + * Saiyedul Islam (AMD) + * Andrey Churbanov (Intel) + * Joel Denny (ORNL) + * Raghu Maddhipatla(AMD) + * Kelvin Li (IBM) + * Michael Kruse (ANL) + * Jose M Monsalve Diaz (ANL/UD) + * Valentin Clement (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-10-28.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-10-28.md new file mode 100644 index 0000000..59dfef0 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-10-28.md @@ -0,0 +1,40 @@ +### 2020, October 28 + +### Agenda + + * libomptarget image registration order + * Libomptarget refactoring patch ([D89654](https://www.google.com/url?q=http://reviews.llvm.org/D89654&sa=D&source=editors&ust=1778600246587399&usg=AOvVaw33nQjtU7SZBIh4hgXLOYYE)) + + + * Will be abandoned and later split. + + + * Libomptarget: lookup base addresses instead of begin addresses + * Openmp documentation page [https://reviews.llvm.org/D90256](https://www.google.com/url?q=https://reviews.llvm.org/D90256&sa=D&source=editors&ust=1778600246587650&usg=AOvVaw0bz62kfU5qjvU6b5B7rcsq) + * OpenMP (frontend) feature assignment + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=47595](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D47595&sa=D&source=editors&ust=1778600246587877&usg=AOvVaw0mNvMNiURSEW364X427mv3) status? <\- no progress, afaik, but I think we need to fix this + + + +### Patches to look at + + * D90248 - trivial change to nvptx, but lets me remove a load of special cases for amdgcn + + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * Ye Luo (ANL) + * Jon Chesterfield (AMD) + * Andrey Churbanov (Intel) + * Jose M Monsalve Diaz (UD/ANL) + * Joel Denny (ORNL) + * Valentin Clement (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-11-04.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-11-04.md new file mode 100644 index 0000000..75a9585 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-11-04.md @@ -0,0 +1,51 @@ +### 2020, November 4 + +### Agenda + + * OpenMP 5.1 features + * Building deviceRTL with just-built clang? + + + * Is anyone making change in cmake to make this happen + * Joseph volunteered. + + + * Failing mapping + + + * Could be a local build problem. Joseph will try to rebuild and test again + * https://bugs.llvm.org/show_bug.cgi?id=48076 + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=47595](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D47595&sa=D&source=editors&ust=1778600246586329&usg=AOvVaw2nWD3f1BddJ4Pd_OY9Dii7) status? <\- no progress, afaik, but I think we need to fix this + + + * Rough consensus to add teardown function to the plugins, and call that instead of relying on a global dtor + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Jon Chesterfield (AMD) + * Valentin Clement (ORNL) + * Ravi Narayanaswamy(Intel) + * Andrey Churbanov (Intel) + * Joseph Huber (ORNL) + * George Rokos (Intel) + * Jose M Monsalve Diaz (UD/ANL) + * Kelvin Li (IBM) + * Johannes Doerfert (ANL) + * Joel Denny (ORNL) + * Lukas Sommer (TU Darmstadt) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-11-11.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-11-11.md new file mode 100644 index 0000000..f953aa3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-11-11.md @@ -0,0 +1,30 @@ +### 2020, November 11 + +### Agenda + + * get_num_devices/get_device_num on gpu + + + * ON GPU. returns zero which is wrong.? + * Get_num_devices should be undefined behavior + + + * libomptarget image registration order + * firstprivate(pointer) + * OpenMP 5.1 features + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * George Rokos (Intel) + * Jon Chesterfield (AMD) + * Joseph Huber (ORNL) + * Johannes Doerfert (ANL) + * Andrey Churbanov (Intel) + * Shilei Tian (SBU) + * Valentin Clement (ORNL) + * Joel Denny (ORNL) + * Jose M Monsalve Diaz (ANL/UD) + * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-11-18.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-11-18.md new file mode 100644 index 0000000..4339917 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-11-18.md @@ -0,0 +1,36 @@ +### 2020, November 18 + +### Agenda + + * libomptarget image registration order + * get_num_devices/get_device_num on gpu + * OpenMP 5.1 features + * Remote OpenMP + * Fat archive library + * Flatten recursive mapper calls? + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Joseph Huber (ORNL) + * Saiyedul Islam (AMD) + * Ravi Narayanaswamy (Intel) + * Valentin Clement (ORNL) + * Johannes Doerfert, Ye Luo (ANL) + * Andrey Churbanov (Intel) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-12-02.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-12-02.md new file mode 100644 index 0000000..0afa990 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-12-02.md @@ -0,0 +1,51 @@ +### 2020, December 02 + +### Agenda + + * libomptarget image registration order + + + * Manoel will look into this further, propose a patch + + + * get_num_devices/get_device_num on gpu + * Fat archive library + + + * Link only needed routines. + * Split into 4 patches + + + 1. [Landed] [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246582391&usg=AOvVaw2KgDNrJCmdFyLMQPyX8R5s): llvm-link: Add support for archive files as inputs + 2. [Under review] [https://reviews.llvm.org/D80816](https://www.google.com/url?q=https://reviews.llvm.org/D80816&sa=D&source=editors&ust=1778600246582554&usg=AOvVaw3Bm7AXNrfNxWVJTnVyXqYk): [OpenMP] Add unbundling of archives containing bundled object files into device specific archives (modifications to clang-offload-bundler tool) + 3. [Yet to publish on phab] Clang's mlink-builtin-bitcode - CGCodeGenAction.cpp + 4. [Yet to publish on phab] Modify toolchain to extract archive + + + * Concurrent map(to:) - accepting overlapping regions vs copying simultaneously (also D86119) + * Embedded image versioning in Fat binary + * + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Johannes Doerfert (ANL) + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * Raghu Maddhipatla(AMD) + * Andrey Churbanov (Intel) + * Saiyedul Islam (AMD) + * Kelvin Li (IBM) + * Jose M Monsalve Diaz (ANL/UD)\ + * Valentin Clement (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-12-09.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-12-09.md new file mode 100644 index 0000000..cdae1c5 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-12-09.md @@ -0,0 +1,44 @@ +### 2020, December 09 + +### Agenda + + * Link only needed + + + * [https://reviews.llvm.org/D92535](https://www.google.com/url?q=https://reviews.llvm.org/D92535&sa=D&source=editors&ust=1778600246580770&usg=AOvVaw11ZxDhz0hBsOuwVCtIOAq3) + + + * Porting deviceRTL to openmp + + + * [https://docs.google.com/document/d/1wPgIazwPvD9fyOq9rY2Nkaoq9u7wUQMpQJpw6esb9A0/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1wPgIazwPvD9fyOq9rY2Nkaoq9u7wUQMpQJpw6esb9A0/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246581000&usg=AOvVaw36sw1zxFppT-qBy8nwdBOR) + + + * Progress of the metadirective patch [https://reviews.llvm.org/D91944 ](https://www.google.com/url?q=https://reviews.llvm.org/D91944&sa=D&source=editors&ust=1778600246581132&usg=AOvVaw2nFp-l476IHLTqYvL-MjUY) + * [https://reviews.llvm.org/D92197](https://www.google.com/url?q=https://reviews.llvm.org/D92197&sa=D&source=editors&ust=1778600246581229&usg=AOvVaw3KXbcRUHESSIWyrEELScEt) + + + +### Open Bugs + + * Can't compile NVPTX when using -fsave-optimization-record [https://bugs.llvm.org/show_bug.cgi?id=48153](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D48153&sa=D&source=editors&ust=1778600246581428&usg=AOvVaw1eiCuI1d9YVJzYhJtsrnOi) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * George Rokos (Intel) + + + * Joseph Huber (ORNL) + * Jose M Monsalve Diaz (ANL/UDEL) + * Saiyedul Islam, Raghu Maddhipatla (AMD) + * Kelvin Li (IBM) + * Joel Denny (ORNL) + * Valentin Clement (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2020-12-16.md b/openmp-wg/meeting-minutes/openmp-minutes-2020-12-16.md new file mode 100644 index 0000000..8251f3c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2020-12-16.md @@ -0,0 +1,34 @@ +### 2020, December 16 + +### Agenda + + * OmpD support (Jini (AMD)) + + + +[https://docs.google.com/document/d/1OeibmJ41dndC7xqVFNHwfLJx3hM5uFErBrsmp2nrV2w/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1OeibmJ41dndC7xqVFNHwfLJx3hM5uFErBrsmp2nrV2w/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246579962&usg=AOvVaw3g1D8YvxXVwwG2BS_P72g8) + + * deviceRTL in openmp - works for amdgpu D93135 + * Enable_runtimes should work, need to test it + * + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Andrey Churbanov (Intel) + * Johannes Doerfert (ANL) + * + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-01-06.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-01-06.md new file mode 100644 index 0000000..15d754b --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-01-06.md @@ -0,0 +1,41 @@ +### 2021, January 6 + +### Agenda + + * OpenMP doxygen documentation is live: [http://openmp.llvm.org/doxygen/](https://www.google.com/url?q=http://openmp.llvm.org/doxygen/&sa=D&source=editors&ust=1778600246578336&usg=AOvVaw2v26HzX6rLraALxFyqYLok) + + + * Please include/add doxygen comments in every patch, especially wrt. User facing functions. Adding it for internals, members, etc. is also really useful. + + + * Volunteer sought to remove the nvcc devicertl build, so that we can do stuff like port to openmp. Probably related to building devicertl with the just built clang. + * OpenMP offloading clang driver, without cuda + * Name of outlined functions - do we have to embed a line number? + * Readonly ident_t written in ITT mode (PR48644) + * Remove is_initial_device builtin + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Joseph Huber (ORNL) + * George Rokos (Intel) + * Andrey Churbanov (Intel) + * Valentin Clement (ORNL) + * Saiyedul Islam (AMD) + * Johannes Doerfert (ANL) + * Raghu Maddhipatla (AMD) + * * * * * + + +# diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-01-13.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-01-13.md new file mode 100644 index 0000000..c6d18f8 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-01-13.md @@ -0,0 +1,47 @@ +### 2021, January 13 + +### Agenda + + * Status of async offloading + * Appending line numbers into symbol names + * Patches in flight to drop nvcc built static library and change to openmp (D94573, D93135) + * Steps towards building the device runtime with clang only (e.g. ENABLE_RUNTIMES) + * Steps towards offloading capabilities in release LLVM builds (on Ubuntu, …) + + + * Build runtime libraries on machine without cuda, hsa installed + * Libm requires vendor library, but doesn't strictly 'need' vendor headers + + + * CUDA/HSA/… definitions can come in late, that is during user code compilation, device runtime can stop with (wrapper) declarations + + + * Single interface for parallel regions on device & host + * TRegion init/deinit + state machine will be revived, helped by OpenMP opt state machine customization + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert (ANL) + * George Rokos (Intel) + * Jon Chesterfield (AMD) + * Joseph Huber (ORNL) + * Roger Ferrer Ibañez (Barcelona Supercomputing Center) + * Saiyedul Islam (AMD) + * Andrey Churbanov (Intel) + * Kelvin Li (IBM) + * Raghu Maddhipatla (AMD) + * Joel Denny (ORNL) + * Valentin Clement (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-01-20.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-01-20.md new file mode 100644 index 0000000..97baa1c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-01-20.md @@ -0,0 +1,50 @@ +### 2021, January 20 + +### Agenda + + * Static library linking [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246574557&usg=AOvVaw3x6-q-jeppLUYpitTPXJWH) + * Memory management feature (i.e. meaning and implementation of various memory space and various allocators) + + + * (Oscar) I'm interested in discussing how the OpenMP memory management API is implemented in LLVM. For example, how memory spaces, allocator traits, etc are implemented on the different platforms (e.g. CPUs (e.g. pinned memory), etc). The idea is to use LLVM as a reference implementations to other compilers.. + + + * Unique symbol name (see also PR48759) + * Adding names to mapper API [https://reviews.llvm.org/D94806](https://www.google.com/url?q=https://reviews.llvm.org/D94806&sa=D&source=editors&ust=1778600246575127&usg=AOvVaw0TDzE3sStzr3rpHB98vsDu) [https://docs.google.com/document/d/1v4vvEMXzEEipWqOUJVFzzepbccqJMujCdeKQ-Ifowlg](https://www.google.com/url?q=https://docs.google.com/document/d/1v4vvEMXzEEipWqOUJVFzzepbccqJMujCdeKQ-Ifowlg&sa=D&source=editors&ust=1778600246575262&usg=AOvVaw2jOOvJAeQPkKMgc_qzLLS6) + * Using the OpenMPIRBuilder for loops ([https://reviews.llvm.org/D94973](https://www.google.com/url?q=https://reviews.llvm.org/D94973&sa=D&source=editors&ust=1778600246575397&usg=AOvVaw0aydfksrNeuT14DDliDwy9)) + * AST-based tiling ([https://reviews.llvm.org/D76342](https://www.google.com/url?q=https://reviews.llvm.org/D76342&sa=D&source=editors&ust=1778600246575508&usg=AOvVaw12cDwYAo_qg1ASKIcd-FZE)) + * TRegion interface + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=48759](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D48759&sa=D&source=editors&ust=1778600246575690&usg=AOvVaw0EhdKsYsMteiVgONbOKZ9B) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * Johannes Doerfert (ANL) + * Saiyedul Islam (AMD) + * Andrey Churbanov (Intel) + * Jon (AMD) + * Shilei Tian (SBU) + * Kelvin Li (IBM) + * Raghu Maddhipatla(AMD) + * Pushpinder Singh (AMD) + * Valentin Clement (ORNL) + * Natalia Glagoleva (Microsoft) + * Joel Denny (ORNL) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-01-27.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-01-27.md new file mode 100644 index 0000000..d8c1d11 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-01-27.md @@ -0,0 +1,42 @@ +### 2021, January 27 + +### Agenda + + * OpenMP in LLVM 12 release (and distros) + + + * An OpenMP A CUDA free device runtime + * Building the NVPTX plugin w/o CUDA + + + * Device Memory support + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * Andrey Churbanov (Intel) + * George Rokos (Intel) + * Ethan Stewart (AMD) + * Saiyedul Islam (AMD) + * Raghu Maddhipatla(AMD) + * Rich Bleikamp (AMD) + * Catherine Moore (Siemens/Mentor) + * Shilei Tian (SBU) + * Joel Denny (ORNL) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-02-10.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-02-10.md new file mode 100644 index 0000000..d495aa9 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-02-10.md @@ -0,0 +1,46 @@ +### 2021, February 10 + +### Agenda + + * LLVM 12 - remaining bugs/problems? + * Memory trait support (Deepak) + * Event browser link is broken + * Metadata for embedded target code: [https://reviews.llvm.org/D95483](https://www.google.com/url?q=https://reviews.llvm.org/D95483&sa=D&source=editors&ust=1778600246572148&usg=AOvVaw08eTIymagwPT3ICwimDC32) + * Clang-format all files in OpenMP ([https://reviews.llvm.org/D95318](https://www.google.com/url?q=https://reviews.llvm.org/D95318&sa=D&source=editors&ust=1778600246572285&usg=AOvVaw1aXb9Txm7BsJXMz7bvv7mI)) + * Target is implemented as target teams + + + * https://bugs.llvm.org/show_bug.cgi?id=47039 + + + * Clang codegen for SPMD vs Generic + * API/ABI stability (or lack thereof) in libomp, libomptarget between llvm releases + * Libomptarget async rules + * C++ in libomp.so + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * George Rokos (Intel) + * Valentin Clement (ORNL) + * Catherine Moore (Siemens/Mentor) + * Raghu Maddhipatla(AMD) + * Saiyedul Islam (AMD) + * Andrey Churbanov (Intel) + * Natalia Glagoleva (Microsoft) + * Oscar Hernandez (ORNL) + * Kelvin Li (IBM) + * Joel Denny (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-02-17.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-02-17.md new file mode 100644 index 0000000..97f006c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-02-17.md @@ -0,0 +1,70 @@ +### 2021, February 17 + +### Agenda + + * Omp_is_initial_device + + + +# if defined(_OPENMP) && defined(__clang__) && __clang_major__ > 11 && !defined(__APPLE__) + + #pragma omp begin declare variant match(device={kind(host)}) + + static inline int omp_is_initial_device(void) { return 1; } + + #pragma omp end declare variant + + #pragma omp begin declare variant match(device={kind(nohost)}) + + static inline int omp_is_initial_device(void) { return 0; } + + #pragma omp end declare variant + +# endif + + * Follow up on Metadata for embedded target code: [https://reviews.llvm.org/D95483](https://www.google.com/url?q=https://reviews.llvm.org/D95483&sa=D&source=editors&ust=1778600246570359&usg=AOvVaw2nIcdH1ui6lAIxaKAYEa6r) + * Clang-format all files in OpenMP ([https://reviews.llvm.org/D95318](https://www.google.com/url?q=https://reviews.llvm.org/D95318&sa=D&source=editors&ust=1778600246570497&usg=AOvVaw1nQBZ_MRLAV32xv9eUwhq-)) + * Target is implemented as target teams + + + * https://bugs.llvm.org/show_bug.cgi?id=47039 + + + * Clang codegen for SPMD vs Generic + + + * https://bugs.llvm.org/show_bug.cgi?id=48851 + * Clang test autoupdate2 + + + * API/ABI stability (or lack thereof) in libomp, libomptarget between llvm releases + * Libomptarget async rules + * What to do for unknown cuda versions wrt the devicertl, currently errors + * Build amdgcn runtime libs by default (add missing add_subdirectory(...) lines) + * + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Ravi Narayanaswamy (Intel) + * Andrey Churbanov (Intel) + * Joseph Huber (ORNL) + * Raghu Maddhipatla, Ron Lieberman, Saiyedul Islam, Ethan Stewart(AMD) + * Oscar Hernandez (ORNL) + * Johannes Doerfert (ANL) + * Joel Denny (ORNL) + + + +# diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-02-24.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-02-24.md new file mode 100644 index 0000000..89953ba --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-02-24.md @@ -0,0 +1,63 @@ +### 2021, February 24 + +### Agenda + + * Device memory allocators + + + * [https://reviews.llvm.org/D96669](https://www.google.com/url?q=https://reviews.llvm.org/D96669&sa=D&source=editors&ust=1778600246567703&usg=AOvVaw3KeupcmEInl8IYeEyhpQMk) + * Change preomp_ to llvm_omp_ + * Ticket has been opened for OpenMP to provide a reserved name + + + * [https://github.com/OpenMP/spec/issues/2689](https://www.google.com/url?q=https://github.com/OpenMP/spec/issues/2689&sa=D&source=editors&ust=1778600246567932&usg=AOvVaw2f0ZzEhfumOC_aCvuwv4ik) + * + + * A naming convention for OpenMP extensions to implement TR features [Oscar] + + + * We need to agree on potential namespaces: Add suggestions below + + + * omp_ext_ + * ompx + * We want to avoid llvm or gnu specific keywords + * Llvm_omp + + + * Deprecation of enum entries: [https://github.com/llvm/llvm-project/blob/main/openmp/runtime/src/include/omp-tools.h.var#L208](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/openmp/runtime/src/include/omp-tools.h.var%23L208&sa=D&source=editors&ust=1778600246568465&usg=AOvVaw1VoNFhzni5oNM8LbOQLpYG) + + + * Change runtime libraries to LLVM NamingStyle? + * 3 patches short of running update_cc_checks on the OpenMP clang tests + * [https://reviews.llvm.org/D96769](https://www.google.com/url?q=https://reviews.llvm.org/D96769&sa=D&source=editors&ust=1778600246568700&usg=AOvVaw1nHJwB0blPdhYt_KSpzEz-) \- Skip backend and assemble phases for AMDGCN + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert (ANL) + * Oscar Hernandez (ORNL) + * George Rokos (Intel) + * Andrey Churbanov (Intel) + * Ron Lieberman, Saiyedul Islam, Sourabh, Ethan Stewart, Raghu Maddhipatla, Dhruva, Pushpinder (AMD) + * Valentin Clement (ORNL) + * Catherine Moore (Siemens) + * Kelvin Li (IBM) + * Joel Denny (ORNL) + * Simon Garcia de Gonzalo (BSC) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-03-03.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-03.md new file mode 100644 index 0000000..d1f37f2 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-03.md @@ -0,0 +1,50 @@ +### 2021, March 3rd + +### Agenda + + * Interop construct + * Requires unified_shared_memory + * Embedding info in fat binary using elf format + * Omp_get_num_devices + + + * Without target region: returns number of devices, when compiling with -fopenmp-targets=nvptx64-nvidia-cuda + * [https://reviews.llvm.org/D97616](https://www.google.com/url?q=https://reviews.llvm.org/D97616&sa=D&source=editors&ust=1778600246566267&usg=AOvVaw3q0fT8wlkhyXisjXyU3GN6) + + + * Simplifying and optimizing GPU globalization code + + + * [https://reviews.llvm.org/D97680](https://www.google.com/url?q=https://reviews.llvm.org/D97680&sa=D&source=editors&ust=1778600246566426&usg=AOvVaw2DsRRn1XS7YOWl5wDFW3GD) + * [https://reviews.llvm.org/D97818](https://www.google.com/url?q=https://reviews.llvm.org/D97818&sa=D&source=editors&ust=1778600246566520&usg=AOvVaw0RmT5G1BLOW_fnluye9TyA) + + + * Constant struct firstprivate arguments creating static constant memory in the device + + + * [https://godbolt.org/z/vMaaxj](https://www.google.com/url?q=https://godbolt.org/z/vMaaxj&sa=D&source=editors&ust=1778600246566691&usg=AOvVaw0Gcc3aYMjRqpcxdW-dtGmt) + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49334](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49334&sa=D&source=editors&ust=1778600246566840&usg=AOvVaw083EOIpsNSVcZAGIp51I9g) (12 blocking) + * [https://bugs.llvm.org/show_bug.cgi?id=49339](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49339&sa=D&source=editors&ust=1778600246566963&usg=AOvVaw3aWgKkApJZ29Ik7AvM_uK-) (12 blocking) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Joseph Huber (ORNL) + * Ravi Narayanaswamy (Intel) + * Andrey Churbanov (Intel) + * Johannes Doerfert (ANL) + * Saiyedul Islam, Ron Lieberman, Ethan Stewart, Raghu (AMD) + * Joel Denny (ORNL) + * Simon Garcia de Gonzalo (BSC) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-03-10.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-10.md new file mode 100644 index 0000000..437356d --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-10.md @@ -0,0 +1,43 @@ +### 2021, March 10th + +### Agenda + + * Embedding info in fat binary using elf format + * Backward compatibility breaking in libomptarget (see Deepak's mail: [https://lists.llvm.org/pipermail/openmp-dev/2021-March/003926.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/openmp-dev/2021-March/003926.html&sa=D&source=editors&ust=1778600246564578&usg=AOvVaw2t7_5voZH3TagZNzJqd1Dh)) + * Simplifying and optimizing GPU globalization code + + + * [https://reviews.llvm.org/D97680](https://www.google.com/url?q=https://reviews.llvm.org/D97680&sa=D&source=editors&ust=1778600246564746&usg=AOvVaw21Mn5t17Bp1o1g1vYxMzKY) + * [https://reviews.llvm.org/D97818](https://www.google.com/url?q=https://reviews.llvm.org/D97818&sa=D&source=editors&ust=1778600246564836&usg=AOvVaw1y8PH6GRKwZESILW9lRJoI) + + + * Update_test_check_cc.py for all clang tests + * Libomp libomptarget C++ standards? As LLVM default. + * [https://reviews.llvm.org/D98349](https://www.google.com/url?q=https://reviews.llvm.org/D98349&sa=D&source=editors&ust=1778600246565043&usg=AOvVaw1ZAt094mZBZOmivzRdS_y6) + * + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49334](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49334&sa=D&source=editors&ust=1778600246565215&usg=AOvVaw0vnGcWsWBXSWzYlhzYPzDE) (merged, fixed) + * [https://bugs.llvm.org/show_bug.cgi?id=49339](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49339&sa=D&source=editors&ust=1778600246565341&usg=AOvVaw0WtDX0NqGe-tAhRnU6SxLH) (merged, fixed? Can someone test with clang-cl?) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * George Rokos (Intel) + * Andrey Churbanov (Intel) + * Saiyedul Islam (AMD) + * Joel Denny (ORNL) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-03-17.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-17.md new file mode 100644 index 0000000..1808f19 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-17.md @@ -0,0 +1,32 @@ +### 2021, March 17th + +### Agenda + + * Embedding info in fat binary using elf format + * Function pointer and Virtual Functions + * Helper threads? + * Device runtime rewrite + * Optional - amdgpu status update + + + +### Open Bugs + + * + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Joseph Huber (ONRL) + * Ravi Narayanaswamy (Intel) + * Jon Chesterfield (AMD) + * Johannes Doerfert (ANL) + * Valentin Clement (ORNL) + * Saiyedul Islam (AMD) + * Joel Denny (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-03-24.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-24.md new file mode 100644 index 0000000..e9110b3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-24.md @@ -0,0 +1,31 @@ +### 2021, March 24th + +### Agenda + + * Embedding info in fat binary using elf format + * Function pointer and Virtual Functions + * Helper threads? + * OpenMP $ref [https://bugs.llvm.org/show_bug.cgi?id=49649](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49649&sa=D&source=editors&ust=1778600246562609&usg=AOvVaw1D2ariZU_TltZvrJTz-fdM) + + + +### Open Bugs + + * [49468](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49468&sa=D&source=editors&ust=1778600246562732&usg=AOvVaw2tDcvF7zez_dMnJ6pDithB) [49636](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49636&sa=D&source=editors&ust=1778600246562783&usg=AOvVaw2OFbXfLkwT6hKsy_sLEPx_) [49649](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49649&sa=D&source=editors&ust=1778600246562833&usg=AOvVaw27CTNgzIY45OEHmXDVAWUe) [49650](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49650&sa=D&source=editors&ust=1778600246562884&usg=AOvVaw00S3SYq3r0DRZn4z0LYzNO) [49651](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49651&sa=D&source=editors&ust=1778600246562933&usg=AOvVaw31uZUsk9u2m4o1DksbQoZb) [49579](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49579&sa=D&source=editors&ust=1778600246562982&usg=AOvVaw3JnXUHLsRmghaN-N1ppTBQ) [48571](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D48571&sa=D&source=editors&ust=1778600246563031&usg=AOvVaw1Nbd-8LzVuRQWXYCyG9ehx) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert (ANL) + * Saiyedul Islam (AMD) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-03-31.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-31.md new file mode 100644 index 0000000..34b5d92 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-03-31.md @@ -0,0 +1,45 @@ +### 2021, March 31th + +### Agenda + + * Upstreaming OMPD? + + + * [https://github.com/OpenMPToolsInterface/llvm-project/tree/ompd-tests](https://www.google.com/url?q=https://github.com/OpenMPToolsInterface/llvm-project/tree/ompd-tests&sa=D&source=editors&ust=1778600246561056&usg=AOvVaw0-3OjSZq6V5gzOGLHlOZcw) + + + * Embedding info in fat binary using elf format + * Const firsprivate variables being pushed to constant memory not being used? + + + * [https://godbolt.org/z/GGsWx6MP5](https://www.google.com/url?q=https://godbolt.org/z/GGsWx6MP5&sa=D&source=editors&ust=1778600246561310&usg=AOvVaw3Xx1gN3G-3L-W71rUDArbz) + + + * Vtable layout + * Heads up: Globalization will change soon: [https://reviews.llvm.org/D97680](https://www.google.com/url?q=https://reviews.llvm.org/D97680&sa=D&source=editors&ust=1778600246561469&usg=AOvVaw2ydYTaEDzBNmTrTzBonpR5) ! + * Globalization in SPMD-mode [https://godbolt.org/z/b7axxzxEf](https://www.google.com/url?q=https://godbolt.org/z/b7axxzxEf&sa=D&source=editors&ust=1778600246561585&usg=AOvVaw2egjfAGv6zHZtHBCQFToj3) + + + +### Open Bugs + + * Unfortunate bug: [49777](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49777&sa=D&source=editors&ust=1778600246561722&usg=AOvVaw0U2mQ1Z9TXXhri07M6aPg4) + * Segfault which we failed to debug properly so far: [49698](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49698&sa=D&source=editors&ust=1778600246561836&usg=AOvVaw3obPVi0nWZd-Jo6QDG-8TF) + + + +### Patches to look at + +### Participants (voluntary/incomplete listing) + + * Jon Chesterfield (AMD) + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert (ANL) + * Joseph Huber (ORNL) + * Saiyedul Islam (AMD) + * George Rokos (Intel) + * Joel Denny (ORNL) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-04-07.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-04-07.md new file mode 100644 index 0000000..11aa66f --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-04-07.md @@ -0,0 +1,40 @@ +### 2021,April 7th + +### Agenda + + * is_initial _device update + * Upstreaming OMPD? + + + * [https://github.com/OpenMPToolsInterface/llvm-project/tree/ompd-tests](https://www.google.com/url?q=https://github.com/OpenMPToolsInterface/llvm-project/tree/ompd-tests&sa=D&source=editors&ust=1778600246559694&usg=AOvVaw22M7pfWOVmyx9um8xyllCp) + + + * Embedding info in fat binary using elf format (https://reviews.llvm.org/D99553) + * Virtual Function support + * What happens to [https://reviews.llvm.org/D91944](https://www.google.com/url?q=https://reviews.llvm.org/D91944&sa=D&source=editors&ust=1778600246559978&usg=AOvVaw3ODTxOf9LO1KAytOm-axab)? + * OpenMP unified device runtime + * Helper thread degradation. + * Offload table ordering + * Depending on llvm libraries (not just the headers) + + + +### Open Bugs + + * Unfortunate bug: [49777](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49777&sa=D&source=editors&ust=1778600246560306&usg=AOvVaw1HPZ7k3B8kNL9bSPbBAtng) + * Segfault which we failed to debug properly so far: [49698](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49698&sa=D&source=editors&ust=1778600246560430&usg=AOvVaw01VvJfyZEGxCwxvQkrp2H0) + + + +### Patches to look at + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * George Rokos (Intel) + * Johannes Doerfert (ANL) + * Jon Chesterfield (AMD) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-04-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-04-14.md new file mode 100644 index 0000000..a9cc10a --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-04-14.md @@ -0,0 +1,40 @@ +### 2021, April 14th + +### Agenda + + * OMPT + + + * [https://reviews.llvm.org/D99803](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246558369&usg=AOvVaw2VLsjuMZ2iDiQDYYPfFWpK) + * [https://docs.google.com/presentation/d/1nsQHx_AL187efv3cW_eaPz0cU-hmNRMnEYPF3buoQss/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/presentation/d/1nsQHx_AL187efv3cW_eaPz0cU-hmNRMnEYPF3buoQss/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246558555&usg=AOvVaw2B2scISiGsMgn14mWV7qSl) + + + * Virtual Function support + * Helper thread degradation. + * Offload table ordering + * Depending on llvm libraries (not just the headers) + + + +### Open Bugs + + * Unfortunate bug: [49777](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49777&sa=D&source=editors&ust=1778600246558875&usg=AOvVaw2lWQeG7WwuXqe7FWB_SDzY) + * Segfault which we failed to debug properly so far: [49698](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49698&sa=D&source=editors&ust=1778600246558995&usg=AOvVaw2_MAY3yv2vp294poAWqNHs) + + + +### Patches to look at + + * OMPD: [https://reviews.llvm.org/D100181](https://www.google.com/url?q=https://reviews.llvm.org/D100181&sa=D&source=editors&ust=1778600246559152&usg=AOvVaw3gyvvYyannUrDQJ7Fnki6k) and followups + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Jon Chesterfield (AMD) + * George Rokos (Intel) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-04-21.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-04-21.md new file mode 100644 index 0000000..948c98d --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-04-21.md @@ -0,0 +1,38 @@ +### 2021, April 21th + +### Agenda + + * Offload table ordering + * Helper thread degradation. + * Supporting present/iterator and release/delete in declare mapper map + * Depending on llvm libraries (not just the headers) + * Static library (gpu newsletter referenced an email question about putting omp objects in one, though I can't find said question) + * Getting the OpenMP offloading buildbot green (Michael) + + + * Permanently failing Tests (3) with x86_64 offloading: + * libomptarget :: offloading/bug49334.cpp + * libomptarget :: offloading/memory_manager.cpp + * libomptarget :: offloading/parallel_offloading_map.cpp + + + +### Open Bugs + + * Unfortunate bug: [49777](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49777&sa=D&source=editors&ust=1778600246557614&usg=AOvVaw31akeI1nQYUCOb_NMOrlV9) + * Segfault which we failed to debug properly so far: [49698](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49698&sa=D&source=editors&ust=1778600246557743&usg=AOvVaw2511_KR-INyfC9ittrvRWa) + + + +### Patches to look at + + * OMPD: [https://reviews.llvm.org/D100181](https://www.google.com/url?q=https://reviews.llvm.org/D100181&sa=D&source=editors&ust=1778600246557895&usg=AOvVaw3IOJjH7yy0qUgO7gJtW1zI) and followups + + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Jon Chesterfield (AMD) + * Joseph Huber (ORNL) + * Ravi Narayanaswamy (Intel) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-04-28.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-04-28.md new file mode 100644 index 0000000..0389837 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-04-28.md @@ -0,0 +1,44 @@ +### 2021, April 28th + +### Agenda + + * Offload table ordering + * Helper thread degradation. + * [https://reviews.llvm.org/D101173](https://www.google.com/url?q=https://reviews.llvm.org/D101173&sa=D&source=editors&ust=1778600246555204&usg=AOvVaw28NDnOj276N8nSLvDY1cAb) + * Depending on llvm libraries (not just the headers) (libomptarget only) + * Getting the OpenMP offloading buildbot green (Michael) + + + * http://meinersbur.de:8011/#/builders/142 + * http://meinersbur.de:8011/#/builders/143 + * Permanently failing Tests (3) with x86_64 offloading: + * libomptarget :: offloading/bug49334.cpp + * libomptarget :: offloading/memory_manager.cpp + * libomptarget :: offloading/parallel_offloading_map.cpp + * https://reviews.llvm.org/D101265 (Use in-project clang as CUDA->IR compiler) + + + * Virtual functions: vtable is generated for a constructor definition, and its initializer references all virtual functions that are declared within the class; does it mean that all virtual functions' definitions must be marked "declare target"? Otherwise, if a device side vtable is ever created, some references may be unresolved. + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=48851](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D48851&sa=D&source=editors&ust=1778600246556244&usg=AOvVaw3O2HZSh6iejBtTMuZVl_3N) (refresher) + + + +### Patches to look at + + * OMPD: [https://reviews.llvm.org/D100181](https://www.google.com/url?q=https://reviews.llvm.org/D100181&sa=D&source=editors&ust=1778600246556413&usg=AOvVaw1xXoNPHc3jAd1R7z9a2D5C) and followups + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert (ANL) + * George Rokos (Intel) + * Joseph Huber (ORNL) + * Valentin Clement (ORNL) + * Andrey Churbanov (Intel) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-05-05.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-05-05.md new file mode 100644 index 0000000..63f8eca --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-05-05.md @@ -0,0 +1,36 @@ +### 2021, May 5th + +### Agenda + + * Interop object extension with implementation-defined info + * Helper thread degradation. + * [https://reviews.llvm.org/D101173](https://www.google.com/url?q=https://reviews.llvm.org/D101173&sa=D&source=editors&ust=1778600246553676&usg=AOvVaw0a5oh6fm54ZkARBgNPqD0x) + * Virtual functions: vtable is generated for a constructor definition, and its initializer references all virtual functions that are declared within the class; does it mean that all virtual functions' definitions must be marked "declare target"? Otherwise, if a device side vtable is ever created, some references may be unresolved. + * (Greg) Enhanced multi-image support . Requirements/Capabilities model + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=48851](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D48851&sa=D&source=editors&ust=1778600246554238&usg=AOvVaw1PCitvk_6fTwoH-TbTFfJ_) (refresher) + + + +### Patches to look at + + * OMPD: [https://reviews.llvm.org/D100181](https://www.google.com/url?q=https://reviews.llvm.org/D100181&sa=D&source=editors&ust=1778600246554409&usg=AOvVaw0w3QXqltomouhffD_eQ11N) and followups + + + +### Participants (voluntary/incomplete listing) + + * Johannes Doerfert, Ye Luo (ANL) + * Ravi Narayanaswamy (Intel) + * Jon Chesterfield (AMD) + * George Rokos (Intel) + * Natalia Glagoleva (Microsoft) + * Chris Pulido (Microsoft) + * Andrey Churbanov (Intel) + * Carlo Bertolli (AMD) + * Joel Denny (ORNL) + * Saiyedul Islam (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-05-12.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-05-12.md new file mode 100644 index 0000000..f7ec79c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-05-12.md @@ -0,0 +1,36 @@ +### 2021, May 12th + +### Agenda + + * (Greg) Enhanced multi-image support . Requirements/Capabilities model + * Interop object extension with implementation-defined info + + + * Deepak to bring it up in OpenMP Accel Committee + + + * Helper thread degradation. + * Static device archives with device code: https://reviews.llvm.org/D93525 + * Virtual functions: vtable is generated for a constructor definition, and its initializer references all virtual functions that are declared within the class; does it mean that all virtual functions' definitions must be marked "declare target"? Otherwise, if a device side vtable is ever created, some references may be unresolved. + * + + +### Open Bugs + + * + + +### Patches to look at + + * OMPD: [https://reviews.llvm.org/D100181](https://www.google.com/url?q=https://reviews.llvm.org/D100181&sa=D&source=editors&ust=1778600246552938&usg=AOvVaw1u8IUNeeufA7DwHtyEhqve) and followups + * Custom state machine & SPMD detection [https://reviews.llvm.org/D101977](https://www.google.com/url?q=https://reviews.llvm.org/D101977&sa=D&source=editors&ust=1778600246553085&usg=AOvVaw11kYEpcKL5rrgQNeoftN6n) and stack + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * George Rokos (Intel) + * Jon Chesterfield (AMD) + * Johannes Doerfert (ANL) + * Saiyedul Islam (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-05-19.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-05-19.md new file mode 100644 index 0000000..4b6946e --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-05-19.md @@ -0,0 +1,43 @@ +### 2021, May 19th + +### Agenda + + * (Greg) Enhanced multi-image support . Requirements/Capabilities model + + + * Static device archives with device code: [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246550936&usg=AOvVaw0HH9H2C_j31lHgBa625cDd) + + + * Interop object extension with implementation-defined info + + + * Deepak to bring it up in OpenMP Accel Committee + + + * Proceed with the ELF notes changes based on LLVM ELF? + + + +### Open Bugs + + * + + +### Patches to look at + + * OMPD: [https://reviews.llvm.org/D100181](https://www.google.com/url?q=https://reviews.llvm.org/D100181&sa=D&source=editors&ust=1778600246551402&usg=AOvVaw25ku09a1wb4Xs31Xp8z9Z5) and followups + * Custom state machine & SPMD detection [https://reviews.llvm.org/D101977](https://www.google.com/url?q=https://reviews.llvm.org/D101977&sa=D&source=editors&ust=1778600246551551&usg=AOvVaw09nT2-4N_IXfBgX-UabObK) and stack + * Remove mandatory flush for capture in OpenMP 5.1 [https://reviews.llvm.org/D100768](https://www.google.com/url?q=https://reviews.llvm.org/D100768&sa=D&source=editors&ust=1778600246551695&usg=AOvVaw07e9BMxQDc6HDjRcIH1vYw) + + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * George Rokos (Intel) + * Saiyedul Islam (AMD) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-06-02.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-02.md new file mode 100644 index 0000000..01a2edd --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-02.md @@ -0,0 +1,34 @@ +### 2021, June 2nd + +### Agenda + + * Proceed with the ELF notes changes based on LLVM ELF + * Implementation defined OpenMP extensions ompx + + + * https://github.com/ompx + + + * Offloading buildbot https://lab.llvm.org/staging/#/workers/118 (Michael) + + + * For bug49334.cpp (http://llvm.org/PR49334) to make it failing steadily, reduce the size of the matrix (BS = 16; / N = 256;) + * https://lab.llvm.org/staging/#/builders/154/builds/175 (bug49334.cpp) + * https://lab.llvm.org/staging/#/builders/155/builds/263 (api/omp_get_wtime) + * https://lab.llvm.org/staging/#/builders/154/builds/194 (depend.cpp) + + + * Llvm-link archive support? + * OpenCL plugin? + * OMPT tooling interface + * VGPU + + + +### Participants (voluntary/incomplete listing) + + * Jon Chesterfield (AMD) + * Johannes Doerfert (ANL) + * Ravi Narayanaswamy (Intel) + * Carlo Bertolli (AMD) + * [John Mellor-Crummey](mailto:johnmc@cs.rice.edu)(Rice) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-06-09.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-09.md new file mode 100644 index 0000000..f7154cf --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-09.md @@ -0,0 +1,54 @@ +### 2021, June 9th + +### Agenda + + * Talk tomorrow: [https://www.openmp.org/events/webinar-a-compilers-view-of-the-openmp-api/](https://www.google.com/url?q=https://www.openmp.org/events/webinar-a-compilers-view-of-the-openmp-api/&sa=D&source=editors&ust=1778600246547388&usg=AOvVaw37wGhydaz0vAlPpgWziH-p) + * Proceed with the ELF notes changes based on LLVM ELF + * Offloading buildbot https://lab.llvm.org/staging/#/workers/118 (Michael) + + + * For bug49334.cpp (http://llvm.org/PR49334) to make it failing steadily, reduce the size of the matrix (BS = 16; / N = 256;) + + + * https://lab.llvm.org/staging/#/builders/155/builds/444 + * https://lab.llvm.org/staging/#/builders/154/builds/175 (bug49334.cpp) + + + * https://lab.llvm.org/staging/#/builders/155/builds/263 (api/omp_get_wtime) + * https://lab.llvm.org/staging/#/builders/154/builds/194, https://lab.llvm.org/staging/#/builders/154/builds/301 (depend.cpp) + * https://lab.llvm.org/staging/#/builders/155/builds/444 (gtid.cpp) + + + * Llvm-link archive support? [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246548251&usg=AOvVaw17cAewK9WZqHVjRalcjDv8) ? [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246548335&usg=AOvVaw0KZZm9FX7AOv5Pwji6BDBk) + * Finding static libraries with "-lstaticlib" option + * Scheduling OMPT topics + * Write a CMake module for OpenMP Offloading? + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=50642](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50642&sa=D&source=editors&ust=1778600246548669&usg=AOvVaw1A4oI0nHOvaZ5Z82jxehf5) + * [https://bugs.llvm.org/show_bug.cgi?id=50640](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50640&sa=D&source=editors&ust=1778600246548799&usg=AOvVaw2mkmTHsGgH7htmw1uvWytH) + * https://bugs.llvm.org/show_bug.cgi?id=50619 + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert (ANL)0 + * Carlo Bertolli (AMD) + * Jon Chesterfield (AMD) + * John Mellor-Crummey (Rice) + * Andrey Churbanov (Intel) + * Vladimir Indjic (University of Novi Sad) + * Joseph Huber (ORNL) + * Saiyedul Islam (AMD) + * George Rokos (Intel) + * Joel Denny (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-06-16.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-16.md new file mode 100644 index 0000000..fbcae1a --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-16.md @@ -0,0 +1,62 @@ +### 2021, June 16th + +### Agenda + + * Offloading buildbot https://lab.llvm.org/staging/#/workers/118 (Michael) + + + * https://llvm.org/PR50738 (Assertion failure with result verification) + * https://llvm.org/PR50739 (Race condition in bug49334.cpp) + + + * to make it failing steadily, reduce the size of the matrix (BS = 16; / N = 256;) + * https://lab.llvm.org/staging/#/builders/155/builds/444 + * https://lab.llvm.org/staging/#/builders/154/builds/175 (bug49334.cpp) + * Caused by race condition with asynchronous data movement. Will fix it by attaching an event to each data movement (host->device). + + + * https://lab.llvm.org/staging/#/builders/155/builds/263 (api/omp_get_wtime) + * https://llvm.org/PR50737 (Flaky segfault at test exit) + + + * depend.cpp and gtid.cpp should be similar. Both with exit code -11 after result is correctly printed. Will investigate it soon. + + + * Device specific archive library + + + * Llvm-link archive support? [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246546070&usg=AOvVaw0bpaGZ2eByjiUWvEBzntss) (merged) + * Unbundling of device specific archive from fat archive [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246546220&usg=AOvVaw30_pSVuFtcnd6FitlgHGu9) (under review) + + + * Implementation of serialized parallel regions in OpenMP vs. OMPT + * Globalization update + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=50640](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50640&sa=D&source=editors&ust=1778600246546490&usg=AOvVaw2T_czGMnucyLytDGSBJvNh) + * [https://bugs.llvm.org/show_bug.cgi?id=50619](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50619&sa=D&source=editors&ust=1778600246546600&usg=AOvVaw3r92Q67Xbg551XlXqoLnIK) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * John Mellor-Crummey (Rice) + * Vladimir Indjic (University of Novi Sad) + * Andrey Churbanov (Intel) + * Shilei Tian (SBU) + * Joseph Huber (ORNL) + * George Rokos (Intel) + * Saiyedul Islam (AMD) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-06-23.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-23.md new file mode 100644 index 0000000..aac731a --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-23.md @@ -0,0 +1,53 @@ +### 2021, June 23rd + +### Agenda + + * New globalization got merged :) + * Elf cleanup in libomptarget + * Async offload status + * Offloading buildbot https://lab.llvm.org/staging/#/workers/118 (Michael) + + + * https://llvm.org/PR50739 (Race condition in bug49334.cpp) + + + * [https://reviews.llvm.org/D104382](https://www.google.com/url?q=https://reviews.llvm.org/D104382&sa=D&source=editors&ust=1778600246543393&usg=AOvVaw0hVI76BGERixBm-RCWJ5YW) + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246543500&usg=AOvVaw3RkcpiUe9GQrxaA1BN-c2y) + * [https://reviews.llvm.org/D104555](https://www.google.com/url?q=https://reviews.llvm.org/D104555&sa=D&source=editors&ust=1778600246543590&usg=AOvVaw3QvKTpsQPz3zU42J6TrDIy) (potentially can also fix for host offloading) + + + * Device specific archive library + + + * Llvm-link archive support? [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246543789&usg=AOvVaw0lsRon04j34C9DNpuETpNJ) (merged) + * Unbundling of device specific archive from fat archive [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246543941&usg=AOvVaw01SJdIarI-STaiuSR_5IL8) (under review) + + + * Implementation of serialized parallel regions in OpenMP vs. OMPT + * CMake find module for offloading [https://reviews.llvm.org/D104710](https://www.google.com/url?q=https://reviews.llvm.org/D104710&sa=D&source=editors&ust=1778600246544163&usg=AOvVaw0Ply5cLKUaw2GskQMwzFRV) + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=50640](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50640&sa=D&source=editors&ust=1778600246544317&usg=AOvVaw0Kyka5IMP7srjL6L1PpTmb) + * [https://bugs.llvm.org/show_bug.cgi?id=50619](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50619&sa=D&source=editors&ust=1778600246544423&usg=AOvVaw266uuIH77_o2dg2RGIapUQ) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Vladimir Indjic (University of Novi Sad) + * Joseph Huber (ORNL) + * Jon Chesterfield (AMD) + * Johannes Doerfert (ANL) + * Andrey Churbanov (Intel) + * Raghu Maddhipatla(AMD) + * Saiyedul Islam (AMD) + * Joel Denny (ORNL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-06-30.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-30.md new file mode 100644 index 0000000..6eabf7f --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-06-30.md @@ -0,0 +1,52 @@ +### 2021, June 30th + +### Agenda + + * Ref count cleanup + * Elf cleanup in libomptarget + * Offloading buildbot https://lab.llvm.org/staging/#/workers/118 (Michael) + + + * https://llvm.org/PR50739 (Race condition in bug49334.cpp) + + + * [https://reviews.llvm.org/D104382](https://www.google.com/url?q=https://reviews.llvm.org/D104382&sa=D&source=editors&ust=1778600246541448&usg=AOvVaw3y4J6a0L8k_Co-EZLmVUph) + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246541548&usg=AOvVaw1vKpxytdS3aroc7VqMfLfR) + * [https://reviews.llvm.org/D104555](https://www.google.com/url?q=https://reviews.llvm.org/D104555&sa=D&source=editors&ust=1778600246541639&usg=AOvVaw1dTs62N1RgPw0ocj4N1Glg) (potentially can also fix for host offloading) + + + * Device event mechanism: https://reviews.llvm.org/D81989 + + + * Device specific archive library + + + * Llvm-link archive support? [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246541901&usg=AOvVaw3yJKkCOpNy1IcLj2HaHhPt) (merged) + * Unbundling of device specific archive from fat archive [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246542043&usg=AOvVaw2F3g0nBU1El9B0vwXxB4_q) (merged) + * [Clang][OpenMP] Add support for Static Device Libraries [https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246542197&usg=AOvVaw3MIGqidB3zwsvtCyAAhufr) (under review) + * Clang driver support + + + * Barrier patches + * Device runtime specialization + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=50640](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50640&sa=D&source=editors&ust=1778600246542475&usg=AOvVaw3-gRo6dQK9erQSgCrS5N3-) + * [https://bugs.llvm.org/show_bug.cgi?id=50619](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50619&sa=D&source=editors&ust=1778600246542577&usg=AOvVaw0PZEnrcYiHw7AeZoYPzAU6) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Ravi Narayanaswamy (Intel) + * Saiyedul Islam (AMD) + * Andrey Churbanov (Intel) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-07-07.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-07-07.md new file mode 100644 index 0000000..ea214c8 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-07-07.md @@ -0,0 +1,58 @@ +### 2021, July 7th + +### Agenda + + * Elf cleanup in libomptarget + * Offloading buildbot https://lab.llvm.org/staging/#/workers/118 + + + * https://llvm.org/PR50739 (Race condition in bug49334.cpp) + + + * [https://reviews.llvm.org/D104382](https://www.google.com/url?q=https://reviews.llvm.org/D104382&sa=D&source=editors&ust=1778600246539175&usg=AOvVaw2ZWU9Le-d1rVQHKsZh6-hV) (committed) + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246539341&usg=AOvVaw2kIsHDW6MvBD16MOTU6HVC) + * [https://reviews.llvm.org/D104555](https://www.google.com/url?q=https://reviews.llvm.org/D104555&sa=D&source=editors&ust=1778600246539429&usg=AOvVaw0bjdGFOVg13Bot2a5YERsP) (potentially can also fix for host offloading) + * https://bugs.llvm.org/show_bug.cgi?id=50737 (probably fixed by https://reviews.llvm.org/D105308) + + + * Device event mechanism: https://reviews.llvm.org/D81989 + + + * Device specific archive library + + + * Llvm-link archive support? [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246539822&usg=AOvVaw2IZgvXgWJhWHoJKF3aUQGq) (merged) + * Unbundling of device specific archive from fat archive [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246539977&usg=AOvVaw0k-Kxb0ofrH1AOWUQP0dFC) (merged) + * [Clang][OpenMP] Add support for Static Device Libraries [https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246540130&usg=AOvVaw3A5QsyOFEoMKKlIwJcTYA5) (under review) + * Clang driver support + + + * Device runtime specialization + * Removing TSan annotations from libomp ([https://reviews.llvm.org/D103767](https://www.google.com/url?q=https://reviews.llvm.org/D103767&sa=D&source=editors&ust=1778600246540351&usg=AOvVaw36ALt-5djC-77gXP5k5oIK)) + * New plugins + + + * Remote with UCX + * VGPU + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=50640](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50640&sa=D&source=editors&ust=1778600246540592&usg=AOvVaw1pxie39iP-YN12YYrzyKks) + * [https://bugs.llvm.org/show_bug.cgi?id=50619](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50619&sa=D&source=editors&ust=1778600246540700&usg=AOvVaw1DZKO8ja1Rlq3HZH5H-Il1) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Jon Chesterfield (AMD) + * George Rokos (Intel) + * Saiyedul Islam (AMD) + * Raghu Maddhipatla (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-07-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-07-14.md new file mode 100644 index 0000000..64a4256 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-07-14.md @@ -0,0 +1,70 @@ +### Ravi Narayanaswamy (Intel)2021, July 14th + +### Agenda + + * Elf cleanup in libomptarget + * Offloading buildbot https://lab.llvm.org/staging/#/workers/118 + + + * https://llvm.org/PR50739 (Race condition in bug49334.cpp) + + + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246536659&usg=AOvVaw2f2UrV1qEVmB0Mg0uMpE-O) + * [https://reviews.llvm.org/D104555](https://www.google.com/url?q=https://reviews.llvm.org/D104555&sa=D&source=editors&ust=1778600246536752&usg=AOvVaw0oqOIh8ODM4kQyHdgODEJa) (potentially can also fix for host offloading) + + + * Device event mechanism: https://reviews.llvm.org/D81989 (abandoned?) + * Regression: libomptarget :: nvptx64-nvidia-cuda::bug49021.cpp + + + * https://lab.llvm.org/staging/#/builders/155/builds/1673 + * https://lab.llvm.org/staging/#/builders/154/builds/1317 + * Caused by D101976 or D101977 + * Related bug report [https://bugs.llvm.org/show_bug.cgi?id=51065](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51065&sa=D&source=editors&ust=1778600246537273&usg=AOvVaw3_Th9U29bzvnLbuvEoNv90) + + + * ? https://lab.llvm.org/staging/#/builders/154/builds/1421 + + + * Device specific archive library + + + * Llvm-link archive support? [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246537516&usg=AOvVaw0LkPAe4umvf2iVmhMBTbSf) (merged) + * Unbundling of device specific archive from fat archive [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246537660&usg=AOvVaw2spAvh0N-LMWyv4NgzGFx7) (merged) + * [Clang][OpenMP] Add support for Static Device Libraries [https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246537816&usg=AOvVaw0ZCItSEo45z6xN3lAUmDcP) (under review) + * Clang driver support + + + * New plugins + + + * Remote with UCX + * VGPU + + + * Mapping issues for new code examples in the OpenMP Examples Document + + + * [https://bugs.llvm.org/show_bug.cgi?id=51088](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51088&sa=D&source=editors&ust=1778600246538159&usg=AOvVaw19xOYdGz1BYYj5vRdii7ow) + * [https://bugs.llvm.org/show_bug.cgi?id=51089](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51089&sa=D&source=editors&ust=1778600246538277&usg=AOvVaw1M6zp9c5zL1wb0ZifaoKFD) + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49787](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49787&sa=D&source=editors&ust=1778600246538427&usg=AOvVaw2dx4r-3CpX23WEZRthLFr-) compiler/runtime API mismatch for async mapping + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Jon Chesterfield (AMD) + * Ravi Narayanaswamy (Intel) + * Johannes Doerfert, Ye Luo (ANL) + * George Rokos (Intel) + * Saiyedul Islam (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-07-21.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-07-21.md new file mode 100644 index 0000000..59e84a5 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-07-21.md @@ -0,0 +1,114 @@ +### 2021, July 21st + +### Agenda + + * Reminder 13.0.0 release schedule from May 3 email. + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * CMake for Ubuntu Offloading + * Static library linking? + * AMDGPU math headers + * + + * Elf cleanup in libomptarget + * Missing omp end declare target + + + * TODO at the end of clang/test/OpenMP/declare_target_messages.cpp + + + * Deadlock : + + + +InitLibrary,->PendingGlobalsMtx.lock + + exit + +UnRegisterLib,-> PendingGlobalsMtx.lock() + + * Offloading buildbot failures + + + * llvm.org/PR50739 ; llvm.org/PR49940 + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246533718&usg=AOvVaw2xRJPw2PKsDVQan-6-6fmh) + * [https://reviews.llvm.org/D104555](https://www.google.com/url?q=https://reviews.llvm.org/D104555&sa=D&source=editors&ust=1778600246533825&usg=AOvVaw1wMtZFto0EIJgl6wa-MeP-) +(potentially can also fix for host offloading; PR50738) + * Device event mechanism: [https://reviews.llvm.org/D81989](https://www.google.com/url?q=https://reviews.llvm.org/D81989&sa=D&source=editors&ust=1778600246534030&usg=AOvVaw08aEiaOjqVdk9QkGu8jzrm) (abandoned?) + + + * llvm.org/PR50738 + + + * FAIL: libomptarget :: x86_64-pc-linux-gnu::memory_manager.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::parallel_offloading_map.cpp + * (probably related to the issue in bug49335.cpp) + + + * llvm.org/PR51065 + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49021.cpp + * [https://reviews.llvm.org/D106341](https://www.google.com/url?q=https://reviews.llvm.org/D106341&sa=D&source=editors&ust=1778600246534514&usg=AOvVaw1GYILRV48mCesir1TSDT8j) + + + * NEW: llvm.org/PR51150 + + + * FAIL: libomptarget :: x86_64-pc-linux-gnu::taskloop_offload_nowait.cpp + + + * Rebuilding clang does not cause deviceRTL rebuilt with LLVM_ENABLE_RUNTIMES=openmp build + + + * Going to clean build with ccache + + + * Device specific archive library + + + * Llvm-link archive support? [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246534944&usg=AOvVaw0mTEB9izAggldO8pH5-SGk) (merged) + * Unbundling of device specific archive from fat archive [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246535094&usg=AOvVaw1-H_JaC_U3-0AZpJOnxR2J) (merged) + * [Clang][OpenMP] Add support for Static Device Libraries [https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246535253&usg=AOvVaw0Fa7MLvTEx_Nd3U2ENKGQ8) (under review) + * Clang driver support + + + * OMPT for omptarget ([https://reviews.llvm.org/D99803](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246535415&usg=AOvVaw0fd7ElrSngNIDpT6Srfn9k)) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246535553&usg=AOvVaw1-fgKzfZJd091mrfovQnYl) issue with -Wl,-Bsymbolic-functions flag) + * https://bugs.llvm.org/show_bug.cgi?id=51117 + + + * pre-merge bot failing with libarcher failures: https://reviews.llvm.org/D105811 https://reviews.llvm.org/harbormaster/unit/113491/ + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49787](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49787&sa=D&source=editors&ust=1778600246535995&usg=AOvVaw2_XBRA7Shoa_RMhvQqMiG7) compiler/runtime API mismatch for async mapping + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Jon Chesterfield (AMD) + * George Rokos (Intel) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-07-28.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-07-28.md new file mode 100644 index 0000000..6b2899e --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-07-28.md @@ -0,0 +1,121 @@ +### 2021, July 28th + +### Agenda + + * Reminder 13.0.0 release schedule from May 3 email. + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * CMake for Ubuntu Offloading + * Static library linking? + + + * Waiting for last patch to be reviewed https://reviews.llvm.org/D105191 + + + * AMDGPU math headers + + + * Offloading buildbot failures + + + * llvm.org/PR50739 ; llvm.org/PR49940 [FLAKY] + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246528943&usg=AOvVaw1wzSVLQ7s0P9sZBaiXngM6) (under review) + + + * llvm.org/PR50738; llvm.org/PR51150 + + + * FAIL: libomptarget :: x86_64-pc-linux-gnu::memory_manager.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::parallel_offloading_map.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::taskloop_offload_nowait.cpp + + + * llvm.org/PR51233 [FLAKY] [NEW] + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug50022.cpp![](images/image1.png) + + + * llvm.org/PR51235 [FLAKY] [NEW] + + + * Regression test execution time increased from 1m20s to up to 23min + * llvm.org/PR49066 2nd attachment might be related and a stable reproducer + * [https://reviews.llvm.org/D107121](https://www.google.com/url?q=https://reviews.llvm.org/D107121&sa=D&source=editors&ust=1778600246529789&usg=AOvVaw15uafipl1w5MGfkHOA0cp4) + + + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246529885&usg=AOvVaw1gs4SzND4wiQTFTRCg30YG) now built using ccache + + + * Since https://lab.llvm.org/staging/#/builders/154/builds/1773 + * https://reviews.llvm.org/D106781 + + + * https://reviews.llvm.org/D106928 + + + * Device specific archive library + + + * Llvm-link archive support? [https://reviews.llvm.org/D81109](https://www.google.com/url?q=https://reviews.llvm.org/D81109&sa=D&source=editors&ust=1778600246530246&usg=AOvVaw2_kCQmTGgCMrpV7xqhpgLz) (merged) + * Unbundling of device specific archive from fat archive [https://reviews.llvm.org/D93525](https://www.google.com/url?q=https://reviews.llvm.org/D93525&sa=D&source=editors&ust=1778600246530393&usg=AOvVaw3rWYnjD64G8bCkA0nGKpl1) (merged) + * [Clang][OpenMP] Add support for Static Device Libraries [https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246530570&usg=AOvVaw2T6AaNYm_G18mg7cud-cgl) (under review) + + + * OMPT for omptarget ([https://reviews.llvm.org/D99803](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246530725&usg=AOvVaw2kmKrH9nE2kUaDyyqYBgCD)) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246530875&usg=AOvVaw3FutoZ94EyLN7rXLCdos76) issue with -Wl,-Bsymbolic-functions flag) + * https://bugs.llvm.org/show_bug.cgi?id=51117 + + + * pre-merge bot failing with libarcher failures: https://reviews.llvm.org/D105811 [https://reviews.llvm.org/harbormaster/unit/113491/](https://www.google.com/url?q=https://reviews.llvm.org/harbormaster/unit/113491/&sa=D&source=editors&ust=1778600246531181&usg=AOvVaw3NWtpdIVHo4S_T7jutILOI) + * Fixed by D106855 + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246531508&usg=AOvVaw0ek-ERMDLw_inij_191RrJ) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload archicture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246531720&usg=AOvVaw16_o-F250LlWKdVbcoiW3_) + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49787](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49787&sa=D&source=editors&ust=1778600246531917&usg=AOvVaw1hOFnaJxRjBnn-xzMdZygk) compiler/runtime API mismatch for async mapping + * [https://bugs.llvm.org/show_bug.cgi?id=50336](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50336&sa=D&source=editors&ust=1778600246532060&usg=AOvVaw0JMYBi3-NujpvOYr6dlKfJ) help needed + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Jon Chesterfield (AMD) + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * Johannes Doerfert (ANL) + * Roger Ferrer Ibañez (BSC) + * Andrey Churbanov (Intel) + * Saiyedul Islam (AMD) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-08-04.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-08-04.md new file mode 100644 index 0000000..449c85c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-08-04.md @@ -0,0 +1,155 @@ +### 2021, August 4th + +### Agenda + + * Reminder 13.0.0 release schedule from May 3 email. + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * CMake for Ubuntu Offloading + * Static library linking? + + + * Fixed some issues with amdgpu. Working for nvlink issue: https://reviews.llvm.org/D105191 + + + * AMDGPU math headers + + + * Offloading buildbot(s) + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246520735&usg=AOvVaw0HDOl5pLqTT1yGQYqkLNww) (don't clean source dir) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246520843&usg=AOvVaw1WFY88zZZZ4AYXrtvGHUhp); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246520902&usg=AOvVaw0IIeKfOjLMGro-GTt2Dzu0) [FLAKY] + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246521181&usg=AOvVaw2-QuyZfSASg45cgvlkqEOM) (under review) + + + * [llvm.org/PR50738](https://www.google.com/url?q=http://llvm.org/PR50738&sa=D&source=editors&ust=1778600246521288&usg=AOvVaw1iB8GydlXjP8ltKuFlCpkK); [llvm.org/PR51150](https://www.google.com/url?q=http://llvm.org/PR51150&sa=D&source=editors&ust=1778600246521344&usg=AOvVaw1m0Vbh5VVhnZyQwUl5w3XO) + + + * FAIL: libomptarget :: x86_64-pc-linux-gnu::memory_manager.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::parallel_offloading_map.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::taskloop_offload_nowait.cpp + + + * [llvm.org/PR51233](https://www.google.com/url?q=http://llvm.org/PR51233&sa=D&source=editors&ust=1778600246521687&usg=AOvVaw2-0tqbJng589PKO4jagVt7) [FLAKY] + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug50022.cpp![](images/image1.png) + + + * [llvm.org/PR51235](https://www.google.com/url?q=http://llvm.org/PR51235&sa=D&source=editors&ust=1778600246522445&usg=AOvVaw3u4XJhsHnWhQmO8An6goOu) [FLAKY] + + + * https://reviews.llvm.org/D107195 [10s timeouts] + * TIMEOUT: libomp::omp_get_wtime.c + * TIMEOUT: libomp::omp_taskwait.c + * TIMEOUT: libomp::omp_task_if.c + * TIMEOUT: libomp::omp_task_final.c + * TIMEOUT: libomp::omp_flush.c + * TIMEOUT: libomp::omp_task.c + * TIMEOUT: libomp::omp_taskyield.c + * TIMEOUT: libomp::depend.cpp + * TIMEOUT: libomp::gtid.cpp + * [https://reviews.llvm.org/D107121](https://www.google.com/url?q=https://reviews.llvm.org/D107121&sa=D&source=editors&ust=1778600246523165&usg=AOvVaw1TW4GSlnX0EPOhVEXaOBfK) (Under review) + + + * [llvm.org/PR51337](https://www.google.com/url?q=http://llvm.org/PR51337&sa=D&source=editors&ust=1778600246523267&usg=AOvVaw1ygeeFsz3Y7zoyuDa95baz) [NEW] (Could be issue with declare variant support) + + + * libomptarget :: nvptx64-nvidia-cuda :: api/omp_device_managed_memory.c + * libomptarget :: nvptx64-nvidia-cuda :: api/omp_get_num_devices.c + * libomptarget :: nvptx64-nvidia-cuda :: api/omp_get_num_devices_with_empty_target.c + * libomptarget :: nvptx64-nvidia-cuda :: api/omp_host_pinned_memory.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/data_absent_at_exit.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/delete_inf_refcount.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/pr38704.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_array_extension.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_data.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_data_array_extension.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_data_at_exit.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_enter_data.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_exit_data_delete.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_exit_data_release.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_update.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/target_update_array_extension.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/zero_length_array_section.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/present/zero_length_array_section_exit.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/private_mapping.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/ptr_and_obj_motion.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/target_data_array_extension_at_exit.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/target_implicit_partial_map.c + * libomptarget :: nvptx64-nvidia-cuda :: mapping/target_update_array_extension.c + * libomptarget :: nvptx64-nvidia-cuda :: offloading/bug49334.cpp + * libomptarget :: nvptx64-nvidia-cuda :: offloading/d2d_memcpy.c + * libomptarget :: nvptx64-nvidia-cuda :: offloading/dynamic_module.c + * libomptarget :: nvptx64-nvidia-cuda :: offloading/dynamic_module_load.c + * libomptarget :: nvptx64-nvidia-cuda :: offloading/host_as_target.c + * libomptarget :: nvptx64-nvidia-cuda :: offloading/info.c + * libomptarget :: nvptx64-nvidia-cuda :: offloading/lone_target_exit_data.c + * libomptarget :: nvptx64-nvidia-cuda :: offloading/mandatory_but_no_devices.c + * libomptarget :: nvptx64-nvidia-cuda :: offloading/offloading_success.c + + + * [https://reviews.llvm.org/D106928](https://www.google.com/url?q=https://reviews.llvm.org/D106928&sa=D&source=editors&ust=1778600246526183&usg=AOvVaw3NSNzkhNiwfY9xbgCSGNbV) [AMDGPU buildbot] + + + + * OMPT for omptarget ([https://reviews.llvm.org/D99803](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246526357&usg=AOvVaw2mvnhyx3yQ6Ux5dQtHAL0L)) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246526499&usg=AOvVaw3Aex8SDtYF_RMecsOdpf1z) issue with -Wl,-Bsymbolic-functions flag) + * https://bugs.llvm.org/show_bug.cgi?id=51117 + + + * pre-merge bot failing with libarcher failures: https://reviews.llvm.org/D105811 [https://reviews.llvm.org/harbormaster/unit/113491/](https://www.google.com/url?q=https://reviews.llvm.org/harbormaster/unit/113491/&sa=D&source=editors&ust=1778600246526798&usg=AOvVaw2KLSIf54CV-BjR0yaUl2a8) + * Fixed by D106855 + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246527103&usg=AOvVaw3YfB6yLsMcdqCMRTMEGRud) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload archicture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246527320&usg=AOvVaw0B-OxxixAZdGscDwumWEVa) + + + * Rpath, runpath, env vars and fragility of toolchains when more than one are on disk + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49787](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49787&sa=D&source=editors&ust=1778600246527604&usg=AOvVaw0StldTzXdzfpHwB-OsaN5o) compiler/runtime API mismatch for async mapping + * [https://bugs.llvm.org/show_bug.cgi?id=50336](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50336&sa=D&source=editors&ust=1778600246527759&usg=AOvVaw1WPz85Zcw7nGY3CDSeB9VD) help needed + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Saiyedul Islam (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-08-11.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-08-11.md new file mode 100644 index 0000000..bf4ba6b --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-08-11.md @@ -0,0 +1,148 @@ +### 2021, August 11th + +### Agenda + + * 13.0.0 release schedule + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * CMake for Ubuntu Offloading + * Static library linking? + + + * Fixed some issues with amdgpu. Working for nvlink issue: [https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246513460&usg=AOvVaw14x4lo4mnIQ5-w1l_X9o2S) + * Nvlink doesn't support archive file linking. Solutions: + + + * A new Nvlink-wrapper clang tool (code in AOMP) + * Use llvm-ar to extract cubin files and pass to nvlink. But, llvm-ar doesn't have output_directory option.` + + + * AMDGPU math headers + * Where is an LLVM based toolchain for OpenMP offload on intel GPU? Would like to test stuff using it + + + * One piece ? [https://github.com/intel/llvm/blob/openmp/openmp/libomptarget/plugins/opencl/src/rtl.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/openmp/openmp/libomptarget/plugins/opencl/src/rtl.cpp&sa=D&source=editors&ust=1778600246514036&usg=AOvVaw27fdBqwvDs-x0bLpHMNULp) + * Spirv -> ISA at the last moment: [https://github.com/intel/compute-runtime](https://www.google.com/url?q=https://github.com/intel/compute-runtime&sa=D&source=editors&ust=1778600246514186&usg=AOvVaw3Mq-9__U53Z_cyxeDHKt7T) + * + + * Notes for ELF offload images : [https://reviews.llvm.org/D99553](https://www.google.com/url?q=https://reviews.llvm.org/D99553&sa=D&source=editors&ust=1778600246514337&usg=AOvVaw22A1pARKbQkqMXPsW6krnc) + + + * Should I expect more comments? + * D99612 -> D99553 + |-> D99552 + |-> D99551 + + + * LIBOMP_NUM_HIDDEN_HELPER_THREADS + + + * What is the behavior if LIBOMP_NUM_HIDDEN_HELPER_THREADS=1 + * Number of helper threads should be +1 + + + * Alternate Async offload using omp_task_yield (Ye Luo) [https://reviews.llvm.org/D107656](https://www.google.com/url?q=https://reviews.llvm.org/D107656&sa=D&source=editors&ust=1778600246514779&usg=AOvVaw2Kum991crnSLlGADQoPZZH) + * OMPD : [https://reviews.llvm.org/D100366](https://www.google.com/url?q=https://reviews.llvm.org/D100366&sa=D&source=editors&ust=1778600246514883&usg=AOvVaw0g_ap-nGneasDI_MEASGtu), [https://reviews.llvm.org/D100182](https://www.google.com/url?q=https://reviews.llvm.org/D100182&sa=D&source=editors&ust=1778600246514964&usg=AOvVaw0dARU1S0FbHqxuRtUwvXWb), [https://reviews.llvm.org/D100183](https://www.google.com/url?q=https://reviews.llvm.org/D100183&sa=D&source=editors&ust=1778600246515041&usg=AOvVaw0F5y2CK4KlnIXJrFS0IcD4), [https://reviews.llvm.org/D100184](https://www.google.com/url?q=https://reviews.llvm.org/D100184&sa=D&source=editors&ust=1778600246515118&usg=AOvVaw2gS_yBMmM1oKREiJEiaxPF), [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246515190&usg=AOvVaw3T0QRNsEO0cz2ObEQnx3BG) + * Offloading buildbot(s) + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246515558&usg=AOvVaw1sAnXO1sHIgkhMLzuci_cJ) (don't clean source dir) + + + * Every regression test over 5s (-j1): + + + * https://reviews.llvm.org/D107195 (90s timeouts) + * 63.08s: libomp :: tasking/omp_taskyield.c + * 60.10s: libomp :: tasking/omp_task_final.c + * 50.09s: libomp :: tasking/omp_taskwait.c + * 50.09s: libomp :: tasking/omp_task.c + * 50.07s: libomp :: api/omp_get_wtime.c + * 10.09s: libomp :: tasking/omp_task_if.c + * 10.06s: libomp :: flush/omp_flush.c + * 6.37s: libomp :: barrier/omp_barrier.c + * 5.10s: libomptarget :: nvptx64-nvidia-cuda :: offloading/bug49334.cpp + * 5.05s: libomp :: tasking/taskdep_if0_2.c + * Possible solution: change SLEEPTIME in runtime/test/omp_testsuite.h to .02 + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246516433&usg=AOvVaw2SdhxUK__WRAnUOaXXnecm); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246516496&usg=AOvVaw2F5tpXiamAxuvvKLeqWzwE) [FLAKY] + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246516748&usg=AOvVaw3vllhYRguSSYh8tLvv5spo) (under review) + + + * [llvm.org/PR50738](https://www.google.com/url?q=http://llvm.org/PR50738&sa=D&source=editors&ust=1778600246516830&usg=AOvVaw0eoqXMxrUKKIBfco7r0w-M); [llvm.org/PR51150](https://www.google.com/url?q=http://llvm.org/PR51150&sa=D&source=editors&ust=1778600246516886&usg=AOvVaw1GPS8K7qQlfhg11qgm5Rk2) + + + * FAIL: libomptarget :: x86_64-pc-linux-gnu::memory_manager.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::parallel_offloading_map.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::taskloop_offload_nowait.cpp + + + * [llvm.org/PR51233](https://www.google.com/url?q=http://llvm.org/PR51233&sa=D&source=editors&ust=1778600246517195&usg=AOvVaw2hNy0Jz50pqwQtFSOkbx6f) [FLAKY] + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug50022.cpp + + + * [https://reviews.llvm.org/D107670](https://www.google.com/url?q=https://reviews.llvm.org/D107670&sa=D&source=editors&ust=1778600246517394&usg=AOvVaw20CkWY84es-9Zj3GK4FGmF); [https://reviews.llvm.org/D107706](https://www.google.com/url?q=https://reviews.llvm.org/D107706&sa=D&source=editors&ust=1778600246517466&usg=AOvVaw3Qe99ywK_UGa1H3y99Qhvp); [https://reviews.llvm.org/D107716](https://www.google.com/url?q=https://reviews.llvm.org/D107716&sa=D&source=editors&ust=1778600246517536&usg=AOvVaw2UEAwi_U_8WSpUIAF_swPf) [AMDGPU buildbot] + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246517687&usg=AOvVaw1vTINCX0CYhYbUY6zwWG0d), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246517757&usg=AOvVaw13Xfxl-UZ43pHhbtWscyg3) ) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246517893&usg=AOvVaw3VNUsFJVqNVUwpOeLXi5kt) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply + * https://bugs.llvm.org/show_bug.cgi?id=51117 + + + * pre-merge bot failing with libarcher failures: https://reviews.llvm.org/D105811 [https://reviews.llvm.org/harbormaster/unit/113491/](https://www.google.com/url?q=https://reviews.llvm.org/harbormaster/unit/113491/&sa=D&source=editors&ust=1778600246518330&usg=AOvVaw2nHK3vU87EXEmAhYRv2RET) + * Fixed by D106855 + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246518717&usg=AOvVaw0f8yrcnJutEjUqaz1QmUHu) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload archicture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246518938&usg=AOvVaw2B7vsVvWw6W6Imx97VgXID) + + + * Rpath, runpath, env vars and fragility of toolchains when more than one are on disk + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49787](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49787&sa=D&source=editors&ust=1778600246519205&usg=AOvVaw2rvnrN8Ol1QzBoIuck4uTY) compiler/runtime API mismatch for async mapping + * [https://bugs.llvm.org/show_bug.cgi?id=50336](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50336&sa=D&source=editors&ust=1778600246519357&usg=AOvVaw3YtAI95TBkHNswjTGoIMsg) (Should be fixed in [https://reviews.llvm.org/D107668](https://www.google.com/url?q=https://reviews.llvm.org/D107668&sa=D&source=editors&ust=1778600246519444&usg=AOvVaw0MJvw2VtjdCYw_qXO5l_DG)) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Joseph Huber (ORNL) + * Saiyedul Islam (AMD) + * George Rokos (Intel) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-08-18.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-08-18.md new file mode 100644 index 0000000..4443bc3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-08-18.md @@ -0,0 +1,148 @@ +### 2021, August 18th + +### Agenda + + * 13.0.0 release schedule + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * Openmp buildbot [https://lab.llvm.org/buildbot/#/builders/84](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/84&sa=D&source=editors&ust=1778600246506091&usg=AOvVaw3WMn3ScsOinZsFGy-Dr8nw) has been dead for 3 days, can't check out source. Guesses? + * CMake for Ubuntu Offloading + + + * I.e. build it by default, may require freestanding (removing printf?) + + + * Re: static libraries, --whole-archive mode + * Static library linking ([https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246506476&usg=AOvVaw1aivhFySrKTndr4-X8k_DI), will be updated once D108291 lands)) ? + + + * [clang-nvlink-wrapper] Wrapper around nvlink for archive files ([https://reviews.llvm.org/D108291](https://www.google.com/url?q=https://reviews.llvm.org/D108291&sa=D&source=editors&ust=1778600246506669&usg=AOvVaw1RrsKOcAd0WA12bf7eqaGy) up for review) + * [clang-offload-bundler] Make Bundle Entry ID backward compatible ([https://reviews.llvm.org/D106809](https://www.google.com/url?q=https://reviews.llvm.org/D106809&sa=D&source=editors&ust=1778600246506830&usg=AOvVaw3MXgZxOepRXGPbOMJmdhkR)) + + + * required for downstream amdgpu compatibility + * Should it be pulled in with changes to D105191 so that there is one patch less for the release manager to pull in for llvm-13? + + + + * Enable map checks in USM mode in libomptarget + * Omt taskwait depend https://bugs.llvm.org/show_bug.cgi?id=46196 + * Offloading buildbot(s) + + + * NVPTX and AMDGPU both fail on: + + + * FAIL: libomptarget :: x86_64-pc-linux-gnu::bug49334.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::memory_manager.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::parallel_offloading_map.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::taskloop_offload_nowait.cpp + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246507917&usg=AOvVaw3jkd-pryKg5dFg4ClZGYbT) (don't clean source dir) + + + * AMDGPU running here: [https://lab.llvm.org/staging/#/builders/182/](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/182/&sa=D&source=editors&ust=1778600246508071&usg=AOvVaw3bLwtLTKe7RHNfmu4_ipty) + * FAIL: libomptarget :: amdgcn-amd-amdhsa::bug50022.cpp + * FAIL: libomptarget :: amdgcn-amd-amdhsa::bug49021.cpp + + * [llvm.org/PR51517](https://www.google.com/url?q=http://llvm.org/PR51517&sa=D&source=editors&ust=1778600246508297&usg=AOvVaw1BhmiiFD_Ym_3RAf8S3x2S) [NEW] (invalid CUDA kernel image) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::lambda_mapping.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49021.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49779.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::declare_mapper_nested_default_mappers_complex_structure.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::target_array_extension.c + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug47654.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::target_pointers_members_map.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::declare_mapper_target_update.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::declare_mapper_target.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::target_data_array_extension_at_exit.c + * FAIL: libomptarget :: nvptx64-nvidia-cuda::declare_mapper_nested_default_mappers.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda::parallel_offloading_map.cpp + + + * [llvm.org/PR51518](https://www.google.com/url?q=http://llvm.org/PR51518&sa=D&source=editors&ust=1778600246509435&usg=AOvVaw10WXtTXZKDZQwyuHu_iqVI) [NEW] [FLAKY] (bin/opt missing in runtimes build) + + + * Performing build step for 'runtimes' + * There's a diff associated with this that added opt dependency to one of the plugins + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246509735&usg=AOvVaw3fACf486woyqkKgUHQdpca); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246509792&usg=AOvVaw1kR4kVyrst6jKVOH9gK4aU) [FLAKY] + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246510048&usg=AOvVaw1TFmpwFPjxSotXFO_gHpoi) (under review) + + + * [llvm.org/PR50738](https://www.google.com/url?q=http://llvm.org/PR50738&sa=D&source=editors&ust=1778600246510146&usg=AOvVaw3oxx7XBfaJZxJ-ofCCb3ps); [llvm.org/PR51150](https://www.google.com/url?q=http://llvm.org/PR51150&sa=D&source=editors&ust=1778600246510209&usg=AOvVaw0-wU-5aJzQ73c889QaVeMe) + + + * FAIL: libomptarget :: x86_64-pc-linux-gnu::memory_manager.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::parallel_offloading_map.cpp + * FAIL: libomptarget :: x86_64-pc-linux-gnu::taskloop_offload_nowait.cpp + + + * [llvm.org/PR51233](https://www.google.com/url?q=http://llvm.org/PR51233&sa=D&source=editors&ust=1778600246510563&usg=AOvVaw3hiJjLPNU9Sl6MUnx5wPzR) [FLAKY] + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug50022.cpp + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246510804&usg=AOvVaw2QcCZO21bkY2EvCp4ksACf), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246510878&usg=AOvVaw0hqFETsdc3Y8wWGXDnKvH-) ) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246511022&usg=AOvVaw1W0DXQ9jPp68EThZBShcXQ) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply + * https://bugs.llvm.org/show_bug.cgi?id=51117 + + + * pre-merge bot failing with libarcher failures: https://reviews.llvm.org/D105811 [https://reviews.llvm.org/harbormaster/unit/113491/](https://www.google.com/url?q=https://reviews.llvm.org/harbormaster/unit/113491/&sa=D&source=editors&ust=1778600246511504&usg=AOvVaw1xynsQBl_ddrEMEQCxWNtZ) + * Fixed by D106855 + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246511817&usg=AOvVaw2R9oT4brZx4HjGkhUYMqAO) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload archicture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246512022&usg=AOvVaw3TCkpollG2AZs92K_s57Uq) + + + * Rpath, runpath, env vars and fragility of toolchains when more than one are on disk + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49787](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49787&sa=D&source=editors&ust=1778600246512314&usg=AOvVaw2Ce2wOQE7R8L_wMo9AMtN8) compiler/runtime API mismatch for async mapping + * [https://bugs.llvm.org/show_bug.cgi?id=50336](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50336&sa=D&source=editors&ust=1778600246512467&usg=AOvVaw3FkMDrpJZw3nKbaleP5IiH) (Should be fixed in [https://reviews.llvm.org/D107668](https://www.google.com/url?q=https://reviews.llvm.org/D107668&sa=D&source=editors&ust=1778600246512556&usg=AOvVaw2BzcGuL5Ke5zzAzh1mhSUM)) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Ravi Narayanaswamy (Intel) + * Jon Chesterfield (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-08-25.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-08-25.md new file mode 100644 index 0000000..7a1f944 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-08-25.md @@ -0,0 +1,126 @@ +### 2021, Aug 25th + +### Agenda + + * 13.0.0 release schedule + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * Static library linking ([https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246500570&usg=AOvVaw0ageVWQ6fcfieB98vjlxwf), will be updated once D108291 lands)) ? + + + * [clang-nvlink-wrapper] Wrapper around nvlink for archive files ([https://reviews.llvm.org/D108291](https://www.google.com/url?q=https://reviews.llvm.org/D108291&sa=D&source=editors&ust=1778600246500752&usg=AOvVaw3G3fxJ1IXQfW0Hxpzt4s5G) up for review) + * [clang-offload-bundler] Make Bundle Entry ID backward compatible ([https://reviews.llvm.org/D106809](https://www.google.com/url?q=https://reviews.llvm.org/D106809&sa=D&source=editors&ust=1778600246500912&usg=AOvVaw3z9mUMbbcIVESpAwiynq9O)) + + + * required for downstream amdgpu compatibility + * Should it be pulled in with changes to D105191 so that there is one patch less for the release manager to pull in for llvm-13? + + + + * Enable map checks in USM mode in libomptarget + + + * [https://reviews.llvm.org/D108569](https://www.google.com/url?q=https://reviews.llvm.org/D108569&sa=D&source=editors&ust=1778600246501291&usg=AOvVaw1PYi_iSsa3iw0PI0DptGVQ) + * LIBOMPTARGET_USM={check,disable} + + + * Webpage + + + * The webpage is dead, long live the webpage! + * [https://openmp.llvm.org/](https://www.google.com/url?q=https://openmp.llvm.org/&sa=D&source=editors&ust=1778600246501507&usg=AOvVaw11KOEuRBcdechZzp6e1BLE) + * [https://openmp.llvm.org/docs](https://www.google.com/url?q=https://openmp.llvm.org/docs&sa=D&source=editors&ust=1778600246501603&usg=AOvVaw03TIMooR5-PpNlfjf5VsLB) + + + * AMDGPU buildbots + + + * AMDGPU passing here: [https://lab.llvm.org/staging/#/builders/182/](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/182/&sa=D&source=editors&ust=1778600246501764&usg=AOvVaw0VA4apxxHEIr2GSNjDBr-s) + + + * Release Notes 13 + + + * Content needed! + * [https://openmp.llvm.org/ReleaseNotes.html](https://www.google.com/url?q=https://openmp.llvm.org/ReleaseNotes.html&sa=D&source=editors&ust=1778600246501936&usg=AOvVaw1hs6x0Tz1bNPhmKgTOS5V1) + * [https://clang.llvm.org/docs/OpenMPSupport.html](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html&sa=D&source=editors&ust=1778600246502042&usg=AOvVaw1IyEKK5HUaXaWmcAAsfTBR) + + + * NVPTX buildbots + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246502456&usg=AOvVaw14uSyDi7BQcdcnAEVJbl8E) (don't clean source dir) + + + * x86_64-pc-linux-gnu failures have been marked as 'UNSUPPORTED' + + + * [https://reviews.llvm.org/rGad0f6e1d984067a3dc81c17abcdd2fc3c7ff9946](https://www.google.com/url?q=https://reviews.llvm.org/rGad0f6e1d984067a3dc81c17abcdd2fc3c7ff9946&sa=D&source=editors&ust=1778600246502717&usg=AOvVaw2O9LVCHk97pa8gBMbq5HgH) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246502798&usg=AOvVaw0jdoR9QhkClO7TLd-coc-T); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246502861&usg=AOvVaw018KMTaZlPnbzlB9GJOrFX) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246503076&usg=AOvVaw0h-CdGMcVQTLBmjkMfjp1-) (under review) + + + * [llvm.org/PR51233](https://www.google.com/url?q=http://llvm.org/PR51233&sa=D&source=editors&ust=1778600246503213&usg=AOvVaw0tqiCd_mqkcE8zMkx8Y0KS) [FLAKY] (wrong result) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug50022.cpp + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246503491&usg=AOvVaw3pBQx4G33YvTwIVP8YR-vd), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246503581&usg=AOvVaw2zNLjSmuyf5u2ZHtrNr5jn)) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246503727&usg=AOvVaw0a3OW_oPuo4xtNdvsxGIrz) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply + * Rpath, runpath, env vars and fragility of toolchains when more than one are on disk + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246504103&usg=AOvVaw3bEIG1okwxsWsJ0_14CUEs) + + + * pre-merge bot failing with libarcher failures: [https://reviews.llvm.org/D105811 ](https://www.google.com/url?q=https://reviews.llvm.org/D105811&sa=D&source=editors&ust=1778600246504254&usg=AOvVaw00M9WIp7BXI6cE5lapDloT)[https://reviews.llvm.org/harbormaster/unit/113491/](https://www.google.com/url?q=https://reviews.llvm.org/harbormaster/unit/113491/&sa=D&source=editors&ust=1778600246504356&usg=AOvVaw0PJ_D8XjlcK7mdC1VBOil5) + * Fixed by D106855 + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246504665&usg=AOvVaw2hYMZWKo6qbR4xB_askZbk) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246504871&usg=AOvVaw1eZ6pDfS4DQ6nwcG0qINtc) + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=49787](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D49787&sa=D&source=editors&ust=1778600246505054&usg=AOvVaw3-eLnCITgkCscMdMhVQzYv) compiler/runtime API mismatch for async mapping + * [https://bugs.llvm.org/show_bug.cgi?id=50336](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D50336&sa=D&source=editors&ust=1778600246505212&usg=AOvVaw1gaoWLihIHjfnzX-mXCw9R) (Should be fixed in [https://reviews.llvm.org/D107668](https://www.google.com/url?q=https://reviews.llvm.org/D107668&sa=D&source=editors&ust=1778600246505305&usg=AOvVaw2HZFE3jnWg3eaj3r_pFDGt)) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * George Rokos (Intel) + * Ravi Narayanaswamy (Intel) + * Jon Chesterfield (AMD) + * Johannes Doerfert (ANL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-09-01.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-09-01.md new file mode 100644 index 0000000..656dfb3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-09-01.md @@ -0,0 +1,114 @@ +### 2021, Sept 1st + +### Agenda + + * 13.0.0 release schedule + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Wish to serve ~ 5 contradictory use cases + + + * Linux desktop, llvm installed from package manager, possible new user + * HPC user, trunk installed locally / built from source, sysadmin/vendor/module systems compromising LD_LIBRARY_PATH, need to stop trunk using pieces from elsewhere + * LLVM developer. Lots of builds on disk, need flexibility, predictability of component choice + * Vendor toolchain, will use bits of trunk if they can and otherwise do their own thing + * Whoever I haven't thought of + + + * Currently 1, 2 don't work. 3 is ok but easy to accidentally mix up builds. 4 are getting by. + * Propose: + + + * Use a devicertl from clang tree unless command line argument otherwise. Drop LIBRARY_PATH override. Statically linked so clang flag works well to override. Better reliability across the board, devs can still splice in other bitcode (D109057, D109061) + * Set runpath on everything. Libomptarget, plugins, user applications. LD_LIBRARY_PATH still wins out, but makes 1/ work out of the box and 3/ much less confusing + * Add static link options for plugins, libomptarget, libomp. Lets 3, 4 build applications that will always reliably pick up the intended components. Can't override components at all, for that use dynamic linking + + + * Preferably do 1 & 2 before the 13 release. 3 can be slower as the main use cases are for bleeding edge / vendor builds and it may take a while to shake out the bugs it finds + * May want an escape hatch for developers who have a flow that isn't considered above and systems that don't have runpath (which might be detectable by cmake) + + + * Static library linking ([https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246496469&usg=AOvVaw3zG57lqYXC2ZkMNyEltn7w), going to update soon)) ? + + + * [clang-nvlink-wrapper] Wrapper around nvlink for archive files ([https://reviews.llvm.org/D108291](https://www.google.com/url?q=https://reviews.llvm.org/D108291&sa=D&source=editors&ust=1778600246496681&usg=AOvVaw30GidnjlIOnRvrQhntnOJv) merged) + * [clang-offload-bundler] Make Bundle Entry ID backward compatible ([https://reviews.llvm.org/D106809](https://www.google.com/url?q=https://reviews.llvm.org/D106809&sa=D&source=editors&ust=1778600246496858&usg=AOvVaw1dxbG6B4UHRiLdyFbMZWgl)) + + + * required for downstream amdgpu compatibility + * Should it be pulled in with changes to D105191 so that there is one patch less for the release manager to pull in for llvm-13? + + + * NVPTX buildbots (no update) + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246497432&usg=AOvVaw37s115wiqLc-DCZ2KBj7Ws) (don't clean source dir) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246497541&usg=AOvVaw1QNEMSj2BGsvvMMeqGPb3E); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246497596&usg=AOvVaw1Ydwdfpoy5l1hF9s004ZCy) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246497817&usg=AOvVaw0JTYUB7BJoOwB1l1uZO7D9) (under review) + + + * [llvm.org/PR51233](https://www.google.com/url?q=http://llvm.org/PR51233&sa=D&source=editors&ust=1778600246497912&usg=AOvVaw2PShAd2cc76riHcvKuryHH) [FLAKY] (wrong result) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug50022.cpp + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246498190&usg=AOvVaw36DyLVxc47Um_A9fTLwNpx), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246498264&usg=AOvVaw3f__EZ6Llldo-fdkyi4ZF2)) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246498411&usg=AOvVaw3lS_wd9ro7Mpwy7110pfX2) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246498738&usg=AOvVaw2mvjUzUgoFCyOUOrRNPjFs) + + + * pre-merge bot failing with libarcher failures: [https://reviews.llvm.org/D105811 ](https://www.google.com/url?q=https://reviews.llvm.org/D105811&sa=D&source=editors&ust=1778600246498887&usg=AOvVaw30kvYVZflP8op1ZUc7e8ho)[https://reviews.llvm.org/harbormaster/unit/113491/](https://www.google.com/url?q=https://reviews.llvm.org/harbormaster/unit/113491/&sa=D&source=editors&ust=1778600246498994&usg=AOvVaw0j9eT2AU65OD9gsPTiQEvI) + * Fixed by D106855 + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246499317&usg=AOvVaw31nmfpYLiisKlLJXOBcQQ6) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246499535&usg=AOvVaw14fP-oNYTgErrtA_yzcDaz) + + + * Any update on CUDA issues with ELF notes? + + + +### Open Bugs + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * Jon Chesterfield (AMD) + * George Rokos (Intel) + * Johannes Doerfert (ANL) + * Saiyedul Islam (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-09-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-09-08.md new file mode 100644 index 0000000..0be82a0 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-09-08.md @@ -0,0 +1,117 @@ +### 2021, Sept 8th + +### Agenda + + * 13.0.0 release schedule + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Landed D109057 (can find device libs without LIBRARY_PATH), D109071 (libomptarget can find plugins without LD_LIBRARY_PATH, tests no longer use LD_LIBRARY_PATH) + * Debate at D109061 about whether LIBRARY_PATH should take priority over looking next to clang for deviceRTL, continue to win out, or whether it should be totally ignored (which requires users who have put a devicertl somewhere else to specify it with ibomptarget-nvptx-bc-path) + + + * Note that 'some other devicertl' is not especially likely to work with clang, so I'd like it to be inconvenient (i.e. must pass the flag), to reduce the odds of doing it by accident) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + + + * Static library linking ([https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246489849&usg=AOvVaw0RDdGpgO0ppn9D1EO_vRbM), going to update in next few hours)) + + + * [clang-nvlink-wrapper] Wrapper around nvlink for archive files ([https://reviews.llvm.org/D108291](https://www.google.com/url?q=https://reviews.llvm.org/D108291&sa=D&source=editors&ust=1778600246490043&usg=AOvVaw2BpIGM5jSAtwy69tH6_xDT) merged) + * [clang-offload-bundler] Make Bundle Entry ID backward compatible ([https://reviews.llvm.org/D106809](https://www.google.com/url?q=https://reviews.llvm.org/D106809&sa=D&source=editors&ust=1778600246490213&usg=AOvVaw1kTg1quFUHJl146dsiHS6w)): merged + * [clang-nvlink-wrapper] Add documentation in clang docs ([https://reviews.llvm.org/D109225](https://www.google.com/url?q=https://reviews.llvm.org/D109225&sa=D&source=editors&ust=1778600246490416&usg=AOvVaw25wkr9czqJAPAzWh_41yVj)): merged + + + * NVPTX buildbots (no update since last week) + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246490877&usg=AOvVaw3O82eWsr9Z2F1iUnzD1nEv) (don't clean source dir) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246490995&usg=AOvVaw0Uut06CROa7VDEujckV1du); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246491052&usg=AOvVaw2PbWFlBO2eRRBUuhH1aj23) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246491277&usg=AOvVaw0bZ4SQlcbB_OncRkbZ04Fl) (under review) + + + * [llvm.org/PR51233](https://www.google.com/url?q=http://llvm.org/PR51233&sa=D&source=editors&ust=1778600246491380&usg=AOvVaw3dtHGkT_V-Pu2E2AVLWDjh) [FLAKY] (wrong result) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug50022.cpp + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246491648&usg=AOvVaw0_4mCh1Bic3G7RIdXWFE1z), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246491753&usg=AOvVaw2TpENWfFT_lPCSJKkHfmI8)) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246491911&usg=AOvVaw12f-evg9LXxZp4Ik5gUlqh) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246492236&usg=AOvVaw2g9qaxYh-pT4D7TLy6ziUR) + + + * pre-merge bot failing with libarcher failures: [https://reviews.llvm.org/D105811 ](https://www.google.com/url?q=https://reviews.llvm.org/D105811&sa=D&source=editors&ust=1778600246492384&usg=AOvVaw2wEhpwIe-ml6BhxSr6irqW)[https://reviews.llvm.org/harbormaster/unit/113491/](https://www.google.com/url?q=https://reviews.llvm.org/harbormaster/unit/113491/&sa=D&source=editors&ust=1778600246492468&usg=AOvVaw3iua-7BRQUZLR4DAA4PJv7) + * Fixed by D106855 + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246492771&usg=AOvVaw1cooUPurLmKZtdWGlLIcmX) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246492977&usg=AOvVaw302072lPnj99N6Njll4RJF) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51647](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51647&sa=D&source=editors&ust=1778600246493261&usg=AOvVaw0l_E9F1InI6cVgtgqQfQjM) +[OpenMPOpt] produces: error: Invalid record (Producer: 'LLVM14.0.0git' Reader: 'LLVM 14.0.0git') + + + * failing with invalid record due to a mismatch in the type of the argument and worker.work_fn.addr parameter passed for __kmpc_kernel_parallel due to a difference in address space + * have tested a fix that: + + + * 1) performs the worker.work_fn.addr AllocaInst in the AddressSpace::Local (5) rather than letting a later pass realize it is in the local address space, and + * 2) adds an AddrSpaceCastInst to generic before the call to __kmpc_kernel_parallel + + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246493899&usg=AOvVaw1VK4h3T_c4Sk9VLZkr1D9D) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel)Johannes Doerfert (ANL) + * Jon Chesterfield (AMD) + * George Rokos (Intel) + * Roger Ferrer Ibañez (BSC) + * Saiyedul Islam (AMD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-09-29.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-09-29.md new file mode 100644 index 0000000..5ca703d --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-09-29.md @@ -0,0 +1,128 @@ +### 2021, Sept 29th + +### Agenda + + * 13.0.0 release schedule + + + +July 27: release/13.x branch created + +July 30: 13.0.0-rc1 + +Aug 24: 13.0.0-rc2 + +Sep 7: 13.0.0-rc3 + +Sep 21: 13.0.0-final + + * Presentation about task graphs (Georgia Tech) + + + * Built on top of [https://github.com/habanero-rice/hclib](https://www.google.com/url?q=https://github.com/habanero-rice/hclib&sa=D&source=editors&ust=1778600246482408&usg=AOvVaw3WKCNgj1lLVsJVOtHqQ6TX) + + + * New meeting link on the openmp-dev list + * NVPTX buildbots (no update since last week) + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246482844&usg=AOvVaw36GHCxOJ5ADyAL6uGgI-1Y) (don't clean source dir) + + + * Changes to the top-level 'runtimes' directory (introduced in [D93408](https://www.google.com/url?q=https://reviews.llvm.org/D93408&sa=D&source=editors&ust=1778600246482984&usg=AOvVaw3TgZuvcy9iWi2QT-3mIlMo)) not triggering a build + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246483087&usg=AOvVaw1O6d3X4uBYxX1vxjxr7YSB); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246483156&usg=AOvVaw0l20pP8N8QagWaC5tthqem) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246483377&usg=AOvVaw3M2BvJNDBw9avxkd-VbSAZ) (under review) + + + * [llvm.org/PR51233](https://www.google.com/url?q=http://llvm.org/PR51233&sa=D&source=editors&ust=1778600246483478&usg=AOvVaw2GTR-qJcw2ejwoeZ_OlxuO) [FLAKY] (wrong result) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug50022.cpp + + + * Ignore failing SOLLVE V&V tests: [D110047](https://www.google.com/url?q=https://reviews.llvm.org/D110047&sa=D&source=editors&ust=1778600246483717&usg=AOvVaw0DsSzif0O3fG2EvUAIK2dG) + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246483857&usg=AOvVaw1lDFRTAAw5tmeD7ychnsov), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246483938&usg=AOvVaw2nL8CMvbt1pmKXpHx-ikHU)) + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246484083&usg=AOvVaw18odzdp33kv6VLQl3ZhYMi) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246484435&usg=AOvVaw25pV0E80TtIBgXzjdb6DIf) + + + * pre-merge bot failing with libarcher failures: [https://reviews.llvm.org/D105811 ](https://www.google.com/url?q=https://reviews.llvm.org/D105811&sa=D&source=editors&ust=1778600246484582&usg=AOvVaw2kBEHrGFUiKXnz36B2z72X)[https://reviews.llvm.org/harbormaster/unit/113491/](https://www.google.com/url?q=https://reviews.llvm.org/harbormaster/unit/113491/&sa=D&source=editors&ust=1778600246484666&usg=AOvVaw3aatD-VI9EacO0H_BNaTa-) + * Fixed by D106855 + + + * Static library linking ([https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246484815&usg=AOvVaw1IJtBkhNSOJPWLBk5hR4Xc), waiting for review)) + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246485233&usg=AOvVaw0p9oeouPYlpSZRQrmpQquw) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246485451&usg=AOvVaw2U4bz9B332W3G2mNSuK3ft) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246485579&usg=AOvVaw0PdXSTcQwSiaJKzOVjz7mo) + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246485728&usg=AOvVaw1TS9xEze9Es4z66SYs0xV5) + + + +### Patches to look at + + * + + +### Participants (voluntary/incomplete listing) + + * Ravi Narayanaswamy (Intel) + * George Rokos (Intel) + * Jon Chesterfield (AMD) + * Andrey Churbanov (Intel) + * Johannes Doerfert (ANL) + * Saiyedul Islam (AMD) + * Vivek Sarkar (Georgia Tech) + * Seonmyeong Bak (NVIDIA, Georgia Tech) + + + +HClib-related information + + * HClib repository: [https://github.com/habanero-rice/hclib](https://www.google.com/url?q=https://github.com/habanero-rice/hclib&sa=D&source=editors&ust=1778600246486416&usg=AOvVaw3qARlHiRGBGCAyBzev-ort) + + + * Basic tutorial on use of HClib APIs (not internal design) can be found [here](https://www.google.com/url?q=https://github.com/habanero-rice/hclib/tree/master/tutorial/hipc18/presentation&sa=D&source=editors&ust=1778600246486564&usg=AOvVaw26Ib6jdqJHMdSR3-tubC9P) + * As mentioned in the meeting, the main motivation for HClib is to enable efficient event-driven tasking with events that can be used to support task dependences, completion of inter-node/host-device communication requests, etc. + + + * Repository for work presented today that uses HClib to enable gang scheduling of OpenMP tasks that perform extra-OpenMP synchronization and communication calls, as in the SLATE library: [https://github.com/sbak5/OMP_SLATE_eval](https://www.google.com/url?q=https://github.com/sbak5/OMP_SLATE_eval&sa=D&source=editors&ust=1778600246487095&usg=AOvVaw3j-ro5eoDp7wSZcG5Gwui-) + * Some relevant papers + + + * [Task-Graph Scheduling Extensions for Efficient Synchronization and Communication](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3447818.3461616&sa=D&source=editors&ust=1778600246487313&usg=AOvVaw1alqrbn5tqVWu6WmA24ulS). Seonmyeong Bak, Oscar Hernandez, Mark Gates, Piotr Luszczek, Vivek Sarkar. Proceedings of the 35th ACM International Conference on Supercomputing (ICS), June 2021. + * [A Pluggable Framework for Composable HPC Scheduling Libraries](https://www.google.com/url?q=https://wiki.rice.edu/confluence/download/attachments/4425835/AsHES-03.pdf?version%3D1%26modificationDate%3D1489773371949%26api%3Dv2&sa=D&source=editors&ust=1778600246487602&usg=AOvVaw1OtU1zrBAes-qpvrtYuu3K). Max Grossman, Vivek Kumar, Nick Vrvilo, Zoran Budimlic, Vivek Sarkar. The Seventh International Workshop on Accelerators and Hybrid Exascale Systems (AsHES). May 2017. [[slides](https://www.google.com/url?q=https://wiki.rice.edu/confluence/download/attachments/4425835/ashes17-slides.pdf?version%3D1%26modificationDate%3D1496614131040%26api%3Dv2&sa=D&source=editors&ust=1778600246487835&usg=AOvVaw2K3FBMvrmdxTSq5xpX_Erf)] + * [Integrating Asynchronous Task Parallelism with OpenSHMEM](https://www.google.com/url?q=https://wiki.rice.edu/confluence/download/attachments/4425835/asyncshmem1.pdf?version%3D2%26modificationDate%3D1473733904618%26api%3Dv2&sa=D&source=editors&ust=1778600246487988&usg=AOvVaw0S0FFltX-ssepL9XCSpOXt). Max Grossman, Vivek Kumar, Zoran Budimlic, Vivek Sarkar. OpenSHMEM Workshop, August 2016. + * [HabaneroUPC++: a Compiler-free PGAS Library](https://www.google.com/url?q=https://wiki.rice.edu/confluence/download/attachments/4425835/habaneroupc-pgas14.pdf?version%3D1%26modificationDate%3D1413408225016%26api%3Dv2&sa=D&source=editors&ust=1778600246488207&usg=AOvVaw2ZnqIxM_bROwS5G60xa-OJ). Vivek Kumar, Yili Zheng, Vincent Cave, Zoran Budimlic, Vivek Sarkar. 8th International Conference on Partitioned Global Address Space Programming Models (PGAS14), October 2014. [[slides](https://www.google.com/url?q=https://wiki.rice.edu/confluence/download/attachments/4425835/habaneroupc-pgas14-slides.pdf?version%3D1%26modificationDate%3D1413408371601%26api%3Dv2&sa=D&source=editors&ust=1778600246488447&usg=AOvVaw2s-U1kwPevKamNGQAsICtp)] + + + +* * * + +# diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-10-06.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-10-06.md new file mode 100644 index 0000000..e5a315e --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-10-06.md @@ -0,0 +1,71 @@ +### 2021, Oct 6 + +### Agenda + + * Promoting amdgpu staging buildbots to main lab (i.e. get emails when they break (further, some tests still disabled)) + + + * [https://lab.llvm.org/staging/#/builders/182](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/182&sa=D&source=editors&ust=1778600246478204&usg=AOvVaw33DHCCn64zDIzEkzDCQUKY) + * [https://lab.llvm.org/staging/#/builders/183](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/183&sa=D&source=editors&ust=1778600246478315&usg=AOvVaw3fzEmpoGL0Al98SkWKCLs9) + + + * New meeting link on the openmp-dev list + * New device runtime becomes default now + * NVPTX buildbots (no update since last week) + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246478883&usg=AOvVaw0aJSmkGqz10Wgr9n9oGQhp) (don't clean source dir) + * Only run supported SOLLVE V&V tests: [D110047](https://www.google.com/url?q=https://reviews.llvm.org/D110047&sa=D&source=editors&ust=1778600246479020&usg=AOvVaw0d9FczHl9DnzkFM2df1Lfz) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246479099&usg=AOvVaw3zLxh0K9FikdmjPUop6Ypy); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246479166&usg=AOvVaw1MJkmYK-PVZxzPGWgWv1ie) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246479388&usg=AOvVaw2Dpsx72aPqCRmDwxUr_4Ed) (under review) + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246479534&usg=AOvVaw2AKefqVZsf66foxOgiZRss), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246479604&usg=AOvVaw1zhol5T7hYwoKjqcslcezE)) + + + * Possibly revert the 2-3 patches and AMD will upstream JMC's implementation + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246479835&usg=AOvVaw3-9spZuvau8BgIADh09T-p) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246480186&usg=AOvVaw0ONNvw1PnrMJwHYKp-B3ij) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Static library linking ([https://reviews.llvm.org/D105191](https://www.google.com/url?q=https://reviews.llvm.org/D105191&sa=D&source=editors&ust=1778600246480445&usg=AOvVaw1GaAwmbfRH1fF5BIv-1g6A), waiting for review)) + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246481232&usg=AOvVaw1eXfl1AIR8jqKAvcCW5JnT) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246481466&usg=AOvVaw3UT7JrxoIrgpV-ZQwichAo) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246481596&usg=AOvVaw3dqqZV9IOx6frfpLP42ZcV) + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246481765&usg=AOvVaw2YpQaEGWwQEg_7Wj8jGFpc) + + + +### Patches to look at diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-10-13.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-10-13.md new file mode 100644 index 0000000..e95deb1 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-10-13.md @@ -0,0 +1,74 @@ +### 2021, Oct 13 + +### Agenda + + * Snap (and reduced version) not working on nvptx trunk, different failure between new and old devicertl (Dan has further info) + * Promoting amdgpu staging buildbots to main lab (i.e. get emails when they break (further, some tests still disabled)) + + + * [https://lab.llvm.org/staging/#/builders/182](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/182&sa=D&source=editors&ust=1778600246474636&usg=AOvVaw0DodZgfIj4CMiR11UUcoPD) + * [https://lab.llvm.org/staging/#/builders/183](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/183&sa=D&source=editors&ust=1778600246474741&usg=AOvVaw1XPJBYJDBOK7dAUdZhF3Fd) + + + * New device runtime will become default soon + * NVPTX buildbots (no update since last week) + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246475178&usg=AOvVaw0cQWyOXQBxBAolWDhZ6T5Q) (don't clean source dir) + * Only run supported SOLLVE V&V tests: [D110047](https://www.google.com/url?q=https://reviews.llvm.org/D110047&sa=D&source=editors&ust=1778600246475307&usg=AOvVaw3mFaEZ-ziQEoI2zmm-Ru43) + + + * Fixed search for nvlink executable: https://reviews.llvm.org/D111488 [landed] + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246475471&usg=AOvVaw3Rw52oWagJPz9Vvol729mX); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246475529&usg=AOvVaw325DuVJjjB_Wfb0CgDWizZ) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246475738&usg=AOvVaw02dsJTZJTTh8KK9oE6P-N1) (under review) + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246475919&usg=AOvVaw3d-37OK9KCx80a34kYFcLu), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246475999&usg=AOvVaw0FdFVXtF5qq4Tm6KIeosEi)) + + + * Possibly revert the 2-3 patches and AMD will upstream JMC's implementation + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246476220&usg=AOvVaw3-rzE9wSuRONEHkT4ZRBQL)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246476372&usg=AOvVaw0TgCKirxn-o0FrN_rWj32E) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246476718&usg=AOvVaw150M280acntGwT_bi2uPc-) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246477260&usg=AOvVaw2f9IwcdNZ_Z87Q3PdIiEqL) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246477478&usg=AOvVaw2NLIq8tDAoJHd8JgBkcu9r) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246477605&usg=AOvVaw03-mDwG3R4SRUT9OhxXP2q) + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246477753&usg=AOvVaw1vyJlwlPXdLl8nAY9kESbe) + + + +### Patches to look at + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-10-20.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-10-20.md new file mode 100644 index 0000000..e80a6a3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-10-20.md @@ -0,0 +1,83 @@ +### 2021, Oct 20 + +### Agenda + + * Snap (and reduced version) not working on nvptx trunk, different failure between new and old devicertl (Dan has further info + + + * [https://bugs.llvm.org/show_bug.cgi?id=52169](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D52169&sa=D&source=editors&ust=1778600246470161&usg=AOvVaw37j0tkfWovQl1ERvKnFRLM) +[OpenMP] Wrong answers with nested 'omp parallel for' + + + * New device runtime will become default soon + + + * Partially tested on amdgpu, some patches in progress to bring that online + + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246470458&usg=AOvVaw3sDJW48YaZxLi1DxgsXBps) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots (no update since last week) + + + * Currently running here: http://meinersbur.de:8011 + + + * openmp-offload-cuda-project: http://meinersbur.de:8011/#/builders/1 + * openmp-offload-cuda-runtime: http://meinersbur.de:8011/#/builders/117 + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246470945&usg=AOvVaw3xwni-9r4HK9SBjAoOI3ZX) (don't clean source dir) + * Only run supported SOLLVE V&V tests: [D110047](https://www.google.com/url?q=https://reviews.llvm.org/D110047&sa=D&source=editors&ust=1778600246471075&usg=AOvVaw1Ta53cbxmgbR14cws56CRc) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246471152&usg=AOvVaw3ydIFvZJs9R1B58LF7-65u); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246471215&usg=AOvVaw2iQr-MPzmTQAlWh5ZrgHYq) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246471440&usg=AOvVaw2Pivdt3_s3_dSZhEGOAc94) (under review) + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246471595&usg=AOvVaw26JbZG1skFUmamxErp7k1I), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246471668&usg=AOvVaw0t4qkgE0KHFbSM2nmF73NF)) + + + * Possibly revert the 2-3 patches and AMD will upstream JMC's implementation + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246471874&usg=AOvVaw0dGPl4m91UdF9MtrGvrowI)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246472016&usg=AOvVaw0rB1-2HBLKckvSTf-hewFl) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246472382&usg=AOvVaw3kAekSu0gSvIDv2cIudJWv) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246472784&usg=AOvVaw222ML6IWf85rz-bo1nxJPr). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246472956&usg=AOvVaw3DX0RRK61Su9InDHVZ4iPT) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246473255&usg=AOvVaw0QzXoe4n5AeNyhpmpodNB6) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246473461&usg=AOvVaw3xyrxnwSrclLo7q6qze5MR) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246473619&usg=AOvVaw2HPtC99Ahadr67FivmU3m_) + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246474150&usg=AOvVaw1yO6HCBmzgMZB_fz-0499Z) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-10-27.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-10-27.md new file mode 100644 index 0000000..5da6ec8 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-10-27.md @@ -0,0 +1,87 @@ +### 2021, Oct 27 + +### Agenda + + * Proposal for how to change to the new runtime + * Snap (and reduced version) not working on nvptx trunk, different failure between new and old device rtl (Dan has further info + + + * [https://bugs.llvm.org/show_bug.cgi?id=52169](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D52169&sa=D&source=editors&ust=1778600246465819&usg=AOvVaw2YhXmV14q11W08ss4rR4z0) +[OpenMP] Wrong answers with nested 'omp parallel for' + + + * New device runtime will become default soon + + + * Partially tested on amdgpu, some patches in progress to bring that online + + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246466105&usg=AOvVaw0hViS0-0qh8KrJj4zyUoNS) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently offline (machine electrocuted itself) + + + * Replacement exists, waiting for [PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246466414&usg=AOvVaw0Ny-0Qh0JyqUB7JF4l7T_W) fix and [D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246466474&usg=AOvVaw0JCzCYf07ahTL8V2cgyvol) approved + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246466574&usg=AOvVaw2iYZhcPERI1VjSURapZRRk) (don't clean source dir) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246466711&usg=AOvVaw3z48-gOyj9dwWRsbWgW33T); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246466769&usg=AOvVaw3sPD5JQog-nx2ayt3dxoSO) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246466979&usg=AOvVaw2GY21AyE9B6dwyvUc6UoqO) (under review) + + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246467139&usg=AOvVaw1B3C9vICGYUuB9ZahrrRyo), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246467213&usg=AOvVaw1eneJ7GR3L6pBKt3cN8O7V)) + + + * Possibly revert the 2-3 patches and AMD will upstream JMC's implementation of the callback interface + * Device tracing (or trace records) implementation will come separately + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246467530&usg=AOvVaw3bJtvGABWHkrkC31SdtEiL)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246467676&usg=AOvVaw2GcRQMKAL-m4T6WrhfmrOm) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246468014&usg=AOvVaw2YagtHGoRYtUPnz0BhPJ7l) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246468463&usg=AOvVaw3ttTjtBVlxIgELQyY8kqLt). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246468636&usg=AOvVaw2wpS5PRZtZGUV7sJYChrV0) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246468909&usg=AOvVaw0t8h-YGOK6sBUsSXaKLcef) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246469117&usg=AOvVaw1yf2KJ6EvBa103UzPTvRzB) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246469253&usg=AOvVaw2hRPuGjydBPg9wa__gc_6n) + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246469734&usg=AOvVaw0AfRRA23KP6BDMfKuSH2a0) + + + +### Patches to look at diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-11-03.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-11-03.md new file mode 100644 index 0000000..c504e63 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-11-03.md @@ -0,0 +1,90 @@ +### 2021, Nov 03 + +### Agenda + + * Proposal for how to change to the new runtime + + + * Agreed to switch to new runtime and keep old runtime and decide later when to delete it + + + * Snap (and reduced version) not working on nvptx trunk, different failure between new and old device rtl (Dan has further info + + + * [https://bugs.llvm.org/show_bug.cgi?id=52169](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D52169&sa=D&source=editors&ust=1778600246461621&usg=AOvVaw0XMD5QzDouVME7hrn9SArI) +[OpenMP] Wrong answers with nested 'omp parallel for' + + + * FOTV generic device offload runtime proposal + + + * See [https://doi.org/10.1007/978-3-030-85262-7_12](https://www.google.com/url?q=https://doi.org/10.1007/978-3-030-85262-7_12&sa=D&source=editors&ust=1778600246461847&usg=AOvVaw11AHqFvFerKo0rOZs6IJ5L) + + + * OvO (-O3, new RT) passes 100% C/C++ tests now on A100 (sm_80) :) + + + * Ye: still fails in A40 and RTX3060 Ti. sm_86 cards but works as sm_80. + + + * Non-standard ompx OpenMP library + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246462226&usg=AOvVaw15D95deHgaFSA4Z30KwzXp) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246462330&usg=AOvVaw0wmBpEfEcwI4XsBRwuDZUz) (irbuilder) + * + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246462451&usg=AOvVaw19vIcWGL_hCb0q7hJdLRgG) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently offline (machine electrocuted itself) + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246462779&usg=AOvVaw2Ie_5KuLOUSIk0fPXaeR_H), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246462856&usg=AOvVaw2hOxMfv2KCmnmnmalzvB_L)) + + + * Possibly revert the 2-3 patches and AMD will upstream JMC's implementation of the callback interface + * Device tracing (or trace records) implementation will come separately + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246463200&usg=AOvVaw0lQ6qj8ibnAC9Bf2OK8a2t)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246463357&usg=AOvVaw2cdxEGangEaTAYzfOYqcbi) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246463697&usg=AOvVaw3D3AbbYpKPSCnAeznjJej9) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246464105&usg=AOvVaw2Sgl1rtCe4m5CxvJ_Cx8u1). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246464286&usg=AOvVaw00dw8iHbNlMRTzZUZrd0Sq) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246464563&usg=AOvVaw2p72YnDYOA4krxY7DPG6ra) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246464769&usg=AOvVaw1sF9dh8pYX7nNo1HES9qs6) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246464891&usg=AOvVaw0IkJRpniqPO-TGtMTCA4BM) + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246465401&usg=AOvVaw20mILz6BRqblgbq-E-1UAF) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-11-10.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-11-10.md new file mode 100644 index 0000000..f7b1559 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-11-10.md @@ -0,0 +1,114 @@ +### 2021, Nov 10 + +### Agenda + + * FOTV generic device offload runtime proposal + + + * See [https://doi.org/10.1007/978-3-030-85262-7_12](https://www.google.com/url?q=https://doi.org/10.1007/978-3-030-85262-7_12&sa=D&source=editors&ust=1778600246455897&usg=AOvVaw3ifiYSkrGAP08iivX3eah7) + + + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246456072&usg=AOvVaw1Jx8y2IlZbyFmm6s0euRrg) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * OvO (-O3, new RT) passes 100% C/C++ tests now on A100 (sm_80) :) + + + * Ye: still fails in A40 and RTX3060 Ti. 100% pass as well. sm_86 cards but works as sm_80. + + + * LLVM change committed before the weekend (11/5) caused tests to hang when dispatching to the GPU: + + + * [https://reviews.llvm.org/D105169](https://www.google.com/url?q=https://reviews.llvm.org/D105169&sa=D&source=editors&ust=1778600246456773&usg=AOvVaw12JYVZuD90bn-vzyjoBIwK) + + + +[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default + + * hang went away if the test was compiled with: -mllvm -openmp-opt-disable-internalization=1 + * change was later (11/8) reverted here: fd9b099906c61e46574d1ea2d99b973321fe1d21 + * required also rebuilding the OpenMP runtime libraries (just rebuilding clang was not sufficient) + * presentation on this change: [https://llvm.org/devmtg/2020-09/slides/Lee-UndefPoison.pdf](https://www.google.com/url?q=https://llvm.org/devmtg/2020-09/slides/Lee-UndefPoison.pdf&sa=D&source=editors&ust=1778600246457321&usg=AOvVaw0Byl-4yXFZmFqTHXh595dv) + * likely still some optimization in llvm not correctly handing poison/freeze that was affecting OpenMP + + + * Snap (and reduced version) not working on nvptx trunk, different failure between new and old device rtl (Dan has further info + + + * [https://bugs.llvm.org/show_bug.cgi?id=52169](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D52169&sa=D&source=editors&ust=1778600246457680&usg=AOvVaw0A0367Ftn-rAVSWh4o2vzs) +[OpenMP] Wrong answers with nested 'omp parallel for' + + + * Non-standard ompx OpenMP library + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246457912&usg=AOvVaw19aGmEAEeossxAYlMIRwBJ) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246458012&usg=AOvVaw2Or5B3FATVtQTWXf9BJMpj) (irbuilder) + * + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246458193&usg=AOvVaw0ELh2WDg2kbVwbd9_gLUhZ) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently offline (machine electrocuted itself) + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246458540&usg=AOvVaw2rf3GWvbCNjqoMOWDo3yP0), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246458617&usg=AOvVaw3PF7cJr87tlfbUuCsGAfd4)) + + + * Possibly revert the 2-3 patches and AMD will upstream JMC's implementation of the callback interface + * Device tracing (or trace records) implementation will come separately + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246458932&usg=AOvVaw2s-50kCpRYYhKXdhx1mR7-)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246459085&usg=AOvVaw27-wUWP9dWmYSF8vb39R20) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246459445&usg=AOvVaw2qj7XrJM8y-Z7HUteXF2jL) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246459841&usg=AOvVaw3a8d-kk3PMdHixNv6IQl9C). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246460012&usg=AOvVaw1-vHtn8FGIBQW6e_-WYssK) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246460290&usg=AOvVaw1C7TbkE207VnMMwdtv2ns7) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246460505&usg=AOvVaw3CKQgGpfbOY1AdRaE6egQ9) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246460632&usg=AOvVaw1koNzB-IF8DIV0bmOO9gC4) + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246461117&usg=AOvVaw3hU2ntjyM8g_cTte4pwBXr) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-11-24.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-11-24.md new file mode 100644 index 0000000..370f1c2 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-11-24.md @@ -0,0 +1,126 @@ +### 2021, Nov 24 + +### Agenda + + * Default to openmp-version 5.1 + * Offloading driver discussion: [OpenMP Offloading Driver Implementation](https://www.google.com/url?q=https://docs.google.com/presentation/d/1HCgOUsNcRVCd7MYBBTBgw4qACjWYjgsXkP1NMZcbSHI/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246449206&usg=AOvVaw3BLxljxhw8xPKC0N3ANnZO) + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246449396&usg=AOvVaw1QrnOBs8j6D77OprmQLOoG) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * OvO (-O3, new RT) passes 100% C/C++ tests now on A100 (sm_80) :) + + + * Ye: still fails in A40 and RTX3060 Ti. 100% pass as well. sm_86 cards but works as sm_80. + + + * LLVM change committed before the weekend (11/5) caused tests to hang when dispatching to the GPU: + + + * [https://reviews.llvm.org/D105169](https://www.google.com/url?q=https://reviews.llvm.org/D105169&sa=D&source=editors&ust=1778600246450097&usg=AOvVaw2_Au9HBfWx2rIRdpBue3p5) + + + +[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default + + * hang went away if the test was compiled with: -mllvm -openmp-opt-disable-internalization=1 + * change was later (11/8) reverted here: fd9b099906c61e46574d1ea2d99b973321fe1d21 + * required also rebuilding the OpenMP runtime libraries (just rebuilding clang was not sufficient) + * presentation on this change: [https://llvm.org/devmtg/2020-09/slides/Lee-UndefPoison.pdf](https://www.google.com/url?q=https://llvm.org/devmtg/2020-09/slides/Lee-UndefPoison.pdf&sa=D&source=editors&ust=1778600246450639&usg=AOvVaw0ZgQcctGLmSYQ8-1gbkcMX) + * likely still some optimization in llvm not correctly handing poison/freeze that was affecting OpenMP + + + * Snap (and reduced version) not working on nvptx trunk, different failure between new and old device rtl (Dan has further info + + + * [https://bugs.llvm.org/show_bug.cgi?id=52169](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D52169&sa=D&source=editors&ust=1778600246450981&usg=AOvVaw0rXvWhXAkzEgZvJYBdnQ6l) +[OpenMP] Wrong answers with nested 'omp parallel for' + + + * Non-standard ompx OpenMP library + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246451222&usg=AOvVaw0ZHP2GTmQgpDfPEz9luKkX) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246451323&usg=AOvVaw1TtsGc66M1xO2FXGH8vepI) (irbuilder) + * + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246451446&usg=AOvVaw386sLSJjhb7ZGMhG-J_2Tb) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently running here: http://meinersbur.de:8011 + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/11&sa=D&source=editors&ust=1778600246451776&usg=AOvVaw27MyH5G8GjddsDg5B0Qnef) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/13&sa=D&source=editors&ust=1778600246451867&usg=AOvVaw1i81D-3dj5Ua5zGdMmU55o) + * [openmp-offload-cuda-singletarget](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/2/builds/37&sa=D&source=editors&ust=1778600246451969&usg=AOvVaw1cpqEnTschPiiF2pCgFlol) + * [openmp-offload-cuda-irbuilder](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/5&sa=D&source=editors&ust=1778600246452059&usg=AOvVaw1HkTVXEQfqX43bYNLP-DzW) + + + * Don't clean source dir + + + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246452220&usg=AOvVaw0URYtorld3j1UI7axTa-rc) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246452300&usg=AOvVaw1_6kECC9iJBeQTvHLQhKJ_); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246452355&usg=AOvVaw3OB-FnGHvTy4USoQx0anWn) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda-newRTL::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246452642&usg=AOvVaw1I5tPD29PFI9HfOgBLapsj) (under review) + + + * OMPT for omptarget ([https://reviews.llvm.org/D106975](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246452798&usg=AOvVaw38e32phQGShzG5i-YRqWwx), [https://reviews.llvm.org/D106976](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246452876&usg=AOvVaw2-GKxRAIVNy0Qc6Wn1omHe)) + + + * Possibly revert the 2-3 patches and AMD will upstream JMC's implementation of the callback interface + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246453127&usg=AOvVaw31F-8BOy9Nv03yzrBNERWF) reverted + * [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246453284&usg=AOvVaw1Nzt50v2hqSaCMGrkslW-8) needs review + + + * Device tracing (or trace records) implementation will come separately + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246453524&usg=AOvVaw2ufDyV49KfqeGiilxIXfnA)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246453678&usg=AOvVaw1XbhjgmO_rA_fox9ZRdZZO) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246454029&usg=AOvVaw3K11-jTlRJnt5rjEvUpZQ1) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246454460&usg=AOvVaw3IprFQNHz0vZP_Z2x8Wa0Q). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246454629&usg=AOvVaw23bd4wOvcBb1S1ARGP8Vmz) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246454924&usg=AOvVaw2d7T9Er4Zu_iJrV8HoW43M) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246455137&usg=AOvVaw3K1MNi5QctxHywM4tSlAp_) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246455272&usg=AOvVaw0JJvMAXG0DL75uMWe-PirX) + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-12-01.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-12-01.md new file mode 100644 index 0000000..1157f81 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-12-01.md @@ -0,0 +1,139 @@ +### 2021, Dec 1 + +### Agenda + + * Driver details by Greg Rodgers + * Default to openmp-version 5.1 (Saiyedul will review experience on switch to 5.0 default) + + + * AMD propose that default change in LLVM 15 (after fork) and LLVM 14 default is 5.0 + + + * Offloading driver discussion: [OpenMP Offloading Driver Implementation](https://www.google.com/url?q=https://docs.google.com/presentation/d/1HCgOUsNcRVCd7MYBBTBgw4qACjWYjgsXkP1NMZcbSHI/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246442184&usg=AOvVaw0ddSAk4gq68tEfhfdKumMT) + + + * Greg has some additional charts + + + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246442414&usg=AOvVaw17BuN5xcPOtiSZghHMaQwz) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * OvO (-O3, new RT) passes 100% C/C++ tests now on A100 (sm_80) :) + + + * Ye: still fails in A40 and RTX3060 Ti. 100% pass as well. sm_86 cards but works as sm_80. + + + * LLVM change committed before the weekend (11/5) caused tests to hang when dispatching to the GPU: + + + * [https://reviews.llvm.org/D105169](https://www.google.com/url?q=https://reviews.llvm.org/D105169&sa=D&source=editors&ust=1778600246443166&usg=AOvVaw0oNw9eq2bHZJfe8WaOFYQ9) + + + +[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default + + * hang went away if the test was compiled with: -mllvm -openmp-opt-disable-internalization=1 + * change was later (11/8) reverted here: fd9b099906c61e46574d1ea2d99b973321fe1d21 + * required also rebuilding the OpenMP runtime libraries (just rebuilding clang was not sufficient) + * presentation on this change: [https://llvm.org/devmtg/2020-09/slides/Lee-UndefPoison.pdf](https://www.google.com/url?q=https://llvm.org/devmtg/2020-09/slides/Lee-UndefPoison.pdf&sa=D&source=editors&ust=1778600246443722&usg=AOvVaw3ivR3JVxK_-0qLeDwLRRpO) + * likely still some optimization in llvm not correctly handing poison/freeze that was affecting OpenMP + + + * Snap (and reduced version) not working on nvptx trunk, different failure between new and old device rtl (Dan has further info + + + * [https://bugs.llvm.org/show_bug.cgi?id=52169](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D52169&sa=D&source=editors&ust=1778600246444056&usg=AOvVaw2mLCfJ8CCPdNjqA95d9KIO) +[OpenMP] Wrong answers with nested 'omp parallel for' + + + * Non-standard ompx OpenMP library + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246444308&usg=AOvVaw1CNY2jHneoQDvecAoK2_Xn) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246444416&usg=AOvVaw00V18HEx5wsbsb1Zhg9Qzp) (irbuilder) + * + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246444541&usg=AOvVaw39ltg2Y5p5pR4RPcv-97lt) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently running here: http://meinersbur.de:8011 + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/11&sa=D&source=editors&ust=1778600246444865&usg=AOvVaw2NoJ6UCD5uwKiTZv4C5HEK) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/13&sa=D&source=editors&ust=1778600246444964&usg=AOvVaw3dCj6s4tLzf0zej6iU-wZI) + * [openmp-offload-cuda-singletarget](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/2/builds/37&sa=D&source=editors&ust=1778600246445057&usg=AOvVaw3MdN9votHDKjiuirIUzQUn) + * [openmp-offload-cuda-irbuilder](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/5&sa=D&source=editors&ust=1778600246445165&usg=AOvVaw3KsUWAIp-PFlkEQiV-slCe) + + + * Don't clean source dir + + + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246445331&usg=AOvVaw1npNHdzEs44ih-L69oubq1) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246445415&usg=AOvVaw0opAMiJd5EsTQz82UdSbws); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246445472&usg=AOvVaw39bZjBiYnL-hjqxBpiOx1I) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda-newRTL::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246445750&usg=AOvVaw0Zn0mJ-SaTtZWquBwrEvOC) (under review) + + + * OMPT target support + + + * AMD upstreaming JMC's implementation of the callback interface. Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246446019&usg=AOvVaw3OuLt2v7YAbaUUF-8ixncJ) + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246446224&usg=AOvVaw2RZgj5Msxp3aZLYEWxisTJ) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246446425&usg=AOvVaw04pk6pEDxH1mfek3lPmyLA) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246446558&usg=AOvVaw2FIHQflU5ku-TjRVxz9N7J) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246446801&usg=AOvVaw3aeMn-HPGPho7ufb5bKJNY)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246446948&usg=AOvVaw18d3oqXM07UER_iUDXZwn9) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246447319&usg=AOvVaw2yzwvKStk_4uLNSujPZ_Jr) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246447738&usg=AOvVaw0zx61kUwhbxK4nLap75Hnh). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246447909&usg=AOvVaw0LdR0tozJfX6gR8IyH7Ffz) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246448196&usg=AOvVaw0NdxdsYFqlVLkrAKWSysTc) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246448409&usg=AOvVaw3_Y2GO2RuK4NmUvMI78N3t) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246448534&usg=AOvVaw01CQqVUJ83-BVzHgvvkRQJ) + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-12-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-12-08.md new file mode 100644 index 0000000..55d4e1f --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-12-08.md @@ -0,0 +1,134 @@ +### 2021, Dec 8 + +### Agenda + + * Default to openmp-version 5.1 (Saiyedul will review experience on switch to 5.0 default) + + + * AMD propose that default change in LLVM 15 (after fork) and LLVM 14 default is 5.0 + + + * Offloading driver discussion: [OpenMP Offloading Driver Implementation](https://www.google.com/url?q=https://docs.google.com/presentation/d/1HCgOUsNcRVCd7MYBBTBgw4qACjWYjgsXkP1NMZcbSHI/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246435548&usg=AOvVaw3fuaSPLaBkVqzSBCDkHZsL) + + + * Greg has some additional charts + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246435908&usg=AOvVaw26ZEUsBGr1EPWFwruYDk5a) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246436006&usg=AOvVaw0p0ArvinSEonqBJBVk0th5) + * [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246436153&usg=AOvVaw1fajoNvDxkwlAhiVSm4NpC) + + + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246436330&usg=AOvVaw0r5Xc6cgDldN_qTl0GyqkJ) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246436820&usg=AOvVaw1-WMOIltYwSaglZ_-zHtZd) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246436918&usg=AOvVaw3KVbiDvaN3kmHHnAsPUTub) (irbuilder) + * + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246437066&usg=AOvVaw2CjAhdBspT1owayRS5exty) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently running here: http://meinersbur.de:8011 + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/11&sa=D&source=editors&ust=1778600246437373&usg=AOvVaw0-PgsQQ_5qFJmycZtw7xdg) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/13&sa=D&source=editors&ust=1778600246437462&usg=AOvVaw0w2FrHN0vNDA8IwqCiBjaF) + + + * Stopped running omptarget tests since https://reviews.llvm.org/D113253 + + + * [openmp-offload-cuda-singletarget](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/2/builds/37&sa=D&source=editors&ust=1778600246437677&usg=AOvVaw2bDixsfw-r0XdrwTCNbTMK) + * [openmp-offload-cuda-irbuilder](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/5&sa=D&source=editors&ust=1778600246437775&usg=AOvVaw1EtSneoobVbkbkl_Kpx1TD) + + + * Don't clean source dir + + + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246437909&usg=AOvVaw0ll42Rr64np2STcuBtz1Lq) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246437982&usg=AOvVaw3lskb52Pv_rzGUuDXbuspm); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246438043&usg=AOvVaw0a77-r1GZvheeeeH7QzymW) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda-newRTL::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246438350&usg=AOvVaw0KCVdtf6yxg5zQbfxbBP4t) (under review) + + + * Compile failure + + + * FAILED: projects/openmp/libomptarget/plugins/amdgpu/CMakeFiles/omptarget.rtl.amdgpu.dir/impl/impl.cpp.o + * Possible cause: https://reviews.llvm.org/D115279 + + + * OMPT target support + + + * AMD upstreaming JMC's implementation of the callback interface. Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246438855&usg=AOvVaw0Sk-tpLMTN-aESHUbW1lXW) + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246439068&usg=AOvVaw02LXROoNmuAXbF4Px99VQB) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246439221&usg=AOvVaw0d8l28749F7Xi7JFbv7c5l) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246439360&usg=AOvVaw03xvMSZRHxrG6z9IDjrJta) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246439595&usg=AOvVaw0Zc86d6fLUdruLQ-2Xq5u7)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246439738&usg=AOvVaw3qf8gH5gf6wKnNfhdtyO-o) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246440074&usg=AOvVaw1vh3lbDnC4AlBN3vPoPgNU) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246440487&usg=AOvVaw3A_DbJDtpvxk2Ojj3brScf). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246440659&usg=AOvVaw2BrUp_HUbzgcd41gX2pAgw) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246440928&usg=AOvVaw0k9nUkVFw0Q-IRS9cMl6Cv) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246441152&usg=AOvVaw09r8dX0OB2W1HeLVguZ3Fw) + + + * [RFC] "declare target indirect" doc: [https://reviews.llvm.org/D110193](https://www.google.com/url?q=https://reviews.llvm.org/D110193&sa=D&source=editors&ust=1778600246441314&usg=AOvVaw3IqGciXIV687ltEvAkxsqx) + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2021-12-15.md b/openmp-wg/meeting-minutes/openmp-minutes-2021-12-15.md new file mode 100644 index 0000000..a95df81 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2021-12-15.md @@ -0,0 +1,135 @@ +### 2021, Dec 15 + +### Agenda + + * Offloading driver discussion: [OpenMP Offloading Driver Implementation](https://www.google.com/url?q=https://docs.google.com/presentation/d/1HCgOUsNcRVCd7MYBBTBgw4qACjWYjgsXkP1NMZcbSHI/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246428698&usg=AOvVaw2TwzLuE91kFzl97hGFmnFk) + + + * Greg has some additional charts + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246429048&usg=AOvVaw1H8POlUfmWoJyrpY_5-b4Y) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246429162&usg=AOvVaw2bv-e8PFpsI9v95A_HOSHD) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246429614&usg=AOvVaw0CmqrGM9DAHZBgB8sHOScB) + + + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246429784&usg=AOvVaw2zH03zdZGJmI_EN361d4H0) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246430282&usg=AOvVaw1wo0cXlTdoAC5V5fzdOV3q) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246430391&usg=AOvVaw3F-25Hvyq8hFRDoacBDNZ7) (irbuilder) + * + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246430547&usg=AOvVaw3DbqoE-GOn-o4UxYjSDxOb) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently running here: http://meinersbur.de:8011 + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/11&sa=D&source=editors&ust=1778600246430842&usg=AOvVaw0POXWCm7y7xDTLKrPNrjCc) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/13&sa=D&source=editors&ust=1778600246430940&usg=AOvVaw3tjvvAm9BEV5B6dSlO1BiY) + + + * Stopped running omptarget tests since https://reviews.llvm.org/D113253 + + + * [openmp-offload-cuda-singletarget](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/2/builds/37&sa=D&source=editors&ust=1778600246431174&usg=AOvVaw2wpxg7Q3DPVOjWrui7coR7) + * [openmp-offload-cuda-irbuilder](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/5&sa=D&source=editors&ust=1778600246431269&usg=AOvVaw0XrRYWjjCjLIVJfPoohJ13) + + + * Don't clean source dir + + + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246431402&usg=AOvVaw0mJmkPeNYLg9UzMsNH7loS) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246431476&usg=AOvVaw1P6M1ThkQs_k_nLZMsJ3us); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246431536&usg=AOvVaw12UTNllg9mpkpDueRuhJ7Z) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda-newRTL::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246431825&usg=AOvVaw3jJXaYD4WRJ5jKh0G6oXQZ) (under review) + + + * Compile failure + + + * FAILED: projects/openmp/libomptarget/plugins/amdgpu/CMakeFiles/omptarget.rtl.amdgpu.dir/impl/impl.cpp.o + * Possible cause: [https://reviews.llvm.org/D115279](https://www.google.com/url?q=https://reviews.llvm.org/D115279&sa=D&source=editors&ust=1778600246432116&usg=AOvVaw3Z33Vj7kFwhJJ_MI_zpG9H) <\- fixed? Added missing functions to dynamic_hsa + + + * OMPT target support + + + * AMD upstreaming JMC's implementation of the callback interface. Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246432411&usg=AOvVaw3IhFhEzPT_-454JNdm3XWq) + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246432627&usg=AOvVaw0PFkkApzVH4VcJdJBtuL-0) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246432784&usg=AOvVaw3mIKUEa_dIzn-0Jj7bX6Q1) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246432918&usg=AOvVaw177dlcDgXaROa7dnmHLrMM) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246433156&usg=AOvVaw38p_Dbb5H3QX-DlNF2AfSM)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246433310&usg=AOvVaw1kA5Vh7rcFYY-LCgup2nov) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246433652&usg=AOvVaw2CnnZiZRirSxwYcOTAt78n) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246434065&usg=AOvVaw1UM1iSRxF7HPxFxEuvWejv). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246434241&usg=AOvVaw11PlKw-YCqiyicgHBfVkn_) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246434510&usg=AOvVaw1SyOsaSfuExu2fpvSQKfW1) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246434754&usg=AOvVaw04xASJUm57OPEPabbc6c4A) + + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-01-05.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-01-05.md new file mode 100644 index 0000000..364c1e5 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-01-05.md @@ -0,0 +1,132 @@ +### 2022, Jan 05 + +### Agenda + + * Offloading driver update: [OpenMP Offloading Driver Update](https://www.google.com/url?q=https://docs.google.com/presentation/d/1QXKSdBWhLaUHyrI-dgd2yHMux3w_q2EF2sROyO0u52k/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246422191&usg=AOvVaw1nB7s3vG9Y3n3VHauNA3Xc) + + + * [https://reviews.llvm.org/D116541](https://www.google.com/url?q=https://reviews.llvm.org/D116541&sa=D&source=editors&ust=1778600246422291&usg=AOvVaw3_hsdZWxPptAq4qWvurcVn) + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246422584&usg=AOvVaw1zJgW88YvDYITHoXapjcPT) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246422678&usg=AOvVaw0iF5tfSR1CSXRp7qGVpGR-) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246423125&usg=AOvVaw1vJQeOyyLv3fjCQCVA1Nq6) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246423501&usg=AOvVaw2oZP1fZ1j97lpJGISw_uJy) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246424020&usg=AOvVaw1AtLs2poLAEBLzy3lTZg-Y) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246424137&usg=AOvVaw3pY5pB4K8cwPwGyIb_Pls4) (irbuilder) + * + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246424274&usg=AOvVaw1bNcrn6jDdEodhkwJWTkKo) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently offline + * Don't clean source dir + + + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246424587&usg=AOvVaw1XdSIeCtm4P-Z1qPEMpnYC) + * Partially fixed: [https://reviews.llvm.org/rZORG5ba5d2e80969](https://www.google.com/url?q=https://reviews.llvm.org/rZORG5ba5d2e80969&sa=D&source=editors&ust=1778600246424723&usg=AOvVaw09l7RLt0cfkZKzqGkWGu4y) + + + * [llvm.org/PR50739](https://www.google.com/url?q=http://llvm.org/PR50739&sa=D&source=editors&ust=1778600246424798&usg=AOvVaw39sv5BvTwK7ASNY1KjQ1d8); [llvm.org/PR49940](https://www.google.com/url?q=http://llvm.org/PR49940&sa=D&source=editors&ust=1778600246424852&usg=AOvVaw0Vx2YrJ4RHhzFuf4Ok1EJ1) [FLAKY] (miscompile) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49334.cpp + * FAIL: libomptarget :: nvptx64-nvidia-cuda-newRTL::bug49334.cpp + * [https://reviews.llvm.org/D104418](https://www.google.com/url?q=https://reviews.llvm.org/D104418&sa=D&source=editors&ust=1778600246425140&usg=AOvVaw0eWDH7eB_xT0IwzLcpYfvP) (accepted, but not committed) + + + * OMPT target support + + + * AMD upstreaming JMC's implementation of the callback interface. Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246425435&usg=AOvVaw1rPN6SGJx-zTAVEEM3QVfm) + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246425637&usg=AOvVaw2VsWJOHOPAp6wymY3dvxCG) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246425788&usg=AOvVaw2Lt46j46nkhU9JKE-5Ykit) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246425923&usg=AOvVaw0aykWlZtWhswu4IMVZSf2t) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246426183&usg=AOvVaw3ctgwvDEgU8OzLq0PNFh-4)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246426335&usg=AOvVaw2JKKbhfulXQH3v_UdfTeBT) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246426701&usg=AOvVaw134_IB2dzJVyTakXDxWQq1) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246427122&usg=AOvVaw1f8SvofTcYacEuKnW5Fuu1). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246427295&usg=AOvVaw2Q6Qm8PuKytTiFL4b00LPT) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246427565&usg=AOvVaw0bQIpVpSIpN9o-WnfFxd02) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246427768&usg=AOvVaw1LRsLOX_wwDdohSaTEgTvS) + + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246428241&usg=AOvVaw2eG9K0CiaUEaJCGT5K9MSt) + + + +### Patches to look at + +[⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246428444&usg=AOvVaw0gO6oM0UC4EnUHDdO3OlQx) + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-01-12.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-01-12.md new file mode 100644 index 0000000..581f8f9 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-01-12.md @@ -0,0 +1,113 @@ +### 2022, Jan 12 + +### Agenda + + * Offloading driver update: [OpenMP Offloading Driver Update](https://www.google.com/url?q=https://docs.google.com/presentation/d/1QXKSdBWhLaUHyrI-dgd2yHMux3w_q2EF2sROyO0u52k/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246416180&usg=AOvVaw3YSL6WXYn3ZsDBODcIH8p0) + + + * [https://reviews.llvm.org/D116541](https://www.google.com/url?q=https://reviews.llvm.org/D116541&sa=D&source=editors&ust=1778600246416281&usg=AOvVaw38D4vJyrqP6f3FXjQfyDJ9) + * [https://github.com/jhuber6/llvm-project/tree/NewDriver](https://www.google.com/url?q=https://github.com/jhuber6/llvm-project/tree/NewDriver&sa=D&source=editors&ust=1778600246416399&usg=AOvVaw1ekGiq2IBU-2reT8JkH64p) + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246416695&usg=AOvVaw1aF5I6ye0qF3Y7UzgZxVbR) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246416786&usg=AOvVaw1VsBAxH0l62u49jScTCvOE) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246417241&usg=AOvVaw2NxL7GGONZiKRiMnSRdEcp) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246417558&usg=AOvVaw18lb6fkNf1i76Yc8GgTAWo) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246418067&usg=AOvVaw20ml3JDeksvRv1S4UZdi5Z) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246418213&usg=AOvVaw3Isb1UfQTqgcvGtB2-Vc6M) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246418314&usg=AOvVaw1xzs72VmppWsgCp03SryBd) (irbuilder) + * + + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246418449&usg=AOvVaw1D690lAEZ8NGHzWlPSv7Ii) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently offline + * Don't clean source dir + + + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246418764&usg=AOvVaw1sqChvTkSu4qdTZEynUt4E) + * Partially fixed: [https://reviews.llvm.org/rZORG5ba5d2e80969](https://www.google.com/url?q=https://reviews.llvm.org/rZORG5ba5d2e80969&sa=D&source=editors&ust=1778600246418891&usg=AOvVaw1ZIWT7QgEQfox4dEPReHqS) + + + * OMPT target support + + + * AMD upstreaming JMC's implementation of the callback interface. Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246419175&usg=AOvVaw3eM6WLksGXjhFpjwyV0xw6) + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246419476&usg=AOvVaw3ZF7omytxrODnuPZwZT2F7) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246419633&usg=AOvVaw04ESz7c5AfoYyfHL_Xj4nd) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246419764&usg=AOvVaw2kL9L9c70V3GnUUsgZ1vuc) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246419997&usg=AOvVaw2ufMnVPtM9vqO1xkexxX1Q)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246420157&usg=AOvVaw05ebLDzqK4koeQu4eBrRdf) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246420507&usg=AOvVaw0FQ-Wb8OomWaAwqX1lSlGO) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246420907&usg=AOvVaw3KNkSIzJlLiMY3OdlVamau). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246421122&usg=AOvVaw1TLevojLBCbFkEMr-CZqKb) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246421403&usg=AOvVaw08TdxHKoUIVcx0_Q0-WrTo) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246421636&usg=AOvVaw33oJyoce-q0LsRGZCjKDb9) + + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-01-19.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-01-19.md new file mode 100644 index 0000000..9826a0b --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-01-19.md @@ -0,0 +1,138 @@ +### 2022, Jan 19 + +### Agenda + + * Offloading driver update: [OpenMP Offloading Driver Update](https://www.google.com/url?q=https://docs.google.com/presentation/d/1QXKSdBWhLaUHyrI-dgd2yHMux3w_q2EF2sROyO0u52k/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246409131&usg=AOvVaw3pztmx6L0NGEq2aqRMWjcd) + + + * [https://reviews.llvm.org/D116541](https://www.google.com/url?q=https://reviews.llvm.org/D116541&sa=D&source=editors&ust=1778600246409232&usg=AOvVaw1DEwxbx3FOItYrb2uf4JGa) + * [https://github.com/jhuber6/llvm-project/tree/NewDriver](https://www.google.com/url?q=https://github.com/jhuber6/llvm-project/tree/NewDriver&sa=D&source=editors&ust=1778600246409352&usg=AOvVaw0LJm6AbsJ2nuTdQEa6_in9) + + + * Old runtime broken on amdgpu at head (buildbot demoted to staging), plan of attack? + + + * ![](images/image4.jpg) + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246409771&usg=AOvVaw3ccZJ1IG-lFi7qxAfHqQ-y) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246409875&usg=AOvVaw3QNfHwlfXf-QMlKkPhWcwB) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246410348&usg=AOvVaw0GplQjY569CyPCdcsYUAn8) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * Pre-merge check issues: [https://github.com/llvm/llvm-project/issues/53266](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53266&sa=D&source=editors&ust=1778600246410622&usg=AOvVaw0pTzsLhq5DFIE1KRAzXjDY) + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246410730&usg=AOvVaw1Pz1zFAKagrbdkoq4WPP2E) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246411018&usg=AOvVaw2tt-LTmjz39b59Y1vj5tNx) + * Printf + * + + + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246411288&usg=AOvVaw1mhywjVOj_hC0D2Yht0eHy) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246411822&usg=AOvVaw1gowctXksOUz12oHsDAtzj) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246411983&usg=AOvVaw291FtyKzrbjFFr7RPJQvd0) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246412089&usg=AOvVaw2fcASN6NO6EprZkKdFN4-J) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246412220&usg=AOvVaw0HD-E1D_uCuIMtWGesYBPG) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246412320&usg=AOvVaw3tpVqgcYIqFDqNZG6qxQAN) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently offline + * Don't clean source dir + + + * [https://reviews.llvm.org/D107193](https://www.google.com/url?q=https://reviews.llvm.org/D107193&sa=D&source=editors&ust=1778600246412635&usg=AOvVaw1qYY7p2BgxPRJVSxoEzoRu) + * Partially fixed: [https://reviews.llvm.org/rZORG5ba5d2e80969](https://www.google.com/url?q=https://reviews.llvm.org/rZORG5ba5d2e80969&sa=D&source=editors&ust=1778600246412760&usg=AOvVaw0eUayFWRNDna9Yh8Sluo3T) + + + * OMPT target support + + + * AMD upstreaming JMC's implementation of the callback interface. Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246413041&usg=AOvVaw0FBfRZkQLrs601siiOeqRw) + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246413379&usg=AOvVaw2W6qRsDgYmLmuxFxBlGXrR) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246413538&usg=AOvVaw3KVLnCyvV5fw0jJiMl9IpN) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246413668&usg=AOvVaw3ftl6Q6yQ6hxo9zE42awav) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246413898&usg=AOvVaw1Wg4KKLiPzMDk3-8LeCeVb)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246414055&usg=AOvVaw2VjtmxsRibxM9uFm_iIN1t) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246414430&usg=AOvVaw2sfBmuBBr7ffuh2mTFyaKH) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246414902&usg=AOvVaw0yiz9kZbUrQoCKS8DCdVAk). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246415067&usg=AOvVaw3r75ygN2h0LzIYkiks1gjI) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246415379&usg=AOvVaw1sAzBgg4ufA5EfgHnPHptk) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246415590&usg=AOvVaw0k7VvnF6TnWcBQS2iEcqzu) + + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-01-26.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-01-26.md new file mode 100644 index 0000000..7a629d0 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-01-26.md @@ -0,0 +1,140 @@ +### 2022, Jan 26 + +### Agenda + + * OMPT Presentation + * Offloading driver update: [OpenMP Offloading Driver Update](https://www.google.com/url?q=https://docs.google.com/presentation/d/1QXKSdBWhLaUHyrI-dgd2yHMux3w_q2EF2sROyO0u52k/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246401896&usg=AOvVaw1MCglvX1-mahY-K030PqwF) + + + * [https://reviews.llvm.org/D116541](https://www.google.com/url?q=https://reviews.llvm.org/D116541&sa=D&source=editors&ust=1778600246401992&usg=AOvVaw1e8AW1KmEFf_TSpUm1S78Y) + * [https://github.com/jhuber6/llvm-project/tree/NewDriver](https://www.google.com/url?q=https://github.com/jhuber6/llvm-project/tree/NewDriver&sa=D&source=editors&ust=1778600246402116&usg=AOvVaw0oME2x3Q6Qxly_cYSBgew9) + + + * Old runtime broken on amdgpu at head (buildbot demoted to staging), plan of attack? + + + * ^ still broken, deletion time ahead of release? + * + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246402592&usg=AOvVaw2Zc6ZCRHHcYe108gb7L59L) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246402690&usg=AOvVaw1N7PM4vpryz8fNlJzxt1FE) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246403162&usg=AOvVaw02tQsbzTZircMNORz7yjdZ) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * Pre-merge check issues: [https://github.com/llvm/llvm-project/issues/53266](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53266&sa=D&source=editors&ust=1778600246403473&usg=AOvVaw30IM2NzarHmOICvBoGpQn4) [closed] + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246403589&usg=AOvVaw1ktyW1PBvCsaIrUjqiFmP2) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246403883&usg=AOvVaw0vGgpphV13_Z08TYYFicAE) + * Printf + * + + + * JIT support + + + * Prototype: [https://github.com/tianshilei1992/llvm-project/tree/jit-lto](https://www.google.com/url?q=https://github.com/tianshilei1992/llvm-project/tree/jit-lto&sa=D&source=editors&ust=1778600246404129&usg=AOvVaw3KIMQNuZUiUz7lCoBABLWQ) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246404677&usg=AOvVaw29ZzVeSVIQcL3NAt81hIj_) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246404820&usg=AOvVaw27ytRRYaVH0-J8a-a4p-ib) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246404941&usg=AOvVaw0iLl8Wji29GxHY0uMy_BbZ) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246405074&usg=AOvVaw1Ne4im1KL2ppI09vlRhuZX) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246405176&usg=AOvVaw2V951aNF7oqsMnbEIo2uOQ) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently running here: http://meinersbur.de:8011 + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/11&sa=D&source=editors&ust=1778600246405474&usg=AOvVaw2c6DzXzYl2sTsYq1U3jSiq) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/13&sa=D&source=editors&ust=1778600246405570&usg=AOvVaw1ngpYZ7Gf_ElmXA7WnW56u) + * [openmp-offload-cuda-singletarget](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/2/builds/37&sa=D&source=editors&ust=1778600246405669&usg=AOvVaw0DJuPhn1H9fiqB_-yzJgCq) + * [openmp-offload-cuda-irbuilder](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/5&sa=D&source=editors&ust=1778600246405762&usg=AOvVaw0vZAnKC_trB9qBHZIy-Y_G) + + + * OMPT target support + + + * AMD upstreaming JMC's implementation of the callback interface. Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246406015&usg=AOvVaw2rcXEBDBvubeEFZHFQfnyO) + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246406328&usg=AOvVaw1gyEPErcGUYMMXWvVO-V8M) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246406486&usg=AOvVaw1AKEu6j497JidIPvRlIvNu) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246406616&usg=AOvVaw0XJYZIlukxZT7wUHhWoTxX) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246406848&usg=AOvVaw0q6NDqc8rDiRwlXf9FxyCk)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246406990&usg=AOvVaw2x2SprhmckVUc3nzlt-gem) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246407339&usg=AOvVaw1TboMo1DJNmhLcms6jGIb8) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246407885&usg=AOvVaw2lnQHnh8z3Hd5ZHr1mYKAq). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246408060&usg=AOvVaw26hzAhxJi-dDWPz79pzYJd) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246408337&usg=AOvVaw0sFyD0r7gRo69Rd3WPoBmC) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246408554&usg=AOvVaw1yNz0XGMu-qNUA_jgpb3T1) + + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-02-09.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-02-09.md new file mode 100644 index 0000000..1b2dd94 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-02-09.md @@ -0,0 +1,153 @@ +### 2022, Feb 9 + +### Agenda + + * Which libraries to include when offloading to CPU. + + + * Do not need ctor / dtor support, or entry routines. Most likely don't need libgcc. + * Should we use '-fno-exceptions' when offloading to CPU + + + * Offloading driver update: [OpenMP Offloading Driver Update](https://www.google.com/url?q=https://docs.google.com/presentation/d/1QXKSdBWhLaUHyrI-dgd2yHMux3w_q2EF2sROyO0u52k/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246394381&usg=AOvVaw31esm4jeOfMWkFx_iuqgxB) + + + * Works upstream + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246394709&usg=AOvVaw1pS0E5Dwvj3rRObu3jz60m) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246394802&usg=AOvVaw0uTJFfmiIlK47vPOgLZEE9) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246395277&usg=AOvVaw0MNWjEZoeCjRrCND_bncbY) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * Pre-merge check issues: [https://github.com/llvm/llvm-project/issues/53266](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53266&sa=D&source=editors&ust=1778600246395551&usg=AOvVaw2HNGs8AJ4crvDFxwpP7E1L) [closed] + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246395659&usg=AOvVaw14ac5q31PlVp3Ke6YukudP) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246395943&usg=AOvVaw1805vC-Y-EvRNfEK4K-a-d) + * Printf + * + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246396192&usg=AOvVaw3EuxLrI5N3pxkuwRNpttoY) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246396719&usg=AOvVaw34VdYOQ7oZVLLwElgpXhWF) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246396858&usg=AOvVaw2PuBAHuPI5jrV7-vVi5-pA) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246396955&usg=AOvVaw1Gm13LWj-6jwT_IMCElnGq) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246397080&usg=AOvVaw1DWCyiprBk8iQSxfwaowEF) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246397179&usg=AOvVaw3D_KDPjeCKhWO2PFuKQyyw) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently running here: http://meinersbur.de:8011 + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/11&sa=D&source=editors&ust=1778600246397470&usg=AOvVaw30NCAVE1828z9-NqaqgLes) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/13&sa=D&source=editors&ust=1778600246397556&usg=AOvVaw0iUs16ddnlZYMq_ocZJy4X) + * [openmp-offload-cuda-singletarget](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/2/builds/37&sa=D&source=editors&ust=1778600246397650&usg=AOvVaw0jPD7CdTuBaxEOeeL4sM5z) + * [openmp-offload-cuda-irbuilder](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/5&sa=D&source=editors&ust=1778600246397746&usg=AOvVaw3OvWugO99xX2JYc-N2pDEO) + + + * FAIL: libomptarget :: nvptx64-nvidia-cuda::bug49779.cpp + + + * [https://github.com/llvm/llvm-project/issues/53670](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53670&sa=D&source=editors&ust=1778600246397940&usg=AOvVaw1ClK4Eo8Btx3O8Sq65rkgM) + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246398196&usg=AOvVaw0QSywTS9APwnxZzAwR-H9w) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246398361&usg=AOvVaw2DyOfjD4w-eqVIG9scp8Mm) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246398545&usg=AOvVaw023OVFH-CiGXA8dd8wdt64) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246399026&usg=AOvVaw3-raJfvGdOAbpOYKZDa7wt) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246399180&usg=AOvVaw3laQmuaaW9Au1wche_10iJ) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246399309&usg=AOvVaw2ucyIcYSA5yqQTukU17A-W) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246399550&usg=AOvVaw2J9j2aqyaa7MOHqd0B6Xx3)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246399714&usg=AOvVaw1UxK2RctcN-ClfsdwV9IBH) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246400068&usg=AOvVaw2MHYXZE9ZKPZd-rpfFIOfE) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246400568&usg=AOvVaw3nII7BiN3Hm3fuN1qywGmn). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246400736&usg=AOvVaw3j5w4QmWXdndEti3SNCGfc) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246401015&usg=AOvVaw3QjB6mSZr22j5LPKKhJyHG) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246401248&usg=AOvVaw12LKNiRFCg4VyXWMzXeNSx) + + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? Completed by D118493 diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-02-16.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-02-16.md new file mode 100644 index 0000000..400b137 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-02-16.md @@ -0,0 +1,150 @@ +### 2022, Feb 16 + +### Agenda + + * Which libraries to include when offloading to CPU. + * AMDGPU libm - what to do with rocm dependency + * Offloading driver update: [OpenMP Offloading Driver Update](https://www.google.com/url?q=https://docs.google.com/presentation/d/1QXKSdBWhLaUHyrI-dgd2yHMux3w_q2EF2sROyO0u52k/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246386724&usg=AOvVaw0Ntd61b444goFoyewjQA7r) + + + * Added support for CPU offloading + * New driver variant added for all tests in the openmp test suite + + + * Linking shared libraries with offloading code + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246387227&usg=AOvVaw28tWad31nCTHeuZK9jxD_-) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246387327&usg=AOvVaw1HIPCJl3H_cShK-aKRR0r8) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246387761&usg=AOvVaw3aB-nzKlCheuqTafN_odho) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246387999&usg=AOvVaw2ZMYyd1pSc-4V-iEjxjrTA) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246388290&usg=AOvVaw0apAY_Etz3Nv02N9GLOCi8) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246388529&usg=AOvVaw2OMF-JUDXDE3ZeK1WqIsjA) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246389038&usg=AOvVaw1G9n7Y0d_uYpcsgZjosWWG) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246389175&usg=AOvVaw0r1OsUiZaXXkro0dE0MWJ1) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246389281&usg=AOvVaw068zRKX1aeGE3xrnTRte1y) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246389406&usg=AOvVaw22OxUeMPVwq2G5xagM14p3) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246389496&usg=AOvVaw1yEgQmU61vlLS0_dZ0B64C) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently running here: http://meinersbur.de:8011 + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/11&sa=D&source=editors&ust=1778600246389813&usg=AOvVaw3Au_MthDE2hh6pbLgJNHbW) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/13&sa=D&source=editors&ust=1778600246389909&usg=AOvVaw1euCUP13Ok0ktUX59ZI_Pc) + * [openmp-offload-cuda-singletarget](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/2/builds/37&sa=D&source=editors&ust=1778600246390011&usg=AOvVaw16DgNxTdcVYx5ESrJKAj8n) + * [openmp-offload-cuda-irbuilder](https://www.google.com/url?q=http://meinersbur.de:8011/%23/builders/5&sa=D&source=editors&ust=1778600246390102&usg=AOvVaw1aEsxn-BmMFY5nb-rPuQH3) + + + * [Flaky test nvptx64-nvidia-cuda::bug49334.cpp](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53730&sa=D&source=editors&ust=1778600246390214&usg=AOvVaw07hUwpsLjN3R_RTd5EkXHr) [FLAKY] + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246390496&usg=AOvVaw2GHO1PBE72OX7E7W7DLIau) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246390654&usg=AOvVaw1_82CaYd4O2aZcffHcF65Y) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246390839&usg=AOvVaw0_FF06M_oXdGMhRCrBRpui) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246391376&usg=AOvVaw25mWW2opgSUGY8T8iBLa2a) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246391527&usg=AOvVaw3-JfC4FRVBFzLF2Yx0KO3H) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246391655&usg=AOvVaw3zgZ--TMULEEa-vXKOosmW) Based on D99803 + + + * Device tracing (or trace records) implementation will come separately (review not yet posted) + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246391884&usg=AOvVaw1zRqU0nCBbY7zXsyzQ85eC)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246392031&usg=AOvVaw3gGijqkcPfo6itfjjAMm3J) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246392390&usg=AOvVaw1Gu0fYRXnbTLoypZbtHx8q) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246392860&usg=AOvVaw1Uwq2qfLIPaAkxf586UbJz). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246393026&usg=AOvVaw3dbM0Ig6VeYSRvtHVAQdF9) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246393306&usg=AOvVaw3-ImQyR7zVm6bRA-Qd3KCa) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246393554&usg=AOvVaw3nLVZhYb13NZIsJzbrCp5t) + + + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? Completed by D118493 + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-02-23.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-02-23.md new file mode 100644 index 0000000..23ff8f0 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-02-23.md @@ -0,0 +1,145 @@ +### 2022, Feb 23 + +### Agenda + + * AMDGPU libm - what to do with rocm dependency + * Plugin rewrite branch: + + + * [https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins&sa=D&source=editors&ust=1778600246379620&usg=AOvVaw2H1s9n5Ho7gnhcnsjVzbGJ) + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246379934&usg=AOvVaw1CdsegMYftPrTL0u37ra84) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246380037&usg=AOvVaw3dLwzjSD2yXfKIKTsOcmyN) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246380491&usg=AOvVaw0Crc5wG4XudjQ_9m-TWq00) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246380737&usg=AOvVaw2gwmCWayQu2_Gln37e0zG2) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246381033&usg=AOvVaw2bL1rM3caiNZnzyHTuf5l4) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246381265&usg=AOvVaw1sB7xR0mrQH9Rb5hCBGTSn) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246381782&usg=AOvVaw2apYzbvMBK7CZbdQAVC8-l) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246381909&usg=AOvVaw0hVv2r9MOacPZAObQDrHFV) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246382017&usg=AOvVaw3w1D28JS6-_ssK_u6OMzjV) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246382147&usg=AOvVaw3Nl0RP0fzebNOg0gH92Mto) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246382245&usg=AOvVaw3uqeKoDPuPU2_PYyekideO) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently on staging (https://lab.llvm.org/staging) + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/155&sa=D&source=editors&ust=1778600246382541&usg=AOvVaw1XPK8xkoW7BZcy_6DNbIg7) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246382628&usg=AOvVaw0z5YwMVVQ6DW5aj10ksXYU) + + + * Typical wait time ~1 week before moving to production + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246382986&usg=AOvVaw0PFva2p-4JzkXwh4hJkBxy) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246383155&usg=AOvVaw0_IlFolNrxLxHkbgee0375) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246383335&usg=AOvVaw22C8GOfXpkuCh0LNrzomR0) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246383802&usg=AOvVaw2-A-z5_C1r_q6JMIoBR4k2) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246383946&usg=AOvVaw03OFTyK7xJmdse044YWrMz) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246384072&usg=AOvVaw2dU8tfvbalG981jDpD_2Ae) Based on D99803 + + + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246384229&usg=AOvVaw0gNoRx6PGm-nzfDBBEwOMq)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246384392&usg=AOvVaw3kpGegQbHiXrZQpVvV5P8Z) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246384746&usg=AOvVaw2vCZoixZ4UdUwIYeR7gANT) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246385226&usg=AOvVaw21bHjFfCOHj_MUwxCF9_r_). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246385399&usg=AOvVaw0lS4pfEMByWAqxYpZB-kKA) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246385670&usg=AOvVaw1QpiFKKCmLb483gM6Zs0vw) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246385895&usg=AOvVaw1O5i2wn7y7J118WTxID-y_) + + + * Linking shared libraries with offloading code + * User experience (was Rpath, runpath, env vars and fragility of toolchains) + + + * Still need to work out how to make the user executable find libomp and libomptarget - currently it needs to use LD_LIBRARY_PATH, but we could set up a runpath for applications under a clang flag + * Why llvm/lib is after system lib locations? Completed by D118493 + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-03-02.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-02.md new file mode 100644 index 0000000..e7bf102 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-02.md @@ -0,0 +1,147 @@ +### 2022, Mar 2 + +### Agenda + + * Omp_target_memcpy_async + + + * [https://reviews.llvm.org/D81989](https://www.google.com/url?q=https://reviews.llvm.org/D81989&sa=D&source=editors&ust=1778600246372302&usg=AOvVaw3noaKWlJEbbMvgR8_qer1h) + + + * Plugin rewrite branch: + + + * [https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins&sa=D&source=editors&ust=1778600246372490&usg=AOvVaw3RF71hSZro6cwQAVFtULc3) + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246372789&usg=AOvVaw3W4usbAWSSA60Ju7GXBfKq) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246372883&usg=AOvVaw0DVy-1D6TWAet4pWEgd6Ut) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246373375&usg=AOvVaw25QueqehEZ9BAJs-Ogncpj) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246373622&usg=AOvVaw01dRGzmfPuM06bN04vrZu1) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246373913&usg=AOvVaw1-NPJvw-ctvekTqs8yyVYx) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246374155&usg=AOvVaw3rk_l-sEsi8yXn6rikwnYU) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246374709&usg=AOvVaw35QJyn47fAPPAHQCQBYSmt) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246374843&usg=AOvVaw2KSw4SXAbcE39V4hHhtLrm) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246374942&usg=AOvVaw1BvPpZ9ikQTo-9K-ginVRC) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246375093&usg=AOvVaw2YyGryhGFn5QszZarkbx7G) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246375201&usg=AOvVaw0e9_u3Rv6j1Lpo4UI3rLRV) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently on staging (https://lab.llvm.org/staging) + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/155&sa=D&source=editors&ust=1778600246375524&usg=AOvVaw0jb-uD2En8aoPDJ2lmRNVx) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246375628&usg=AOvVaw0MxRiuwUmxCD9eeXypvViV) + + + * Typically requires ~1 week constant green before moving to production + * [nvptx64-nvidia-cuda::bug49334 failing again](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54081&sa=D&source=editors&ust=1778600246375823&usg=AOvVaw1IdMoZNy0G3wrxPI3ZWtXD) [FLAKY] + * [test-suite::omptargetvv-test_parallel_for_allocate-50_parallel_for-c.test](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54082&sa=D&source=editors&ust=1778600246375971&usg=AOvVaw1peufnTahgpLlWi86FoUnI) [REVERTED] + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246376230&usg=AOvVaw2g6a9LUzXQvH1vrASctqa1) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246376397&usg=AOvVaw1nVmd4mVBmso342YwFTHhl) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246376572&usg=AOvVaw0dyYb1KoeNtPMvzTbN-Y5T) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246377038&usg=AOvVaw2AT7I3FO9BSOfHgbIRUuWo) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246377221&usg=AOvVaw2l7P8cg2WGpwW0rNVm9oiZ) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246377362&usg=AOvVaw34we-hdu2bQkCZ_64gsLjJ) Based on D99803 + + + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246377499&usg=AOvVaw2ACZBY3nDZ5_kSGht07qvv)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246377652&usg=AOvVaw1WI3xyILPzOMM8O2qbSv7G) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246377987&usg=AOvVaw3UE45OD76fQ79-kQAgmuaK) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246378464&usg=AOvVaw0_usKd8lbRuaqrUq98ggQb). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246378637&usg=AOvVaw1wqeT5ZPFb-5f6M1WtIsRh) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246378951&usg=AOvVaw2gUE_OGyudxTVu3pNLrGAQ) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246379172&usg=AOvVaw2We2-DwA8N_kLNkm9NiYpF) + + + * Linking shared libraries with offloading code + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-03-09.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-09.md new file mode 100644 index 0000000..04ec38a --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-09.md @@ -0,0 +1,154 @@ +### 2022, Mar 9 + +### Agenda + + * num_teams and OMP_NUM_TEAMS_DEV both exist, which one to honor? + * Omp_target_memcpy_async + + + * [https://reviews.llvm.org/D81989](https://www.google.com/url?q=https://reviews.llvm.org/D81989&sa=D&source=editors&ust=1778600246364995&usg=AOvVaw1Wv83n70F04QJfcdHz53R5) + + + * Plugin rewrite branch: + + + * [https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins&sa=D&source=editors&ust=1778600246365187&usg=AOvVaw3oz7QU_YAOmJMmL5kPWiTO) + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246365487&usg=AOvVaw3qA4Gs15-W_X5SHDp2UGUu) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246365581&usg=AOvVaw0kizRBvm8OVA30KAC_rUD_) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246366027&usg=AOvVaw3VffL6dbfPiJZXO2Ub1M_G) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246366287&usg=AOvVaw1gKtlVQutOu2Q7GxMLerzB) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246366581&usg=AOvVaw12pWoxKRQx-FzIZJke403d) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246366784&usg=AOvVaw1cBAeSUMvk6hjug08bVzZY) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246367326&usg=AOvVaw1IJiMgP90lg2Ef9urmr9Wk) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246367456&usg=AOvVaw2XrrUhBSNIixhR-4Dhim5z) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246367565&usg=AOvVaw2jaD6suJHlR4T2muoGYVES) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246367692&usg=AOvVaw3vi6JrNoxaxdtalGc-02h0) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246367783&usg=AOvVaw1-5S71P_HsYh4vlG88XHxE) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently on staging (https://lab.llvm.org/staging) + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/155&sa=D&source=editors&ust=1778600246368084&usg=AOvVaw3pkb4CcWnTOxVjgDNYM4vE) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246368187&usg=AOvVaw0N-OrYHyH1ngHQzvpkHIv4) + + + * Typically requires ~1 week constant green before moving to production + * [nvptx64-nvidia-cuda::bug49334 failing again](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54081&sa=D&source=editors&ust=1778600246368388&usg=AOvVaw0UEuwJnNCADXtjWgyAyyJ9) [FLAKY] + * [test-suite::omptargetvv-test_parallel_for_allocate-50_parallel_for-c.test](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54082&sa=D&source=editors&ust=1778600246368536&usg=AOvVaw39W2l2nrjUgocoQbNQHs0o) [REVERTED] + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246368798&usg=AOvVaw0n0s8J6ABVbf9CwFiXz6pt) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246368964&usg=AOvVaw2GkHrv7D4f2KstqzWAxz_D) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246369145&usg=AOvVaw2uZKvAZ-F66j2D2iW4198S) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246369620&usg=AOvVaw130VNqkQazcSUX9dvsOuID) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246369813&usg=AOvVaw3oHsqCPJrwlFAujxHwDWpf) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246369964&usg=AOvVaw09bz9i2stBw2WAw1qUg-bV) Based on D99803 + + + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246370153&usg=AOvVaw1ONlxGldjuwoHOuBjbsTP6)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246370310&usg=AOvVaw3NzhkM7AU3BUJRKTTzKk2v) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246370672&usg=AOvVaw3gVvIgqkmRH_Q9iCmZX4Nv) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246371157&usg=AOvVaw1V2sLslaU0UmnuUHTtuCCs). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246371331&usg=AOvVaw1qRuL7vXF-8SzpSFjlX1WT) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246371601&usg=AOvVaw0IQc8vSDHflFYSY3WZk8z_) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246371811&usg=AOvVaw34ZeFQxz9TZ02-DqfS5WN4) + + + * Linking shared libraries with offloading code + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246372017&usg=AOvVaw3AHLeJz3Xqn_RAEM8NKKW0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-03-16.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-16.md new file mode 100644 index 0000000..070833c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-16.md @@ -0,0 +1,155 @@ +### 2022, Mar 16 + +### Agenda + + * Omp_target_memcpy_async + + + * [https://reviews.llvm.org/D81989](https://www.google.com/url?q=https://reviews.llvm.org/D81989&sa=D&source=editors&ust=1778600246357607&usg=AOvVaw2G6hViGVOhFP94nkBXzfPh) + + + * Library shutdown order + + + * Can crash if libomptarget, plugin, driver, are unloaded in the "wrong" order + + + * Plugin rewrite branch: + + + * [https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins&sa=D&source=editors&ust=1778600246357950&usg=AOvVaw2IxoxdTo4kBjHdVHsfMkji) + + + * Non-determinism + + + * [https://reviews.llvm.org/rG7211dbd01da3a0e2f3550e1987291b3c84f7ffc6](https://www.google.com/url?q=https://reviews.llvm.org/rG7211dbd01da3a0e2f3550e1987291b3c84f7ffc6&sa=D&source=editors&ust=1778600246358137&usg=AOvVaw16edOEltJvNavqEOHRa1yF) + * https://reviews.llvm.org/rGe8fadafe774c7e601129be50cedce1dd20843cea + * + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246358542&usg=AOvVaw2Bcdsw8OYJT1jGfyBeNiKQ) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246358636&usg=AOvVaw0F3-8iwWHfWdnrnaoyHz8A) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246359081&usg=AOvVaw0NAS2VhEcKfQErD0Qp_dzj) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246359352&usg=AOvVaw0AGMIJ4prxJUVXlSanirq_) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246359667&usg=AOvVaw0JQTrVikGWCwjdym_7dEGu) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246359882&usg=AOvVaw2iQUFOxtSL-t6xBD4JzVH0) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246360403&usg=AOvVaw0vs9TdySdNk9AEYABXNiwA) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246360537&usg=AOvVaw1NMDi0kpdMYsAL1GfBDArx) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246360643&usg=AOvVaw30gEhbormaJKsSD8a8kVpA) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246360771&usg=AOvVaw1-ZPzd-CyWbgYNSJYw0aZp) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246360861&usg=AOvVaw0lNsBeRkfYwxPz2irsaOWs) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently on staging (https://lab.llvm.org/staging) + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/155&sa=D&source=editors&ust=1778600246361168&usg=AOvVaw1Uq4zj-rPG--fGk_DBz9-L) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246361266&usg=AOvVaw16HrVQSZqzGqSfZOvQnlnP) + + + * Typically requires ~1 week constant green before moving to production + * [nvptx64-nvidia-cuda::bug49334 failing again](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54081&sa=D&source=editors&ust=1778600246361455&usg=AOvVaw2185_oOi5D3RqPY67ru7Rt) [FLAKY] + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246361722&usg=AOvVaw1BXjjkhm5rYTknSjrqXdZm) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246361886&usg=AOvVaw2PxMaj2-K9O0OVmDS1XG1I) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246362066&usg=AOvVaw31BXinOw4oW_YwB-uj8X4p) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246362540&usg=AOvVaw1CYYbiY3OPIGlpGfOZsZUo) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246362695&usg=AOvVaw2B79ZRaV5ae5wwzX9lF7uW) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246362825&usg=AOvVaw3agrK5dgLLB9b8yesf5nWw) Based on D99803 + + + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246362959&usg=AOvVaw02Pw6Z4cog7_E6_H0cjgrP)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246363101&usg=AOvVaw27Npn2AwiaFRW7Fx_SF-3h) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246363455&usg=AOvVaw0AVwetywgcZwPvEA8jbde2) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246363965&usg=AOvVaw3OhSORNbDpykQpLhqMaa_i). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246364136&usg=AOvVaw2CvgITt7YwEMJpUdHe2UN0) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246364411&usg=AOvVaw3yvswPbW0cc1x4Qnh5YP7z) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246364620&usg=AOvVaw0uDDArscS77HtGKi4H7L3u) + + + * Linking shared libraries with offloading code diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-03-23.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-23.md new file mode 100644 index 0000000..3c8147c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-23.md @@ -0,0 +1,189 @@ +### 2022, Mar 23 + +### Agenda + + * Omp_target_memcpy_async + + + * [https://reviews.llvm.org/D81989](https://www.google.com/url?q=https://reviews.llvm.org/D81989&sa=D&source=editors&ust=1778600246348585&usg=AOvVaw3NA3-iDHlMkmsMQtC_wyW-) + + + * Copy back race: + + + * [https://reviews.llvm.org/D121058](https://www.google.com/url?q=https://reviews.llvm.org/D121058&sa=D&source=editors&ust=1778600246348713&usg=AOvVaw2KN6hKtuUssfCwHEjvJ6A2) + + + * Issues: + + + * AMD: [https://github.com/llvm/llvm-project/issues/54309](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54309&sa=D&source=editors&ust=1778600246348866&usg=AOvVaw141XUT4OJJ0V1ElkYkaKtf) + * AMD: [https://github.com/llvm/llvm-project/issues/54156](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54156&sa=D&source=editors&ust=1778600246348990&usg=AOvVaw1OgGIw1tbSCzAphZ7W4ZjX) + * AMD: [https://github.com/llvm/llvm-project/issues/54091](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54091&sa=D&source=editors&ust=1778600246349107&usg=AOvVaw0HF6VRtpqBUF2IxjQIPb-V) + * AMD: [https://github.com/llvm/llvm-project/issues/52706](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/52706&sa=D&source=editors&ust=1778600246349234&usg=AOvVaw2ehlxPimP8Qw7OdW-QOpaj) <\- "solved now" *but* -disable-promote-alloca-to-vector was needed before. That pass is broken when you have an array of pointers, IMHO. + * [https://github.com/llvm/llvm-project/issues/54216](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54216&sa=D&source=editors&ust=1778600246349465&usg=AOvVaw0hGDb54YjbaVOEymTK4KkF) <\- should be fixed soon + * Host: [https://github.com/llvm/llvm-project/issues/54422](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54422&sa=D&source=editors&ust=1778600246349607&usg=AOvVaw2g1O6TiFLtOuCu_YDZg8p0) + * Shared pointer on device: [https://github.com/llvm/llvm-project/issues/54186](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54186&sa=D&source=editors&ust=1778600246349741&usg=AOvVaw0igCCwztXszYeQ0_pDcbi1) + + + * [https://godbolt.org/z/hzbTxbe8x](https://www.google.com/url?q=https://godbolt.org/z/hzbTxbe8x&sa=D&source=editors&ust=1778600246349836&usg=AOvVaw2cef3IlmXhMbGpFzmW50IE) + + + * + + * Library shutdown order + + + * Can crash if libomptarget, plugin, driver, are unloaded in the "wrong" order + * https://reviews.llvm.org/D122014 + + + * Plugin rewrite branch: + + + * [https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins&sa=D&source=editors&ust=1778600246350330&usg=AOvVaw2sUvPOOGJesrUHIQoCHtBo) + + + * Non-determinism + + + * [https://reviews.llvm.org/rG7211dbd01da3a0e2f3550e1987291b3c84f7ffc6](https://www.google.com/url?q=https://reviews.llvm.org/rG7211dbd01da3a0e2f3550e1987291b3c84f7ffc6&sa=D&source=editors&ust=1778600246350517&usg=AOvVaw02d1sEP1TN7hM4UHHtiT2w) + * https://reviews.llvm.org/rGe8fadafe774c7e601129be50cedce1dd20843cea + * + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246350933&usg=AOvVaw32vQv1lONPdBtWP-OiTDLc) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246351036&usg=AOvVaw0F6AidzrT3NF_ZMwuab1TS) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246351533&usg=AOvVaw26raHizY0zundzm5FsNn0w) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246351778&usg=AOvVaw12a-Gykj04VQJSZg5TLi31) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246352074&usg=AOvVaw2gc3kSK0dwN3iwH0DqfUEC) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246352320&usg=AOvVaw3dTZKsgiMXJTdg8rcGj-Le) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246352839&usg=AOvVaw1-R1lL5u6ELbjRRvPV4clE) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246352972&usg=AOvVaw1b51DNWzYY9YypTr0I-gK-) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246353070&usg=AOvVaw3VZKnHDbrNR7gzBAqmUGAZ) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246353226&usg=AOvVaw34FAsMFbkofpOu8e61iO5W) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246353343&usg=AOvVaw0tfztSMnnojphLV7HKQ01I) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently on staging (https://lab.llvm.org/staging) + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/155&sa=D&source=editors&ust=1778600246353653&usg=AOvVaw1bp_PJyMb_Ieu6yD-TgQYX) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246353746&usg=AOvVaw3Qd_aG4HTzRccSuAjkuSK_) + + + * Typically requires ~1 week constant green before moving to production + * [nvptx64-nvidia-cuda::bug49334 failing again](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54081&sa=D&source=editors&ust=1778600246353936&usg=AOvVaw3_DqdBEzkp2-N9UZPZh9nU) [FLAKY] + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246354258&usg=AOvVaw12U3CFf7bzaHkTfYBQExTa) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246354429&usg=AOvVaw0JuYmYjtSI7z6Vj6Hps9Gn) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246354606&usg=AOvVaw37NvyKzOJRfI28Rzuszrpo) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246355074&usg=AOvVaw3wYelu1vniQSbKp66YqQOw) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246355234&usg=AOvVaw3kFWst1KrWSiNSp0TMSYgQ) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246355365&usg=AOvVaw09DCkx7DV4vMeCIPG3q14z) Based on D99803 + + + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246355512&usg=AOvVaw037O2CpVKHJH2fe-588tbk)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246355661&usg=AOvVaw0By6FLR6_S1KN0FaLhPQLz) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246355998&usg=AOvVaw3rtPp7V8aRy-thk4MX7-Bf) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246356466&usg=AOvVaw0cA00EHeKJo-DF1ZxrNpq2). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246356635&usg=AOvVaw3zTh78Fq7Z--NvHWQoUcWD) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246356900&usg=AOvVaw3kv0gXoHD0N7TcQ6a-WX4M) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246357117&usg=AOvVaw35VeBGvCAvjd23wwVTMk1h) + + + * Linking shared libraries with offloading code + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246357330&usg=AOvVaw2YCULBRbR_a1B9YOzk2iI2) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-03-30.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-30.md new file mode 100644 index 0000000..0abcfe0 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-03-30.md @@ -0,0 +1,181 @@ +### 2022, Mar 30 + +### Agenda + + * Omp_target_memcpy_async + + + * [https://reviews.llvm.org/D81989](https://www.google.com/url?q=https://reviews.llvm.org/D81989&sa=D&source=editors&ust=1778600246339409&usg=AOvVaw1aBrbYONDuTk62oiwxSWul) + + + * Copy back race: + + + * [https://reviews.llvm.org/D121058](https://www.google.com/url?q=https://reviews.llvm.org/D121058&sa=D&source=editors&ust=1778600246339539&usg=AOvVaw2MXVVQui493gUlAyvPhoji) + + + * New Driver binary format for bundling metadata + + + * [https://reviews.llvm.org/D122069](https://www.google.com/url?q=https://reviews.llvm.org/D122069&sa=D&source=editors&ust=1778600246339720&usg=AOvVaw2CG3ID7yJUzqNItHNWFOo1) + + + * Interaction between [⚙ D102107 [OpenMP] Codegen aggregate for outlined function captures (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246339910&usg=AOvVaw1CG93fMwppWtNNto37qBGA) and OpenMPOpt. Example: libomptarget/test/offloading/bug51982.c fails with this patch but passes when OpenMPOpt is disabled. In generic mode, I am seeing promotion of alloc_shared aggregate-object to stack that is then passed to parallel_51 + * Issues: + + + * AMD: [https://github.com/llvm/llvm-project/issues/54309](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54309&sa=D&source=editors&ust=1778600246340307&usg=AOvVaw1cb9gITERdbTcIuz4Y8g_Y) + * AMD: [https://github.com/llvm/llvm-project/issues/54156](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54156&sa=D&source=editors&ust=1778600246340445&usg=AOvVaw1y7H0dqu2MWuHHos7hRmpd) + * AMD: [https://github.com/llvm/llvm-project/issues/54091](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54091&sa=D&source=editors&ust=1778600246340571&usg=AOvVaw0aYEj2dsxAVwyf8iIF21bS) + * AMD: [https://github.com/llvm/llvm-project/issues/52706](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/52706&sa=D&source=editors&ust=1778600246340703&usg=AOvVaw3P_XVHjHPtjEWfEKkJfFr5) <\- "solved now" *but* -disable-promote-alloca-to-vector was needed before. That pass is broken when you have an array of pointers, IMHO. + * [https://github.com/llvm/llvm-project/issues/54216](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54216&sa=D&source=editors&ust=1778600246340933&usg=AOvVaw1WYOlrk5xYVxrzU_goYgwU) <\- should be fixed soon + * Host: [https://github.com/llvm/llvm-project/issues/54422](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54422&sa=D&source=editors&ust=1778600246341078&usg=AOvVaw0Jvvhu4fpfaumsWotqLnvk) + * Shared pointer on device: [https://github.com/llvm/llvm-project/issues/54186](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54186&sa=D&source=editors&ust=1778600246341310&usg=AOvVaw1zvtijHjfLSSKgA9XIV9QZ) + + + * [https://godbolt.org/z/hzbTxbe8x](https://www.google.com/url?q=https://godbolt.org/z/hzbTxbe8x&sa=D&source=editors&ust=1778600246341413&usg=AOvVaw2Wonuhp1-e3o8qVGrlxNPr) + + + * Plugin rewrite branch: + + + * [https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins&sa=D&source=editors&ust=1778600246341602&usg=AOvVaw3be1-w88770e29L_6hwXzA) + + + * Non-determinism + + + * [https://reviews.llvm.org/rG7211dbd01da3a0e2f3550e1987291b3c84f7ffc6](https://www.google.com/url?q=https://reviews.llvm.org/rG7211dbd01da3a0e2f3550e1987291b3c84f7ffc6&sa=D&source=editors&ust=1778600246341776&usg=AOvVaw0b8xRzlNgODnA9ruolJyYi) + * https://reviews.llvm.org/rGe8fadafe774c7e601129be50cedce1dd20843cea + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246342165&usg=AOvVaw0DmBLVCH_IRTFtyLpjlodT) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246342276&usg=AOvVaw0p0ijdOCKslnq-sjm6jmeM) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246342744&usg=AOvVaw2XfreZ_EeMc-NVDvYLJnb4) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246342984&usg=AOvVaw2kiEdADNnycHBjWm4em6up) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246343311&usg=AOvVaw0gsAX0PPuQMNybRastkXhb) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246343526&usg=AOvVaw13OYNAaVeGfz_hADuXALvq) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246344051&usg=AOvVaw2s2wG10bgmZX72nLcKfMB-) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246344202&usg=AOvVaw0JPQu4hxMwMB45Vlfky6Bo) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246344301&usg=AOvVaw372cP5ymxWoQYzsTq8JEL2) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246344441&usg=AOvVaw0qyUSHv-DyH5eeizZUL6s2) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246344533&usg=AOvVaw2K04DYZEnam8TDwp8Gkuey) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently on staging (https://lab.llvm.org/staging) + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/155&sa=D&source=editors&ust=1778600246344824&usg=AOvVaw0qmDSkdH2EK8vE9o-W4moQ) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246344913&usg=AOvVaw0uSAVFZe9pA6GAZmf2iW3f) + + + * Typically requires ~1 week constant green before moving to production + * [nvptx64-nvidia-cuda::bug49334 failing again](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54081&sa=D&source=editors&ust=1778600246345101&usg=AOvVaw3T-aL95MszPVh8i1Kz3Ol1) [FLAKY] + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246345372&usg=AOvVaw0w8bn54D_-OPQnSl51LPs1) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246345539&usg=AOvVaw3oDvs0n0afW8cAWUq5L-cZ) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246345719&usg=AOvVaw2ZAtWh3wHzpFWk1P-ryKra) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246346202&usg=AOvVaw2l_yOaMb7mIKfYkQfaHLia) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246346357&usg=AOvVaw19kcZy5GJ9QDWQVq5_sIN8) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246346488&usg=AOvVaw2R2czJUwM-uXPV49PCcEcc) Based on D99803 + + + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246346622&usg=AOvVaw2UUZ5q-dqe7_CVWukX4Eoy)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246346764&usg=AOvVaw0ULjvJYoMtJQI_wB_mv5h2) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246347127&usg=AOvVaw2lWfK2-jHrePZdWTs8Hd0A) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246347607&usg=AOvVaw1z4kFj-d2Z8aJaaEdpd5Jn). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246347773&usg=AOvVaw2Hi7JGpNVQ8UasRQnGz_PK) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246348041&usg=AOvVaw2L_kAZzURgP3G_Uyfb6W7O) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246348262&usg=AOvVaw2NSUo3pVJqQrmZHCyESlxF) + + + * Linking shared libraries with offloading code + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-04-06.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-04-06.md new file mode 100644 index 0000000..4744ab8 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-04-06.md @@ -0,0 +1,170 @@ +### 2022, April 06 + +### Agenda + + * Dispatch and interop support + * Omp_target_memcpy_async + + + * [https://reviews.llvm.org/D81989](https://www.google.com/url?q=https://reviews.llvm.org/D81989&sa=D&source=editors&ust=1778600246331124&usg=AOvVaw1fUtupXhB3c8eCW95RYXyd) + + + * New Driver binary format for bundling metadata + + + * [https://reviews.llvm.org/D122069](https://www.google.com/url?q=https://reviews.llvm.org/D122069&sa=D&source=editors&ust=1778600246331292&usg=AOvVaw0CE5DZlngHV5oqprmkEvAN) + * [Improving the OpenMP Offloading Driver: LTO, libraries, and toolchains](https://www.google.com/url?q=https://docs.google.com/presentation/d/1A5-fkV-_pJEFtUenZaAaOOcb9-6n1u9s5JpuPQkfMqY/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246331393&usg=AOvVaw38OhYH2AJHyjp5qwpxzpeQ) (Overview talk) + + + * Issues: + + + * AMD: [https://github.com/llvm/llvm-project/issues/54156](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54156&sa=D&source=editors&ust=1778600246331582&usg=AOvVaw2vCEvjiL2FJPf2WdOKPmwp) + * AMD: [https://github.com/llvm/llvm-project/issues/52706](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/52706&sa=D&source=editors&ust=1778600246331707&usg=AOvVaw1lMV45KF305KUIwXtInZFd) <\- "solved now" *but* -disable-promote-alloca-to-vector was needed before. That pass is broken when you have an array of pointers, IMHO. + * Host: [https://github.com/llvm/llvm-project/issues/54422](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54422&sa=D&source=editors&ust=1778600246331964&usg=AOvVaw1zDpy1xTxWKnqkhINehE2d) + * Shared pointer on device: [https://github.com/llvm/llvm-project/issues/54186](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54186&sa=D&source=editors&ust=1778600246332101&usg=AOvVaw3RdDeIQ3ABPcB1V_Scm7yq) + + + * [https://godbolt.org/z/hzbTxbe8x](https://www.google.com/url?q=https://godbolt.org/z/hzbTxbe8x&sa=D&source=editors&ust=1778600246332204&usg=AOvVaw1z9IZuCQYljIKej86Gi5HZ) + + + * [https://github.com/llvm/llvm-project/issues/54654](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54654&sa=D&source=editors&ust=1778600246332317&usg=AOvVaw07OtX6nU8I0IBJsEdsq7z3) + + + * Plugin rewrite branch: + + + * [https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins&sa=D&source=editors&ust=1778600246332502&usg=AOvVaw2Xtq1TVyNhE1apCstwJ7v9) + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246332798&usg=AOvVaw0e4FOiE5i0tBYW4IkdxeW9) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246332901&usg=AOvVaw1a_7mnaFyTcRH0v3xRvzwu) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246333351&usg=AOvVaw3M3J_o_dB9yniUGOolAF_8) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246333592&usg=AOvVaw0Dt3c5x9pdHGmyrE0mL5UE) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246333878&usg=AOvVaw2S9tM2PX5gvrYP__A5iSWv) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246334092&usg=AOvVaw2FzssKBv8qWRNgeTsfCeJr) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246334610&usg=AOvVaw2wwp87ASRMXMmJ0Kh7R3DD) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246334749&usg=AOvVaw2kTRnZrQdTTb9lJbcFSZQb) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246334857&usg=AOvVaw0yYHf4u510a1OeNUunstKL) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246335015&usg=AOvVaw2xAkjFCIQYCxn63d4GG-2k) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246335154&usg=AOvVaw2HI54PYECZ1p-HY9XjpCaS) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently on staging (https://lab.llvm.org/staging) + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/155&sa=D&source=editors&ust=1778600246335464&usg=AOvVaw2kddfG0s_FGi7edHGwVpiA) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246335555&usg=AOvVaw1Ps8X3KB0fEeAJ0QfrpjlL) + + + * Typically requires ~1 week constant green before moving to production + * [intermittent failures in map_back_race.cpp for x64 offloading target](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54618&sa=D&source=editors&ust=1778600246335765&usg=AOvVaw2zh0G6rMF8_f82U9-kVX6_) [FLAKY] + * [nvptx64-nvidia-cuda::bug49334 failing again](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54081&sa=D&source=editors&ust=1778600246335883&usg=AOvVaw2X5Fs2sVuWUt1kbMP-_We0) [FLAKY] + + + * OMPT target support + + + * Callback support + + + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246336159&usg=AOvVaw2vUHhBKMGSISab2da13QKU) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246336324&usg=AOvVaw22VB6O_N-OEc1bWMGR-oJL) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246336511&usg=AOvVaw020Tcyq_GxEhNUxZPm6uRg) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246337008&usg=AOvVaw0m8NbKDfD3yJnANWgDKEQ2) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246337166&usg=AOvVaw255AVx3lR-37_78MwhaObS) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246337301&usg=AOvVaw3P1dNbKs_XAMmjDQRnNVPu) Based on D99803 + + + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246337444&usg=AOvVaw3EPSBvTlWFLnWqIxi3dHMo)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246337589&usg=AOvVaw1cYD8BPQBHYXF73QK4kge4) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246337950&usg=AOvVaw3NURlxZuC0zI431bRQlhII) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246338427&usg=AOvVaw1cYvrPkaWrL6Gkf7O-Vp89). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246338591&usg=AOvVaw0grkZDZIlGzrebPGNGHn-B) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246338853&usg=AOvVaw0Qmfg4C7tlVxAf8j_whsEE) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246339079&usg=AOvVaw1R6zaLYeM-TTzacqa4buy1) + + + * Linking shared libraries with offloading code + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-04-13.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-04-13.md new file mode 100644 index 0000000..0b67fa9 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-04-13.md @@ -0,0 +1,182 @@ +### 2022, April 13 + +### Agenda + + * New Driver binary format for bundling metadata + + + * [https://reviews.llvm.org/D122069](https://www.google.com/url?q=https://reviews.llvm.org/D122069&sa=D&source=editors&ust=1778600246321545&usg=AOvVaw18rICRZfznBPh_798wWB2Z) + + + * [https://discourse.llvm.org/t/openmp-runtime-code-owner/61594](https://www.google.com/url?q=https://discourse.llvm.org/t/openmp-runtime-code-owner/61594&sa=D&source=editors&ust=1778600246321685&usg=AOvVaw2suEQPHz-ciQBK0Jd3Ggbh) + * New OpenMP driver has been made default + * Compiling CUDA with the new driver is up for review [https://reviews.llvm.org/D123812](https://www.google.com/url?q=https://reviews.llvm.org/D123812&sa=D&source=editors&ust=1778600246321881&usg=AOvVaw0vLhm6X4xjdc0qEnlQZdDm). Allows OpenMP Offloading to be compiled with and call CUDA. + * Omp_target_memcpy_async + + + * [https://reviews.llvm.org/D81989](https://www.google.com/url?q=https://reviews.llvm.org/D81989&sa=D&source=editors&ust=1778600246322071&usg=AOvVaw0wFlhuVL0GEtsOSTRZTGsY) + + + * Issues: + + + * AMD: [https://github.com/llvm/llvm-project/issues/54156](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54156&sa=D&source=editors&ust=1778600246322255&usg=AOvVaw03Y5J5K9ez--bAPrmbCj1H) + * AMD: [https://github.com/llvm/llvm-project/issues/52706](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/52706&sa=D&source=editors&ust=1778600246322386&usg=AOvVaw1wuvaW5sWywvOJM0BaSAzf) <\- "solved now" *but* -disable-promote-alloca-to-vector was needed before. That pass is broken when you have an array of pointers, IMHO. + * Host: [https://github.com/llvm/llvm-project/issues/54422](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54422&sa=D&source=editors&ust=1778600246322644&usg=AOvVaw09UMPFEcgy0xXFFK0gjaaM) + * Shared pointer on device: [https://github.com/llvm/llvm-project/issues/54186](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54186&sa=D&source=editors&ust=1778600246322780&usg=AOvVaw3NXmHkt-DZ8FVsVZMjBmq9) + + + * [https://godbolt.org/z/hzbTxbe8x](https://www.google.com/url?q=https://godbolt.org/z/hzbTxbe8x&sa=D&source=editors&ust=1778600246322869&usg=AOvVaw1xGCALYJ1N5jtrve11r872) + + + * [https://github.com/llvm/llvm-project/issues/54654](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54654&sa=D&source=editors&ust=1778600246322990&usg=AOvVaw0sdTW2u3gDRD9M3Wyr8pf8) Solved. + + + * Plugin rewrite branch: + + + * [https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commits/omp_cleanup_gpu_plugins&sa=D&source=editors&ust=1778600246323207&usg=AOvVaw2u8WJ5i3A35iHi5WYoDGhM) + + + * Exploring using Pre-Commit CI with OpenMP Phabricator reviews (talking with Louis Dionne) + + + * LLVMdev '21: Pre-Commit CI in LLVM: A Case Study of Libc++ - Louis Dionne + + + * [https://www.youtube.com/watch?v=kP8CPwaDm_U&t=1h40m15s](https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkP8CPwaDm_U%26t%3D1h40m15s&sa=D&source=editors&ust=1778600246323526&usg=AOvVaw3a0gyo2XrGoe0upJACyMGs) + * [https://buildkite.com/llvm-project](https://www.google.com/url?q=https://buildkite.com/llvm-project&sa=D&source=editors&ust=1778600246323627&usg=AOvVaw0-AMw8Ncf90qB2D3jZgJY8) + + + * 12/15 status update: + + + * Louis created a buildkite OpenMP "team" and invited Johannes & Michael Kruse + * Mikhail Goncharov ([goncharov@google.com](mailto:goncharov@google.com)), who set up the BuildKite ⇔ Phabricator integration, now working with Michael Kruse on setting up builds & agents with GPUs: [https://github.com/google/llvm-premerge-checks/issues/368](https://www.google.com/url?q=https://github.com/google/llvm-premerge-checks/issues/368&sa=D&source=editors&ust=1778600246324091&usg=AOvVaw0eD4GS1oKpIuuIytEM_sFV) + + + * 12/22 status update: + + + * Dependencies for host-offloading added (libelf-dev), now running in pre-merge checks + + + * With [https://reviews.llvm.org/D116906](https://www.google.com/url?q=https://reviews.llvm.org/D116906&sa=D&source=editors&ust=1778600246324340&usg=AOvVaw3KfknYSlPvmXtisSb20zUA) all OvO test pass (O3) on MI100, + + + * OpenMC on MI100 builds in unity build (sometimes) + * What else is broken on AMD? + + + * QMCPACK complex reduction + * [https://github.com/llvm/llvm-project/issues/53290](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53290&sa=D&source=editors&ust=1778600246324662&usg=AOvVaw0V5KvReeeZnWKAvDnOT-7o) + * Printf + + + + * JIT support + + + * Prototype: [https://github.com/shiltian/llvm-project/tree/jit](https://www.google.com/url?q=https://github.com/shiltian/llvm-project/tree/jit&sa=D&source=editors&ust=1778600246324897&usg=AOvVaw3_mfef2LKrMkafgdQ3LI51) + * Optimization: kernel argument specialization, pointer alignment, # teams and # threads folding, # registers, readonly global specialization + * Image caching + * Portability: e.g. image of sm_35 but run on sm_75 + * Kernel time improvement: SU3 ~6.5%, XSBench ~8.27%, 503.postencil ~300% + + + * Non-standard ompx OpenMP library + * GPU working group [https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html](https://www.google.com/url?q=https://lists.llvm.org/pipermail/llvm-dev/2022-January/154618.html&sa=D&source=editors&ust=1778600246325440&usg=AOvVaw1u2dbEws8udDzmhefQcYvq) + * Interop directive + + + * [https://reviews.llvm.org/D106674](https://www.google.com/url?q=https://reviews.llvm.org/D106674&sa=D&source=editors&ust=1778600246325591&usg=AOvVaw1_4wm6TIbPjHJ07aD76bO9) (runtime) + * [https://reviews.llvm.org/D105876](https://www.google.com/url?q=https://reviews.llvm.org/D105876&sa=D&source=editors&ust=1778600246325696&usg=AOvVaw25VT--KuzO0gd8aIxuKo3m) (irbuilder) + + + * OMP assumes, initial patch: [https://reviews.llvm.org/D91980](https://www.google.com/url?q=https://reviews.llvm.org/D91980&sa=D&source=editors&ust=1778600246325836&usg=AOvVaw2OUbYxKRvLTJYvyJUEVmPd) + * [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246325938&usg=AOvVaw1z7gSq6aNWBY2wvdUGifqF) (Revisit) + + + * [WIP][RFC] Sample code for containerizing offload images into one ELF + + + * NVPTX buildbots + + + * Currently on staging (https://lab.llvm.org/staging) + + + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/155&sa=D&source=editors&ust=1778600246326263&usg=AOvVaw2vNeiD6yvQBtNpHxCusO5q) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/154&sa=D&source=editors&ust=1778600246326365&usg=AOvVaw3rOUw7dihXXd-DRM3kQqxj) + + + * Typically requires ~1 week constant green before moving to production + * [intermittent failures in map_back_race.cpp for x64 offloading target](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54618&sa=D&source=editors&ust=1778600246326582&usg=AOvVaw2dXbrQJDmnVgK34uL0kC4Q) [FLAKY] + * [nvptx64-nvidia-cuda::bug49334 failing again](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/54081&sa=D&source=editors&ust=1778600246326714&usg=AOvVaw06UA_JKhkvxQ4BQ5Eucjjr) [FLAKY] + + + * OMPT target support + + + * Callback support + + + * [D113728](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246326881&usg=AOvVaw23vGuLJ7PFgGbJGShNj1kU) will be split up into a stack of smaller patches. Current top of stack: [D124070](https://www.google.com/url?q=https://reviews.llvm.org/D124070&sa=D&source=editors&ust=1778600246326991&usg=AOvVaw2Cmt8zN74EU4UIjy4Kdkra) + * Presentation slides about OMPT initialization for target devices: [https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc](https://www.google.com/url?q=https://rice.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc&sa=D&source=editors&ust=1778600246327173&usg=AOvVaw0FJYPiM0L_xjmnJPAtR3Ve) + * Needs review [⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246327342&usg=AOvVaw2TABU4D5mkQ5pgcJhWsClT) + + + * Device tracing support + + + * Needs review [⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246327518&usg=AOvVaw1vTEl7YiNV5V4f17JOrB_x) + + + * Ravi: Sharing class ompt_device_callbacks_t between plugin and runtime breaks building on windows. Dhruva: D113728 and D118424 do not introduce sharing of any C++ object between libomp, libomptarget, or plugins -- so Windows build should not have this problem. However, a Windows build has not been verified. + * Possibly revert the 2-3 patches based on an alternative implementation + + + * [⚙ D99803 [openmp] Add OMPT initialization in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D99803&sa=D&source=editors&ust=1778600246328013&usg=AOvVaw29kBWZOKWA6uPnAGurLn-q) reverted + * [⚙ D106975 [openmp] Update OMPT declaration and implementation in the runtime (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106975&sa=D&source=editors&ust=1778600246328176&usg=AOvVaw1GKQ2_ZsAI3u0U5Cebe0t1) Based on D99803 + * [⚙ D106976 [openmp] Initialize OMPT in libomptarget (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D106976&sa=D&source=editors&ust=1778600246328308&usg=AOvVaw1hBwzHkAXTxpD5SQwphSq5) Based on D99803 + + + * Related: [https://dl.acm.org/doi/abs/10.1145/3458744.3473358](https://www.google.com/url?q=https://dl.acm.org/doi/abs/10.1145/3458744.3473358&sa=D&source=editors&ust=1778600246328465&usg=AOvVaw2_Z6OXP4-iakdyw7sCA5Tt)​​​​​​​ + + + * Libarcher in Ubuntu/Debian packages ([https://bugs.llvm.org/show_bug.cgi?id=45945](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D45945&sa=D&source=editors&ust=1778600246328614&usg=AOvVaw0uGk7ZOH2ZODFn9tzWhl9A) issue with -Wl,-Bsymbolic-functions flag) - tried to ping [pkg-llvm-team@lists.alioth.debian.org](mailto:pkg-llvm-team@lists.alioth.debian.org), but no reply comment from Sylvestre, but no solution yet + * [https://bugs.llvm.org/show_bug.cgi?id=51117 ](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51117&sa=D&source=editors&ust=1778600246328969&usg=AOvVaw17si2K4r1AqcVdpNS8vfjB) + + + * Report contains an extensive list of runtime/libarcher tests, that fail when building llvm-13 with gcc-11 on certain machines (could not reproduce) + + + * Any update on CUDA issues with ELF notes? + + + * Not yet, still waiting <\- been a long time, perhaps indicative that we should wrap the cuda object + * Uploaded sample code for containerizing several images into one ELF: [https://reviews.llvm.org/D112103](https://www.google.com/url?q=https://reviews.llvm.org/D112103&sa=D&source=editors&ust=1778600246329447&usg=AOvVaw2JvzCk5qP3OLtohd0sM1bc). It is based on [https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp](https://www.google.com/url?q=https://github.com/intel/llvm/blob/sycl/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp&sa=D&source=editors&ust=1778600246329622&usg=AOvVaw2XfhQd2oQ-zF5at-WfMuXv) + + + * Multiple architecture offload compilation + + + * Generation of multi-image binary by clang and runtime's ability to load appropriate image: [[OpenMP] Multi architecture compilation support] [https://reviews.llvm.org/D106870](https://www.google.com/url?q=https://reviews.llvm.org/D106870&sa=D&source=editors&ust=1778600246329914&usg=AOvVaw0L8KzciWabuSBqWKgvQaeq) + * Query current offload architecture to find "appropriate image": [OffloadArch] Library to query properties of current offload architecture [https://reviews.llvm.org/D106960](https://www.google.com/url?q=https://reviews.llvm.org/D106960&sa=D&source=editors&ust=1778600246330150&usg=AOvVaw354rtaXUJrJ9qrsSzUcH8S) + + + * Linking shared libraries with offloading code + + + +### Open Bugs + + * [https://bugs.llvm.org/show_bug.cgi?id=51737](https://www.google.com/url?q=https://bugs.llvm.org/show_bug.cgi?id%3D51737&sa=D&source=editors&ust=1778600246330451&usg=AOvVaw1mSHatdXDdCdbu-OJ4v7oQ) + + + +### Patches to look at + +[⚙ D113728 [libomptarget] [amdgpu] Foundation for OMPT target callback support (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D113728&sa=D&source=editors&ust=1778600246330708&usg=AOvVaw1dCgZ9kNk4hVGLqzdBdlFM) + +[⚙ D118424 Implementation of OMPT target device tracing (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D118424&sa=D&source=editors&ust=1778600246330837&usg=AOvVaw04U9syZNSiRs493NmnbGsz) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-04-20.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-04-20.md new file mode 100644 index 0000000..1fb5afb --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-04-20.md @@ -0,0 +1,10 @@ +### 2022, April 20 + +Agenda + + * New OpenMP driver has been made default + * Compiling CUDA with the new driver is up for review [https://reviews.llvm.org/D123812](https://www.google.com/url?q=https://reviews.llvm.org/D123812&sa=D&source=editors&ust=1778600246321021&usg=AOvVaw1aFi7Kdmt2UOsPxlSUnFuD). Allows OpenMP Offloading to be compiled with and call CUDA. + * Using TBB + OpenMP offload + * 128bit on GPU + * Lambda captures + * Post processing" for lookups w/o reference count updates diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-04-27.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-04-27.md new file mode 100644 index 0000000..06a9464 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-04-27.md @@ -0,0 +1,18 @@ +### 2022, April 27 + +Agenda + + * Compiling CUDA with the new driver is up for review [https://reviews.llvm.org/D123812](https://www.google.com/url?q=https://reviews.llvm.org/D123812&sa=D&source=editors&ust=1778600246320173&usg=AOvVaw0aN4bEPWQE6PXxRm0zqwVm). Allows OpenMP Offloading to be compiled with and call CUDA. + * Multi-arch compilation support + + + * First patch in the series posted for review: + + + * [D124525](https://www.google.com/url?q=https://reviews.llvm.org/D124525&sa=D&source=editors&ust=1778600246320411&usg=AOvVaw1br3ttLH-5zgnYw0C3ltu8): [OpenMP][ClangLinkerWrapper] Extending linker wrapper to embed metadata for multi-arch fat binaries + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + * Lambda captures + * "Post processing" for lookups w/o reference count updates diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-05-04.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-05-04.md new file mode 100644 index 0000000..f057599 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-05-04.md @@ -0,0 +1,35 @@ +### 2022, May 4 + +Agenda + + * Compiling CUDA with the new driver is up for review [https://reviews.llvm.org/D123812](https://www.google.com/url?q=https://reviews.llvm.org/D123812&sa=D&source=editors&ust=1778600246318637&usg=AOvVaw3QMEue02hejQJryBsFmLEg). Allows OpenMP Offloading to be compiled with and call CUDA. + * Patch that allows OpenMP to use -offload-arch= [https://reviews.llvm.org/D124721](https://www.google.com/url?q=https://reviews.llvm.org/D124721&sa=D&source=editors&ust=1778600246318830&usg=AOvVaw2oaxgT1q7j5oQLFGJjYuTK) + + + * Should we infer -fopenmp-target= if --offload-arch is present? + * Can be used to make static libraries supporting multiple architectures as needed. + + + * Should we embed the -cuda-install path into the device binary at compile time and use that? + + + * Every PTX file is expected to be made with a valid CUDA install + * It's possible that the install could've changed between compilation and building + + + * Could default to $PATH if not found + + + * Multi-arch compilation support + + + * First patch in the series posted for review: + + + * [D124525](https://www.google.com/url?q=https://reviews.llvm.org/D124525&sa=D&source=editors&ust=1778600246319569&usg=AOvVaw1i0Qr-vvOOSOQ8X36ojFw0): [OpenMP][ClangLinkerWrapper] Extending linker wrapper to embed metadata for multi-arch fat binaries + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + * Lambda captures + * "Post processing" for lookups w/o reference count updates diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-05-18.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-05-18.md new file mode 100644 index 0000000..e387f7a --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-05-18.md @@ -0,0 +1,58 @@ +### 2022, May 18 + +Agenda + + * Compiling CUDA with the new driver is up for review [https://reviews.llvm.org/D123812](https://www.google.com/url?q=https://reviews.llvm.org/D123812&sa=D&source=editors&ust=1778600246316377&usg=AOvVaw3yQ5D4_mG_ub6pBVHZ1CdS). Allows OpenMP Offloading to be compiled with and call CUDA. + * Patch that allows OpenMP to use -offload-arch= [https://reviews.llvm.org/D124721](https://www.google.com/url?q=https://reviews.llvm.org/D124721&sa=D&source=editors&ust=1778600246316570&usg=AOvVaw0O36ZGyMXbb9zU8ZoPiXwN) + * Introduced clang-offload-packager + + + * Basically fatbinary for LLVM offloading + + + * Should we embed the -cuda-install path into the device binary at compile time and use that? + + + * Every PTX file is expected to be made with a valid CUDA install + * It's possible that the install could've changed between compilation and building + + + * Could default to $PATH if not found + + + * What does static / hidden mean on the device + * Multi-arch compilation support + + + * First patch in the series posted for review: + + + * [D124525](https://www.google.com/url?q=https://reviews.llvm.org/D124525&sa=D&source=editors&ust=1778600246317233&usg=AOvVaw0xd6i4DMLD83p3g0iZoAU-): [OpenMP][ClangLinkerWrapper] Extending linker wrapper to embed metadata for multi-arch fat binaries + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246317568&usg=AOvVaw2p1EDTjhUKQar9-hAhCK6k) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246317729&usg=AOvVaw3XRxSklBYNma2Rg8rYar8s) only adds the plugin runtime support + + + * Add another argument to __tgt entry functions for interoperability? + + + * Add dynamic memory and stream like with <<< >>> in cuda + * `omp target …. ompx_global_shared(N)` + * + + * Lambda captures + * "Post processing" for lookups w/o reference count updates + * Device atomics + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246318288&usg=AOvVaw1YpznIPmXo5tyIYlEjmPxf) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246318411&usg=AOvVaw0tCYWkr2YJO1oKBSohHBbD) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-05-25.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-05-25.md new file mode 100644 index 0000000..c3d211c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-05-25.md @@ -0,0 +1,55 @@ +### 2022, May 25 + +Agenda + + * Introduced clang-offload-packager + + + * Basically fatbinary for LLVM offloading + + + * What does static / hidden mean on the device + * Multi-arch compilation support + + + * First patch in the series posted for review: + + + * [D124525](https://www.google.com/url?q=https://reviews.llvm.org/D124525&sa=D&source=editors&ust=1778600246314473&usg=AOvVaw0zw0LdH3tOlLJ6p2rAEYOU): [OpenMP][ClangLinkerWrapper] Extending linker wrapper to embed metadata for multi-arch fat binaries + + + * Changed the __tgt_device_image to include ImageInfo. + * Image metadata stays with the image, gets populated with creation of bin_desc struct. + * At the time of env compatibility testing if ImageInfo is found to be null, we consider that image was built with an older compiler. + * Compatibility issues? + + + * [Pending patch] OffloadArch tool/library to query system arch + * [Pending patch] Driver changes to generate image files for different architectures and pass to clang-offload-packager. + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246315331&usg=AOvVaw2XOFYTgBq9kQp4cixPaIAw) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246315503&usg=AOvVaw05ROpohr986k1mEzqbdbGr) only adds the plugin runtime support + + + * Add another argument to __tgt entry functions for interoperability? + + + * Add dynamic memory and stream like with <<< >>> in cuda + * `omp target …. ompx_global_shared(N)` + + + * Lambda captures + * Device atomics + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246316019&usg=AOvVaw093OuKkRl_SPJAzB7OGdDL) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246316156&usg=AOvVaw1QcNQ3PUMhBR75fk-xRlzd) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-06-01.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-06-01.md new file mode 100644 index 0000000..98737cc --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-06-01.md @@ -0,0 +1,67 @@ +### 2022, June 1 + +Agenda + + * Introduced clang-offload-packager + + + * Basically fatbinary for LLVM offloading + + + * What does static / hidden mean on the device + * Get rid of nowait variants in libomptarget + * Multi-arch compilation support + + + * First patch in the series posted for review: + + + * [D124525](https://www.google.com/url?q=https://reviews.llvm.org/D124525&sa=D&source=editors&ust=1778600246312237&usg=AOvVaw3dh11FG9eOrcvbqIpzwFUV): [OpenMP][ClangLinkerWrapper] Extending linker wrapper to embed metadata for multi-arch fat binaries + + + * Changed the __tgt_device_image to include ImageInfo. + * Image metadata stays with the image, gets populated with creation of bin_desc struct. + * At the time of env compatibility testing if ImageInfo is found to be null, we consider that image was built with an older compiler. + * Tgt_bin_desc + + + * DeviceImages[] + + + * Tgt_device_image + + + * Tgt_image_info + + + * image_info_version + + + * [Pending patch] OffloadArch tool/library to query system arch + * [Pending patch] Driver changes to generate image files for different architectures and pass to clang-offload-packager. + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246313298&usg=AOvVaw1xLmCrNleveaVeuwV4aq9q) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246313478&usg=AOvVaw2FRTqHmtXTCMjYQG4lFSze) only adds the plugin runtime support + + + * Add another argument to __tgt entry functions for interoperability? + + + * Add dynamic memory and stream like with <<< >>> in cuda + * `omp target …. ompx_global_shared(N)` + + + * Device atomics + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246313916&usg=AOvVaw19J_3ZoD_w1KWM42942Gjy) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246314028&usg=AOvVaw2R0hIQaV2ehp9aocARqLmP) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-06-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-06-08.md new file mode 100644 index 0000000..e93fa1c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-06-08.md @@ -0,0 +1,64 @@ +### 2022, June 8 + +Agenda + + * * What does static / hidden mean on the device + * LLVM-objdump for offloading images + + + * [https://reviews.llvm.org/D126904](https://www.google.com/url?q=https://reviews.llvm.org/D126904&sa=D&source=editors&ust=1778600246309307&usg=AOvVaw3TGHvkTsti1qZKQ9hgGTbC) + * https://clang.llvm.org/docs/ClangOffloadPackager.html + + + * Multi-arch compilation support + + + * Introduced clang-offload-packager + * Basically fatbinary for LLVM offloading + * https://reviews.llvm.org/D127304 + * [D127246](https://www.google.com/url?q=https://reviews.llvm.org/D127246&sa=D&source=editors&ust=1778600246309668&usg=AOvVaw0MKT_KM__ecwxnVq4S_ifE): [LinkerWrapper] Rework the linker wrapper and use owning binaries + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246309804&usg=AOvVaw0jEgu1MPChNMtEv2E3zySU): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * First patch in the series posted for review: + + + * Going to use [D126836](https://www.google.com/url?q=https://reviews.llvm.org/D126836&sa=D&source=editors&ust=1778600246310013&usg=AOvVaw0Bqn7wmWTwJI5x4KNvQJ6F) to move the compatibility testing to plugin + * [D124525](https://www.google.com/url?q=https://reviews.llvm.org/D124525&sa=D&source=editors&ust=1778600246310139&usg=AOvVaw0mCvV39V5QwCylC_Zrb59l): [OpenMP][ClangLinkerWrapper] Extending linker wrapper to embed metadata for multi-arch fat binaries + + + * Changed the __tgt_device_image to include ImageInfo. + + + * [Pending patch] OffloadArch tool/library to query system arch + * [Pending patch] Driver changes to generate image files for different architectures and pass to clang-offload-packager. + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246310736&usg=AOvVaw2gXI4HLYrqep-TJuMku7Vw) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246310911&usg=AOvVaw3h59BS6Btdr6oDaG3Z_0ea) only adds the plugin runtime support + + + * Add another argument to __tgt entry functions for interoperability? + + + * Add dynamic memory and stream like with <<< >>> in cuda + * `omp target …. ompx_global_shared(N)` + + + * Device atomics + * Meta directive + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246311455&usg=AOvVaw1aHWxkFOSdZD4FD91QDO0R) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246311583&usg=AOvVaw1XY3IsguGAUpHJ4KElAAmr) + * https://github.com/llvm/llvm-project/issues/55943 + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-06-15.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-06-15.md new file mode 100644 index 0000000..85c4381 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-06-15.md @@ -0,0 +1,76 @@ +### 2022, June 15 + +Agenda + + * What does static / hidden mean on the device + * LLVM-objdump for offloading images + + + * [https://reviews.llvm.org/D126904](https://www.google.com/url?q=https://reviews.llvm.org/D126904&sa=D&source=editors&ust=1778600246306295&usg=AOvVaw0KO0ta3bhcowKNex-m-IOw) + * https://clang.llvm.org/docs/ClangOffloadPackager.html + + + * Multi-arch compilation support + + + * Introduced clang-offload-packager + * Basically fatbinary for LLVM offloading + * https://reviews.llvm.org/D127304 + * [D127246](https://www.google.com/url?q=https://reviews.llvm.org/D127246&sa=D&source=editors&ust=1778600246306641&usg=AOvVaw02-0pdDztqeQkJPSf9tUni): [LinkerWrapper] Rework the linker wrapper and use owning binaries + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246306765&usg=AOvVaw235AQZlJxStwGuRyrwrLGc): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * First patch in the series posted for review: + + + * Going to use [D126836](https://www.google.com/url?q=https://reviews.llvm.org/D126836&sa=D&source=editors&ust=1778600246306986&usg=AOvVaw24V6KHdzfKo3qhcytLi8ET) to move the compatibility testing to plugin + * [D124525](https://www.google.com/url?q=https://reviews.llvm.org/D124525&sa=D&source=editors&ust=1778600246307098&usg=AOvVaw0CIFcLUZIDegSWKoyI5bD4): [OpenMP][ClangLinkerWrapper] Extending linker wrapper to embed metadata for multi-arch fat binaries + + + * Changed the __tgt_device_image to include ImageInfo. + + + * [Pending patch] OffloadArch tool/library to query system arch + * [Pending patch] Driver changes to generate image files for different architectures and pass to clang-offload-packager. + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246307584&usg=AOvVaw0MSy9hsQr3E3ZH5iaVtB5d) + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246307678&usg=AOvVaw1JBttEwJJ5wXW_2w6u3FdM) + * + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246307942&usg=AOvVaw0mtDd33k3pnZoxhdf8G6kg) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246308103&usg=AOvVaw0nQz11l4XgueCLPkO1-130) only adds the plugin runtime support + + + * Add another argument to __tgt entry functions for interoperability? + + + * Add dynamic memory and stream like with <<< >>> in cuda + * `omp target …. ompx_global_shared(N)` + + + * Device atomics + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246308563&usg=AOvVaw1VvK_Op_AV61hjWdJj9Dlv) + + + * + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246308745&usg=AOvVaw3bnjctQBWR2f8mxfmVjWN5) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246308858&usg=AOvVaw3457YKBOsmo3hRcFPojvQJ) + * https://github.com/llvm/llvm-project/issues/55943 + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-06-29.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-06-29.md new file mode 100644 index 0000000..ddbdc25 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-06-29.md @@ -0,0 +1,60 @@ +### 2022, June 29 + +Agenda + + * Reformat Libomptarget to use consistent variable case style (e.g. device_num -> DeviceNum). + * Remove i386 from the clang tests + * LLVM-objdump for offloading images + + + * [https://reviews.llvm.org/D126904](https://www.google.com/url?q=https://reviews.llvm.org/D126904&sa=D&source=editors&ust=1778600246303653&usg=AOvVaw2f3Az-3m-nMUi4edn89ysp) + * https://clang.llvm.org/docs/ClangOffloadPackager.html + + + * Multi-arch compilation support + + + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246303844&usg=AOvVaw28Gj_qNKhDhyoB8MrDZQC5): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D127432](https://www.google.com/url?q=https://reviews.llvm.org/D127432&sa=D&source=editors&ust=1778600246303968&usg=AOvVaw22vcQpEEiK7jS4uvHUYwZu): [Libomptarget] Add support for offloading binaries in libomptarget + * [D127505](https://www.google.com/url?q=https://reviews.llvm.org/D127505&sa=D&source=editors&ust=1778600246304090&usg=AOvVaw1Z4XNl1ELjFWJGBUFsJ9aU): [Libomptarget] Add checks for CUDA subarchitecture using new info + * [D127769](https://www.google.com/url?q=https://reviews.llvm.org/D127769&sa=D&source=editors&ust=1778600246304225&usg=AOvVaw12y7_F7XE13hA6H_ZyJqU6): [Libomptarget] Add checks for AMDGPU TargetID using new image info + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246304348&usg=AOvVaw3rKuts3D9MMzGEJSUhTAaH): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D128090](https://www.google.com/url?q=https://reviews.llvm.org/D128090&sa=D&source=editors&ust=1778600246304479&usg=AOvVaw2404mifvrTTwg2EjJhHmi2): [Clang][OpenMP] Process multi-arch compilation options given via -march + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246304680&usg=AOvVaw2Cu1vH_biXMhs5M6kaBH9Z) + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246304779&usg=AOvVaw1a9l4RefusB1OIPm5FTAou) + * + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246305034&usg=AOvVaw2vppQq7ya0gFNReo5-pj15) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246305195&usg=AOvVaw2NUZrtCpbwdYMRUgDaQbGK) only adds the plugin runtime support + + + * Add another argument to __tgt entry functions for interoperability? + + + * [https://reviews.llvm.org/D128549](https://www.google.com/url?q=https://reviews.llvm.org/D128549&sa=D&source=editors&ust=1778600246305410&usg=AOvVaw0Jv99M6uHgcyeU3MREb8FC) + * Add dynamic memory and stream like with <<< >>> in cuda + * `omp target …. ompx_global_shared(N)` + + + * Device atomics + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246305766&usg=AOvVaw2xFioMoL4mVmuA7sBimoyt) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246305957&usg=AOvVaw0TUb6zCe_vyHD4fXVQNYQ7) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-07-06.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-07-06.md new file mode 100644 index 0000000..8a18ab0 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-07-06.md @@ -0,0 +1,97 @@ +### 2022, July 6 + +Agenda + + * Reformat Libomptarget to use consistent variable case style (e.g. device_num -> DeviceNum). + + + * [https://reviews.llvm.org/rGd27d0a673c64068c5f3a1981c428e0ef5cff8062](https://www.google.com/url?q=https://reviews.llvm.org/rGd27d0a673c64068c5f3a1981c428e0ef5cff8062&sa=D&source=editors&ust=1778600246299303&usg=AOvVaw3XZtKNxHeoqXZRW6teBaHf) + + + * Remove i386 from the clang tests + * LLVM-objdump for offloading images + + + * [https://reviews.llvm.org/D126904](https://www.google.com/url?q=https://reviews.llvm.org/D126904&sa=D&source=editors&ust=1778600246299509&usg=AOvVaw16ivQ9Mz1weRAp3lwbC-rs) + * [https://clang.llvm.org/docs/ClangOffloadPackager.html](https://www.google.com/url?q=https://clang.llvm.org/docs/ClangOffloadPackager.html&sa=D&source=editors&ust=1778600246299623&usg=AOvVaw0pLGa6EzLSPUOK5U-txqu8) + + + * LLVM objcopy for offloading images + + + * Should allow us to treat them like the old offload-bundler + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246299957&usg=AOvVaw1UOOF8uS-8XzMnb9txULJD) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246300058&usg=AOvVaw3EqKcAU4SgVwRxd_0DOZcq) + + + * Multi-arch compilation support + + + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246300216&usg=AOvVaw19WJ2SYIMVulMSFk4jR4J6): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D127432](https://www.google.com/url?q=https://reviews.llvm.org/D127432&sa=D&source=editors&ust=1778600246300351&usg=AOvVaw0LULjjZ43EZ_ujC72sJq1r): [Libomptarget] Add support for offloading binaries in libomptarget + * [D127505](https://www.google.com/url?q=https://reviews.llvm.org/D127505&sa=D&source=editors&ust=1778600246300474&usg=AOvVaw23iMgSLBBw2HfSjVrFOmr2): [Libomptarget] Add checks for CUDA subarchitecture using new info + * [D127769](https://www.google.com/url?q=https://reviews.llvm.org/D127769&sa=D&source=editors&ust=1778600246300609&usg=AOvVaw0G44T_0NyxH_XmIlfOiVJN): [Libomptarget] Add checks for AMDGPU TargetID using new image info + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246300740&usg=AOvVaw1kab2LW-m5z_-y83Du5zSg): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D128090](https://www.google.com/url?q=https://reviews.llvm.org/D128090&sa=D&source=editors&ust=1778600246300863&usg=AOvVaw03NRIYuPPNm8MS_q3nyR6A): [Clang][OpenMP] Process multi-arch compilation options given via -march + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246301060&usg=AOvVaw3EdI26BQPPrAyIsPasHUcK) (gdb plugin) + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246301169&usg=AOvVaw3qBFjJhlLVbLpzP3P7iCE0) (ompd tests based on gdb plugin) + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246301433&usg=AOvVaw3QRjY3IDMctM6Sb9yU23B5) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246301601&usg=AOvVaw0R__Rh-SLjhTik9atVZ482) only adds the plugin runtime support + + + * Change the target interface to __tgt_target_kernel and use a struct for the arguments. + + + * [D128549](https://www.google.com/url?q=https://reviews.llvm.org/D128549&sa=D&source=editors&ust=1778600246301803&usg=AOvVaw0l4y6RnKRmPKzEXtsOc5s_) [Libomptarget] Implement a unified kernel entry function + * [D128817](https://www.google.com/url?q=https://reviews.llvm.org/D128817&sa=D&source=editors&ust=1778600246301917&usg=AOvVaw0SDxYjCNHHTlPEx0RsROsE) [Libomptarget] Use new tripcount argument instead of the push function + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246302238&usg=AOvVaw1eJH-IK97L5stTi5d0v47L) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246302431&usg=AOvVaw34rQPVrzMRBxr4fRHy608k) + * Updating default version to 5.1 + + + * Do we want to do it? + * When? Before llvm-15 branching? + * [https://clang.llvm.org/docs/OpenMPSupport.html#openmp-5-1-implementation-details](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246302713&usg=AOvVaw0MWKePp0EOaUHgt2vGCo3s) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246302882&usg=AOvVaw2yNyy98ht03Hkpm99-TCxy) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246302997&usg=AOvVaw3B-_p7DeP_VVcMNVZ7xkHp) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246303108&usg=AOvVaw2iNOj8aQw8i8jRehWZ9yH9) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246303233&usg=AOvVaw3IgXr2Mw9ohvBCpGlz1-XV) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-07-13.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-07-13.md new file mode 100644 index 0000000..ef9f91a --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-07-13.md @@ -0,0 +1,105 @@ +### 2022, July 13 + +Agenda + + * Linking llvm libs into libomptarget (instead of copy/pasting from llvm for D127432 etc) + + + * Previously thwarted by license differences, since been resolved + * Every time this is proposed people come out of the woodwork to complain about the library they use from llvm using other parts of llvm + * Let's tell those people to just build llvm if they want to use parts of llvm + + + * Updating default version to 5.1 + + + * Do we want to do it? + * When? Before llvm-15 branching? + * [https://clang.llvm.org/docs/OpenMPSupport.html#openmp-5-1-implementation-details](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246295268&usg=AOvVaw3X8K1YdFyKBcY4adYMhNh_) + + + * Deprecating the old driver completely for OpenMP before LLVM15 + * LLVM objcopy for offloading images + + + * Should allow us to treat them like the old offload-bundler + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246295641&usg=AOvVaw03F3TvI8Wwq_VrivDsSLmw) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246295741&usg=AOvVaw08CcAAmRz8JwXls1pBntSV) + + + * Multi-arch compilation support + + + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246295862&usg=AOvVaw3HIUQ9XHBB97Cb5wku-PRp): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D127432](https://www.google.com/url?q=https://reviews.llvm.org/D127432&sa=D&source=editors&ust=1778600246295984&usg=AOvVaw2fIHONXvNmrFrbtEVv-hic): [Libomptarget] Add support for offloading binaries in libomptarget + * [D127505](https://www.google.com/url?q=https://reviews.llvm.org/D127505&sa=D&source=editors&ust=1778600246296103&usg=AOvVaw2t8SDO_9Y7t6exLOW_7fkg): [Libomptarget] Add checks for CUDA subarchitecture using new info + * [D127769](https://www.google.com/url?q=https://reviews.llvm.org/D127769&sa=D&source=editors&ust=1778600246296238&usg=AOvVaw2b18NEH9sAjLpioHyZPdfl): [Libomptarget] Add checks for AMDGPU TargetID using new image info + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246296369&usg=AOvVaw2RfF_cHA3bPnomYwBS_TCX): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D128090](https://www.google.com/url?q=https://reviews.llvm.org/D128090&sa=D&source=editors&ust=1778600246296496&usg=AOvVaw0hyRby0Wd_f-sZVdmbfuBP): [Clang][OpenMP] Process multi-arch compilation options given via -march + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246296693&usg=AOvVaw2K_qvMe8zHCMwzM-R5Aus2) (gdb plugin) - landed! + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246296802&usg=AOvVaw3lQteFlmPUsEs7AQIuvRxn) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * _OPENMP (Joachim) + + + * Currently 201611 (= TR4 date - aka 5.0 Preview 1) + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246297255&usg=AOvVaw2lZRBVHKeToHzIxzN3QdpY) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246297418&usg=AOvVaw2v2oNZvvzfzbsw1J6Cxlx3) only adds the plugin runtime support + + + * Change the target interface to __tgt_target_kernel and use a struct for the arguments. + + + * [D128549](https://www.google.com/url?q=https://reviews.llvm.org/D128549&sa=D&source=editors&ust=1778600246297625&usg=AOvVaw1G-MbVw_Wm8Oq6wpth9Ufm) [Libomptarget] Implement a unified kernel entry function + * [D128817](https://www.google.com/url?q=https://reviews.llvm.org/D128817&sa=D&source=editors&ust=1778600246297740&usg=AOvVaw2ZFLSio-PD3VMDak6JwXYR) [Libomptarget] Use new tripcount argument instead of the push function + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246298093&usg=AOvVaw1j1JM9PMvtZjD7V1-lgj8N) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246298286&usg=AOvVaw24LlN1k1bFNtGzaOJZqo4l) + * -O3 optimization for new Device RTL + + + * [https://reviews.llvm.org/D129344](https://www.google.com/url?q=https://reviews.llvm.org/D129344&sa=D&source=editors&ust=1778600246298425&usg=AOvVaw1JQK9BSTegST0UKuAnKN1F) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246298613&usg=AOvVaw18OucyUD1dbTBZF1dd6WHq) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246298731&usg=AOvVaw01MTzX1RK_QJQMA1rNtueq) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246298841&usg=AOvVaw1INtDPqcjnMqBfete1B-W0) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246298951&usg=AOvVaw2f8dFgc_IBTNqEr0OfTHhe) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-07-20.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-07-20.md new file mode 100644 index 0000000..ebe5176 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-07-20.md @@ -0,0 +1,116 @@ +### 2022, July 20 + +Agenda + + * Linking llvm libs into libomptarget (instead of copy/pasting from llvm for D127432 etc) + + + * Previously thwarted by license differences, since been resolved + * Every time this is proposed people come out of the woodwork to complain about the library they use from llvm using other parts of llvm + * Let's tell those people to just build llvm if they want to use parts of llvm + * https://reviews.llvm.org/D129875 + + + * Updating default version to 5.1 + + + * Do we want to do it? + * When? Before llvm-15 branching? + * [https://clang.llvm.org/docs/OpenMPSupport.html#openmp-5-1-implementation-details](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246290646&usg=AOvVaw0P4s9kngyQnTkDBwpbuAN1) + + + * Deprecating the old driver completely for OpenMP + + + * https://reviews.llvm.org/D130020 + + + * LLVM objcopy for offloading images + + + * Should allow us to treat them like the old offload-bundler + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246291059&usg=AOvVaw1LtRm19mewLHAU0gCga0-C) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246291161&usg=AOvVaw0LZPpnQO3JTiLUTn4m7xjc) + + + * Multi-arch compilation support + + + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246291291&usg=AOvVaw1ag05pMi7p8HarOMPqUMKu): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D127432](https://www.google.com/url?q=https://reviews.llvm.org/D127432&sa=D&source=editors&ust=1778600246291415&usg=AOvVaw0hobNgNeIfufSL_SLCiL-T): [Libomptarget] Add support for offloading binaries in libomptarget + * [D127505](https://www.google.com/url?q=https://reviews.llvm.org/D127505&sa=D&source=editors&ust=1778600246291535&usg=AOvVaw3XlPYxa4X_5JogJmLHO-lt): [Libomptarget] Add checks for CUDA subarchitecture using new info + * [D127769](https://www.google.com/url?q=https://reviews.llvm.org/D127769&sa=D&source=editors&ust=1778600246291654&usg=AOvVaw0U1gmi7bJt0bff12MZMGh1): [Libomptarget] Add checks for AMDGPU TargetID using new image info + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246291775&usg=AOvVaw1xJksElgjejWvS7JB8WQ9X): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D128090](https://www.google.com/url?q=https://reviews.llvm.org/D128090&sa=D&source=editors&ust=1778600246291906&usg=AOvVaw0UdL-LVPKQGhQt1qhRRViO): [Clang][OpenMP] Process multi-arch compilation options given via -march + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246292120&usg=AOvVaw0Ydp5KF1x578SQS6fdn0ed) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246292309&usg=AOvVaw1Z0Njy39NJhozoGASC2js1) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * _OPENMP (Joachim) + + + * Currently 201611 (= TR4 date - aka 5.0 Preview 1) + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246292793&usg=AOvVaw2qabzgRRq_AbceGWQPebb0) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246292964&usg=AOvVaw3bPAHosrD0NXWPaG9jsydV) only adds the plugin runtime support + + + * Change the target interface to __tgt_target_kernel and use a struct for the arguments. + + + * [D128549](https://www.google.com/url?q=https://reviews.llvm.org/D128549&sa=D&source=editors&ust=1778600246293175&usg=AOvVaw2aVpyJeobVkb6cLlERtLdT) [Libomptarget] Implement a unified kernel entry function + * [D128817](https://www.google.com/url?q=https://reviews.llvm.org/D128817&sa=D&source=editors&ust=1778600246293299&usg=AOvVaw368RVvohJ-FVaY04kZxSWS) [Libomptarget] Use new tripcount argument instead of the push function + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246293612&usg=AOvVaw0BTbVCxhSHDfrWSjlWFJZZ) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246293803&usg=AOvVaw0d6Eaz-XfWSMqGaB_ez952) + * -O3 optimization for new Device RTL + + + * [https://reviews.llvm.org/D129344](https://www.google.com/url?q=https://reviews.llvm.org/D129344&sa=D&source=editors&ust=1778600246293946&usg=AOvVaw0O4MZuyAZ73oV-3z1NaiU_) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246294136&usg=AOvVaw2u5-pBn8EVtHRyvX6ticQT) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246294258&usg=AOvVaw1tJv7lX0nyWfONUE8iQdW2) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246294370&usg=AOvVaw1KhT4u-AnDwsQNIoLFO2hN) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246294482&usg=AOvVaw1gw1zxGEbexRHkmaFTIHpK) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-07-27.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-07-27.md new file mode 100644 index 0000000..0b917b1 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-07-27.md @@ -0,0 +1,136 @@ +### 2022, July 27 + +Agenda + + * Linking llvm libs into libomptarget (instead of copy/pasting from llvm for D127432 etc) + + + * Previously thwarted by license differences, since been resolved + * Every time this is proposed people come out of the woodwork to complain about the library they use from llvm using other parts of llvm + * Let's tell those people to just build llvm if they want to use parts of llvm + * https://reviews.llvm.org/D129875 + + + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246284679&usg=AOvVaw1aPjrg1YrljmvtujLZg4mf): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * * [https://clang.llvm.org/docs/OpenMPSupport.html#openmp-5-1-implementation-details](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246284946&usg=AOvVaw2wZZ0ujULjoPP5qrKD07CO) + + + * How to handle destructors in libomptarget + + + * The implicit destruction order will destroy the plugins first and leave some libraries in uncertain states + * Should accessing the plugins at destruction be impossible? + + + * How to handle device destructors in this case + + + * Should -mlink-builtin-bitcode import all symbols for OpenMP + + + * Device runtime defines many functions that are only included if used by the user module + * OpenMPOpt then tries to emt a call to these functions that weren't previously included + * Should we get rid of the "LinkOnlyNeeded" flag and import everything so this doesn't happen + + + * Downside is a slight increase in compile time, DCE should strip the unused definitions later. + + + * Deprecating the old driver completely for OpenMP0- + + + * [https://reviews.llvm.org/D130020](https://www.google.com/url?q=https://reviews.llvm.org/D130020&sa=D&source=editors&ust=1778600246285924&usg=AOvVaw1egsVe2lgJXXs-XS6CjAL7) + + + * Link order can cause Clang to find the system's libomptarget first + + + * Pass libomptarget.so to clang directly? + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246286247&usg=AOvVaw29PtLGyFtjJK0yuHWqz6o8) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246286356&usg=AOvVaw3cxtHUc_6nCqa30IPhd2pj) + + + * Multi-arch compilation support + + + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246286476&usg=AOvVaw0bDLHMNpYpZHBDlrkrDWI_): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D127432](https://www.google.com/url?q=https://reviews.llvm.org/D127432&sa=D&source=editors&ust=1778600246286597&usg=AOvVaw0FBA9WrEqrVSJjWzqcFXo3): [Libomptarget] Add support for offloading binaries in libomptarget + * [D127505](https://www.google.com/url?q=https://reviews.llvm.org/D127505&sa=D&source=editors&ust=1778600246286724&usg=AOvVaw0-5LVyNANi-d16jnPN8p35): [Libomptarget] Add checks for CUDA subarchitecture using new info + * [D127769](https://www.google.com/url?q=https://reviews.llvm.org/D127769&sa=D&source=editors&ust=1778600246286856&usg=AOvVaw0jaWMSCRAs6cA-w4ZesQLC): [Libomptarget] Add checks for AMDGPU TargetID using new image info + * [D127304](https://www.google.com/url?q=https://reviews.llvm.org/D127304&sa=D&source=editors&ust=1778600246286978&usg=AOvVaw2LekGvXsTyTcOi8bACZ8eR): [LinkerWrapper] Embed OffloadBinaries for OpenMP offloading images + * [D128090](https://www.google.com/url?q=https://reviews.llvm.org/D128090&sa=D&source=editors&ust=1778600246287098&usg=AOvVaw3Ij7YmBXdMrxqf-DhkMHY5): [Clang][OpenMP] Process multi-arch compilation options given via -march + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246287333&usg=AOvVaw3SMWgDi7vZfCXa6uUAlgq1) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246287532&usg=AOvVaw1yqMuXXMye836gzvWfQKnp) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * _OPENMP (Joachim) + + + * Currently 201611 (= TR4 date - aka 5.0 Preview 1) + + + * Allocators - shared, managed, gpu, other + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246287976&usg=AOvVaw2_wk346SJHlY_2NHERtTJH) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246288146&usg=AOvVaw2rYDJV3CdRB869lHP_Egc3) only adds the plugin runtime support + + + * Change the target interface to __tgt_target_kernel and use a struct for the arguments. + + + * [D128549](https://www.google.com/url?q=https://reviews.llvm.org/D128549&sa=D&source=editors&ust=1778600246288349&usg=AOvVaw2XcQ7Q7ZU08x69bE54lbOm) [Libomptarget] Implement a unified kernel entry function + * [D128817](https://www.google.com/url?q=https://reviews.llvm.org/D128817&sa=D&source=editors&ust=1778600246288469&usg=AOvVaw1uz12XpR5ncvRrW8bKGGew) [Libomptarget] Use new tripcount argument instead of the push function + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246288786&usg=AOvVaw3ymN9Zz4rhGhOjbgvYcRRp) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246288973&usg=AOvVaw3Uqqj0cnrMD40U9jmCz_zG) + * -O3 optimization for new Device RTL + + + * [https://reviews.llvm.org/D129344](https://www.google.com/url?q=https://reviews.llvm.org/D129344&sa=D&source=editors&ust=1778600246289132&usg=AOvVaw0wQvK79mJDoMZ2cwWy7Hg9) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246289355&usg=AOvVaw0G3so5gNBh7qm1bqf1SENa) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246289480&usg=AOvVaw1HW9TDnTaNBIWAzTvLe6Bb) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246289600&usg=AOvVaw2L5pb_ujHFqcbOj2E782yI) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246289724&usg=AOvVaw3aEgK-PmWeqtiOc6DDfGoX) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-08-03.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-03.md new file mode 100644 index 0000000..39c879e --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-03.md @@ -0,0 +1,124 @@ +### 2022, Aug 03 + +Agenda + + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246279666&usg=AOvVaw3Tu3rmJUtv5Zhj4WpKKJG1): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [https://clang.llvm.org/docs/OpenMPSupport.html#openmp-5-1-implementation-details](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246279873&usg=AOvVaw35VnqgcVPKgP97zHLtfWBz) + + + * How to handle destructors in libomptarget + + + * Remove libomptarget's destructors, instead destroy the state when the user code calls deinit_library for the last time + * The implicit destruction order will destroy the plugins first and leave some libraries in uncertain states + * Should accessing the plugins at destruction be impossible? + + + * How to handle device destructors in this case + + + * Should -mlink-builtin-bitcode import all symbols for OpenMP + + + * Device runtime defines many functions that are only included if used by the user module + * OpenMPOpt then tries to emt a call to these functions that weren't previously included + * Should we get rid of the "LinkOnlyNeeded" flag and import everything so this doesn't happen + + + * Downside is a slight increase in compile time, DCE should strip the unused definitions later. + + + * Deprecating the old driver completely for OpenMP + + + * [https://reviews.llvm.org/D130020](https://www.google.com/url?q=https://reviews.llvm.org/D130020&sa=D&source=editors&ust=1778600246280938&usg=AOvVaw0kYfofJgyUWWXLfHtJeqnO) + + + * Link order can cause Clang to find the system's libomptarget first + + + * Pass libomptarget.so to clang directly? + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246281251&usg=AOvVaw36joj8PXgApL_GetN3Dqo0) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246281357&usg=AOvVaw22k-zrEeXoOLotGq_Zy5ts) + + + * Multi-arch compilation support + + + * [D128090](https://www.google.com/url?q=https://reviews.llvm.org/D128090&sa=D&source=editors&ust=1778600246281490&usg=AOvVaw1p7803cqoFL_41a-PH1GPO): [Clang][OpenMP] Process multi-arch compilation options given via -march + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246281692&usg=AOvVaw11mYWbdHU12Tg1dUygGHxG) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246281883&usg=AOvVaw1yNdpug8QH6_ajpXtNePyp) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * _OPENMP (Joachim) + + + * Currently 201611 (= TR4 date - aka 5.0 Preview 1) + + + * Allocators - shared, managed, gpu, other + + + * Does AMD have support? + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246282381&usg=AOvVaw0g5bV2QZ-bPGldRN4zfNbe) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246282548&usg=AOvVaw3jf76Z5uI-mCM0rDomp3ON) only adds the plugin runtime support + + + * Change the target interface to __tgt_target_kernel and use a struct for the arguments. + + + * [D128549](https://www.google.com/url?q=https://reviews.llvm.org/D128549&sa=D&source=editors&ust=1778600246282747&usg=AOvVaw0kV0ue7ZqWKiJ1tcU55o99) [Libomptarget] Implement a unified kernel entry function + * [D128817](https://www.google.com/url?q=https://reviews.llvm.org/D128817&sa=D&source=editors&ust=1778600246282867&usg=AOvVaw0Q4YPL02_JpVudXR-J7Vis) [Libomptarget] Use new tripcount argument instead of the push function + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246283194&usg=AOvVaw2sB4cOgjhOYLo9aYCyKrwF) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246283385&usg=AOvVaw1vBoYOyxUZelHmZ68XgRRy) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246283571&usg=AOvVaw2Zg_-VDn6uADfbbsA7dKC6) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246283687&usg=AOvVaw3KlXw5pqZGS7IYdugungeB) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246283805&usg=AOvVaw2J2i-AnFNBPgUIhTnwwdzT) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246283924&usg=AOvVaw2yNBJ7cHyIUjs2cuPBi8_s) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-08-10.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-10.md new file mode 100644 index 0000000..3d395d1 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-10.md @@ -0,0 +1,84 @@ +### 2022, Aug 10 + +Agenda + + * Virtual function support + * Replacing libomptarget dependencies with LLVM libraries + + + * Replace dlopen [https://reviews.llvm.org/D131507](https://www.google.com/url?q=https://reviews.llvm.org/D131507&sa=D&source=editors&ust=1778600246276884&usg=AOvVaw3oAEFS265D6VzVeNzEbXdm) + * Replace libelf [https://reviews.llvm.org/D131401](https://www.google.com/url?q=https://reviews.llvm.org/D131401&sa=D&source=editors&ust=1778600246277037&usg=AOvVaw1Tfiea7FJRPeu7CAVFhFZ6) + * How to replace libffi for the x86_64 plugin? + + + * Deprecating the old driver completely for OpenMP + + + * [https://reviews.llvm.org/D130020](https://www.google.com/url?q=https://reviews.llvm.org/D130020&sa=D&source=editors&ust=1778600246277282&usg=AOvVaw1lOZRbDrxrCa5wxjLkvrfs) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246277457&usg=AOvVaw00OFtf8D0cdIbq-QBYft9B) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246277555&usg=AOvVaw05u3hdZBFQUAeP69iokuaA) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246277694&usg=AOvVaw1VucbLhJeOU2nV5M3o75Y5) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246277877&usg=AOvVaw2trsdC31CRbz0OuJn4SGKA) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + * Allocators - shared, managed, gpu, other + + + * Does AMD have support? + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246278345&usg=AOvVaw1DBbkcPnbEpsw9L4gbQ3VL) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246278517&usg=AOvVaw2lcRYNaP1WMkbMT-6LF7k0) only adds the plugin runtime support + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246278804&usg=AOvVaw0u5Rs_Dz3hGeosNc5khUkW) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246278997&usg=AOvVaw3mHWzcZ0dw9lwNoRGUT71X) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246279151&usg=AOvVaw0vwXuxrA19QqVtKRBn9CBU): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246279341&usg=AOvVaw1Yw1B0z-Oo85r0wSwes2gD) + + + * Who all are planning to attend SC22 in Nov? + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-08-17.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-17.md new file mode 100644 index 0000000..a82de72 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-17.md @@ -0,0 +1,80 @@ +### 2022, Aug 17 + +Agenda + + * Replacing libomptarget dependencies with LLVM libraries + + + * Replace dlopen [https://reviews.llvm.org/D131507](https://www.google.com/url?q=https://reviews.llvm.org/D131507&sa=D&source=editors&ust=1778600246274131&usg=AOvVaw24q_QATM0S2Cz1NNcfZl2_) + * Replace libelf [https://reviews.llvm.org/D131401](https://www.google.com/url?q=https://reviews.llvm.org/D131401&sa=D&source=editors&ust=1778600246274259&usg=AOvVaw20HmRgomrQkDZ6rO5J3sf2) + * How to replace libffi for the x86_64 plugin? + + + * Deprecating the old driver completely for OpenMP + + + * [https://reviews.llvm.org/D130020](https://www.google.com/url?q=https://reviews.llvm.org/D130020&sa=D&source=editors&ust=1778600246274481&usg=AOvVaw0MO8-X2sLqcg36fmCh73tL) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246274660&usg=AOvVaw1MIXatkvButVfrAv0XKUfl) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246274757&usg=AOvVaw1yo7jEIcPDwqWllBHtRlD3) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246274896&usg=AOvVaw2XYLS9KpatLPu9ZYze_wE-) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246275079&usg=AOvVaw2nD0iKFwFFeEznExmUm9_O) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + * Allocators - shared, managed, gpu, other + + + * Does AMD have support? + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246275558&usg=AOvVaw10sFI1gDpvRatF9UZ3O5o-) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246275724&usg=AOvVaw1_gdIrJOhr4AW_Ps6uN8lg) only adds the plugin runtime support + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246276020&usg=AOvVaw3UacrEJ7o4gElS_uwuMKcY) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246276205&usg=AOvVaw2pvlDCy0aFqp9D1Z9ER15C) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246276364&usg=AOvVaw39dQO4JNXSgBvDWDdB-0FO): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246276546&usg=AOvVaw2-gkcio00ARUhfKCruramj) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-08-24.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-24.md new file mode 100644 index 0000000..4b5d9c0 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-24.md @@ -0,0 +1,80 @@ +### 2022, Aug 24 + +Agenda + + * Replacing libomptarget dependencies with LLVM libraries + + + * Replace dlopen [https://reviews.llvm.org/D131507](https://www.google.com/url?q=https://reviews.llvm.org/D131507&sa=D&source=editors&ust=1778600246271348&usg=AOvVaw2DEWG3MKXDrr-Iroj24bNN) + * Replace libelf [https://reviews.llvm.org/D131401](https://www.google.com/url?q=https://reviews.llvm.org/D131401&sa=D&source=editors&ust=1778600246271473&usg=AOvVaw3BOP8KyM739WjJKDOVSzMO) + * How to replace libffi for the x86_64 plugin? + + + * Deprecating the old driver completely for OpenMP + + + * [https://reviews.llvm.org/D130020](https://www.google.com/url?q=https://reviews.llvm.org/D130020&sa=D&source=editors&ust=1778600246271684&usg=AOvVaw3OQIvVXwqle8toRBRb2Bek) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246271862&usg=AOvVaw0uKbXoDNXzZkXT0w4uDQcW) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246271963&usg=AOvVaw2TQEwqyxyfP_sgHFfz6Q4l) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246272106&usg=AOvVaw2rzm2l36288C_eOLJX44sC) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246272306&usg=AOvVaw3rT28HHku1f_8zSwl--dN_) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - shared, managed, gpu, other + + + * Does AMD have support? + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246272717&usg=AOvVaw1JV49RMdUAtInXAK5B36YP) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246272888&usg=AOvVaw1mahBvG-sc9_p1WEy2RG1B) only adds the plugin runtime support + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246273188&usg=AOvVaw3ETlmYSdHyQr4sGAylayrd) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246273385&usg=AOvVaw0WeGnFdON64mf2SDxb5QL_) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246273549&usg=AOvVaw07Af_GbFKWz-ggCbMLCXMb): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246273741&usg=AOvVaw32z87P7sRzEvO2fqiscCkN) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-08-31.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-31.md new file mode 100644 index 0000000..d519128 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-08-31.md @@ -0,0 +1,68 @@ +### 2022, Aug 31 + +Agenda + + * New Link for meeting + * OpenMP GPU Reduction + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246269072&usg=AOvVaw2w1-DE9OU1JCLiYwP-QZuM) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246269200&usg=AOvVaw1HsGzpXsFApX0NJ4A-DW1I) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246269344&usg=AOvVaw1lknMaXHs6wfqG3LJwQLsH) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246269553&usg=AOvVaw2qblGe3OMDwjgZCI1pf38g) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246269937&usg=AOvVaw0EfaPhFhuh6zuCTEbw1Th1) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246270130&usg=AOvVaw1Ktoa6o2eIvtaYqEqmqFsj) only adds the plugin runtime support + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246270431&usg=AOvVaw1YiJFhgfbVB6Yu1GdQ_YEL) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246270622&usg=AOvVaw0IXiiiEK57ooOFjxzvZiNA) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246270776&usg=AOvVaw0_JjsuFUca0dyRVz7UJcV_): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246270962&usg=AOvVaw2A_S5HmO1zOqj_G7x_0BfR) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-09-07.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-09-07.md new file mode 100644 index 0000000..a173f37 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-09-07.md @@ -0,0 +1,84 @@ +### 2022, Sept 07 + +Agenda + + * No more backward compatibility. + + + * [https://reviews.llvm.org/D133277](https://www.google.com/url?q=https://reviews.llvm.org/D133277&sa=D&source=editors&ust=1778600246265643&usg=AOvVaw2bp10WJRspy5swKxWCdnAS) and [https://reviews.llvm.org/D133276](https://www.google.com/url?q=https://reviews.llvm.org/D133276&sa=D&source=editors&ust=1778600246265721&usg=AOvVaw0LP2u8-n8Ds4cm6Qm5NCya). + * Ever since we build libomptarget and plugins as LLVM libraries, the "backward compatibility" is gone. Given that fact, we can change existing interfaces w/o the need of consideration of backward compatibility. + * ^ we also never had backwards compatibility afaik, certainly never tested to see if it worked + + + * Changing register requires + + + * Taking a refcount for registering libomptarget is awkward because every TU has a register requires which wants to initialize libomptarget. + * Change this to work like registering kernels / globals? + + + * New Link for meeting (see top of doc for link & ICS file) + * OpenMP GPU Reduction + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246266542&usg=AOvVaw2Ytil1KVCv1_Lau_CFUO3L) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246266647&usg=AOvVaw09m9NwnienB-MZAJJRBR9_) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246266794&usg=AOvVaw1fYUofur3LhxN3cRkR8q_o) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246266979&usg=AOvVaw0tLREoZogTf5NDW2iPeEg9) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * ^ if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. Open question about what omp_target_is_present() is supposed to return on migratable memory. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246267580&usg=AOvVaw0f3FfDl7Y6dBg1W6esEUvx) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246267744&usg=AOvVaw1eOjIdjowYuVrjJINDVuuO) only adds the plugin runtime support + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246268043&usg=AOvVaw245iC2urN8KKa5mllH0gR-) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246268238&usg=AOvVaw0O2CwL3GMj-rbSLryQkwiR) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246268432&usg=AOvVaw1MHKEUlDlgRSqYto9Tjo9t): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246268614&usg=AOvVaw08uU_-6LN5HN-FBllKbh1O) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-09-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-09-14.md new file mode 100644 index 0000000..016d996 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-09-14.md @@ -0,0 +1,93 @@ +### 2022, Sept 14 + +Agenda + + * OMP_TGT_MAPTYPE_CLOSE = 0x400, // copy data to device + + + * Need additional bits to indicate the location like cache … + + + * No more backward compatibility. + + + * [https://reviews.llvm.org/D133277](https://www.google.com/url?q=https://reviews.llvm.org/D133277&sa=D&source=editors&ust=1778600246262064&usg=AOvVaw1hr6zqSSgVHuaHCB1cOqEi) and [https://reviews.llvm.org/D133276](https://www.google.com/url?q=https://reviews.llvm.org/D133276&sa=D&source=editors&ust=1778600246262150&usg=AOvVaw2Y_Pb1NMMIYYG8WcCM4GnB). + * Ever since we build libomptarget and plugins as LLVM libraries, the "backward compatibility" is gone. Given that fact, we can change existing interfaces w/o the need of consideration of backward compatibility. + * ^ we also never had backwards compatibility afaik, certainly never tested to see if it worked + * [https://reviews.llvm.org/D133053](https://www.google.com/url?q=https://reviews.llvm.org/D133053&sa=D&source=editors&ust=1778600246262545&usg=AOvVaw27DW9lPV75T4DifVOiIUwP) changes free interface between the plugins + + + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246262715&usg=AOvVaw0WraBA3iV56ECJxYQksvaF) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * New Link for meeting (see top of doc for link & ICS file) + * OpenMP GPU Reduction + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246263278&usg=AOvVaw3EC9P6q_QYD1DeTDpLAWis) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246263384&usg=AOvVaw1LTniFCjEOnO5ENGk7uzcE) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246263526&usg=AOvVaw0RhGt71UHGune_M-AUuzEH) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246263724&usg=AOvVaw2UMwmem_mt4cx8z21gvU03) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * ^ if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. Open question about what omp_target_is_present() is supposed to return on migratable memory. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246264333&usg=AOvVaw3z4gCRJOcAzKH0uz3ki8IK) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246264498&usg=AOvVaw02pF2PCCospfAqMD8m7Grp) only adds the plugin runtime support + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246264803&usg=AOvVaw1dUAQU3ULBLEdB8qZAqDcX) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246264987&usg=AOvVaw3vw1CaZsClC2uBOpIg0M5F) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246265150&usg=AOvVaw0kn73vC1-rW4r1o28KmpKa): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246265337&usg=AOvVaw0liEnoOk-806AIpTt0Bxbd) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-09-21.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-09-21.md new file mode 100644 index 0000000..b6801df --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-09-21.md @@ -0,0 +1,118 @@ +### 2022, Sept 21 + +Agenda + + * OMP_TGT_MAPTYPE_CLOSE = 0x400, // copy data to device + + + * Need additional bits to indicate the location like cache … + + + * No more backward compatibility. + + + * [https://reviews.llvm.org/D133277](https://www.google.com/url?q=https://reviews.llvm.org/D133277&sa=D&source=editors&ust=1778600246257431&usg=AOvVaw07P963z6PTTUhudXHciQub) and [https://reviews.llvm.org/D133276](https://www.google.com/url?q=https://reviews.llvm.org/D133276&sa=D&source=editors&ust=1778600246257515&usg=AOvVaw3F64tDQ-TylEuUHt91t9lQ). + * Ever since we build libomptarget and plugins as LLVM libraries, the "backward compatibility" is gone. Given that fact, we can change existing interfaces w/o the need of consideration of backward compatibility. + * ^ we also never had backwards compatibility afaik, certainly never tested to see if it worked + * [https://reviews.llvm.org/D133053](https://www.google.com/url?q=https://reviews.llvm.org/D133053&sa=D&source=editors&ust=1778600246257904&usg=AOvVaw13ZhWEYUkarlM0t_3Y2vtZ) changes free interface between the plugins + + + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246258081&usg=AOvVaw2tIHT34cxT8CbSm0n5Pl26) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * New Link for meeting (see top of doc for link & ICS file) + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * OpenMP GPU Reduction + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246258894&usg=AOvVaw1JuTEiVLOs6rDZst5bG4zZ) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246259004&usg=AOvVaw0Y3QVLkxhqTapLa5ivSlLC) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246259167&usg=AOvVaw2aKfyrRuyLgUlsrMfSCOLj) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246259367&usg=AOvVaw1M6ErsRyAKPfu0eSEanCV1) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * ^ if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. Open question about what omp_target_is_present() is supposed to return on migratable memory. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246259987&usg=AOvVaw22kU0292KyXkkMp3jXb9e_) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246260162&usg=AOvVaw1lDA2RSxGBm8I3STKu6xzH) only adds the plugin runtime support + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246260461&usg=AOvVaw1SbKd1JYjIhykjoNMhrb77) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246260644&usg=AOvVaw1v2pf1M7OLEd7iIJnXdKR3) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246260806&usg=AOvVaw0hAsTAM-sG1dsEfo_GFwp6): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246260989&usg=AOvVaw0UVLSOIO82uM0Y4jnn5LLg) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246261266&usg=AOvVaw3Jk1vGXOXIdHxcgBsLR0UL) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246261385&usg=AOvVaw12zKSj1eV6_Vz6wZdbkCVJ) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246261497&usg=AOvVaw1QlUyBtOUwY7oeAIbMgoU_) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246261607&usg=AOvVaw3kIwX-WHFUO-7dmelbtpGO) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-10-12.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-10-12.md new file mode 100644 index 0000000..c894209 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-10-12.md @@ -0,0 +1,102 @@ +### 2022, Oct 12 + +Agenda + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246253527&usg=AOvVaw3DPX38eK8dr_dABxVriOuZ) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246253708&usg=AOvVaw2VLWx2SKiwnQnP46ZoX5yQ) + + + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246253895&usg=AOvVaw3QU1koJS9tliGBC6ybs6VE) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246254639&usg=AOvVaw0L2H9_oQxBJKBVgUwUqsml) + + + * OpenMP GPU Reduction + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246254865&usg=AOvVaw38K2pIG4u6DT1F2QViVkf_) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246254970&usg=AOvVaw2izFinKvkJ9d3nNbTn2jYt) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246255119&usg=AOvVaw32cRNbpn8Qt3Bc2Zyd3VEa) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246255335&usg=AOvVaw0u67e3_pqgwcQCfcYW_emc) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * ^ if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246255887&usg=AOvVaw0aZ-e80e_XleMM5RU3ZptH) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246256070&usg=AOvVaw0Bln-LwXXK0P2amgxSCHuS) only adds the plugin runtime support + + + * Device atomics + + + * What atomic works and unit tests for what works. + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246256415&usg=AOvVaw3Se6ZdFPL4tgtNkcT5YxCx) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246256604&usg=AOvVaw3pDr7xI-hHCCZ3m6TxNyTZ) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246256765&usg=AOvVaw3FZvapWm-1ZawBp8oEMZQ0): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246256950&usg=AOvVaw0IqWP2YAVTiZc09Vpl-XiS) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-10-26.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-10-26.md new file mode 100644 index 0000000..1fa55af --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-10-26.md @@ -0,0 +1,121 @@ +### 2022, Oct 26 + +Agenda + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246248147&usg=AOvVaw2MWqZLA7wTVh-J0Oon1YAk) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246248235&usg=AOvVaw0D4rP66YUsik_Su70TxzZK) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246248449&usg=AOvVaw1UpeoBJKF_DxYYsNoPxX4u) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246248703&usg=AOvVaw1xceDfRxBlehU0-gjms5_P) + * ![](images/image5.png) + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246249545&usg=AOvVaw3n3HVqwnbDr9nOTayK1hMO) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246249795&usg=AOvVaw3Sazvs1whibHTGSyfvlzUE) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246250039&usg=AOvVaw0MEoa_--oj68HdHoHJWBgG) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246250187&usg=AOvVaw2y27WIP1cA4HDtxVsT05FS) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246250890&usg=AOvVaw2qRTfTwgK7EmyFp3C4wv8f) + + + * OpenMP GPU Reduction + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246251098&usg=AOvVaw1qbsKOmxVeYbimwjlQ11Jg) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246251215&usg=AOvVaw0sr--CUOwCM-1aKK1Vq2Go) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100185](https://www.google.com/url?q=https://reviews.llvm.org/D100185&sa=D&source=editors&ust=1778600246251363&usg=AOvVaw1SFx8KWRrr3o_3aUNOGhoT) (gdb plugin) - landed! + + + * Breaks many builds by adding dependencies no required by LLVM + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246251550&usg=AOvVaw1DL1vWRuJp6PQgjU0NYwL-) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246252093&usg=AOvVaw1yINHNJi4LbxPf8pJ15GhD) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246252273&usg=AOvVaw2yuan0IYuhuMn1HXV81Uoh) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246252474&usg=AOvVaw15G-KZkuU31Bgh8vJ2pl-z) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246252659&usg=AOvVaw322ZtVkf8P4xwaHf4aq33B) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246252820&usg=AOvVaw2gRAhmYUvbZWV_neS2L2TX): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246253011&usg=AOvVaw0hrE0rhZGDZwFgHEJaj6Ht) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-11-02.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-11-02.md new file mode 100644 index 0000000..27050a9 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-11-02.md @@ -0,0 +1,121 @@ +### 2022, Nov 02 + +Agenda + + * Openmp amdgpu buildbot failure: +[https://lab.llvm.org/buildbot/#/builders/193/builds/21152](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/193/builds/21152&sa=D&source=editors&ust=1778600246243743&usg=AOvVaw3WQWv35_eDSzqDsOxNh6dW) ([https://reviews.llvm.org/D135444](https://www.google.com/url?q=https://reviews.llvm.org/D135444&sa=D&source=editors&ust=1778600246243829&usg=AOvVaw3beH0MBE_pLWtRf36ke6PG)) + + + * JD: I'll fix it now + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246244010&usg=AOvVaw2IpdfS88gBn0lq377-TPUx) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246244096&usg=AOvVaw3e9-Y8i-yKoTATfmJucL6a) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246244340&usg=AOvVaw1QqktKvg1mfpHIGDBtjwXE) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246244599&usg=AOvVaw0auQqM_h92iVourw0Y8Wv9) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246244743&usg=AOvVaw1oEvJEJN1MR0t9hmPNSbAU) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246244888&usg=AOvVaw3l5UokmDUYVFpNie_hQP78) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246245120&usg=AOvVaw1MrylruMbwJujbQaCigVc-) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246245266&usg=AOvVaw0tKQI8kHzEzm0IBBxwExmz) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246245930&usg=AOvVaw0JJtLQVDdVE-JXNhEmo4Dv) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246246106&usg=AOvVaw3JrnhsN-QaUrlYo59MTaiH) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246246220&usg=AOvVaw0uPy6ie9F6BoZxWybdMkOv) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246246379&usg=AOvVaw0ipv2WdUnkUxMZaPs5nF3a) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246246897&usg=AOvVaw0Wq-EOKVH7q8_cNTAheYPX) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246247069&usg=AOvVaw0zL2xZpV1h0fbDbfkb9cXG) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246247276&usg=AOvVaw1_dc3r4KnyxNekqNkabe33) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246247470&usg=AOvVaw2VmUmwpZhEsd3-i2ipOqlX) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246247626&usg=AOvVaw18DCKW6J3EKUmQIwCGQ9q_): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246247804&usg=AOvVaw21LJab-YZd5-7CjmSqNfls) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-11-23.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-11-23.md new file mode 100644 index 0000000..5b058dd --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-11-23.md @@ -0,0 +1,124 @@ +### 2022, Nov 23 + +Agenda + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246238938&usg=AOvVaw3n4NC_kghGTxnrVc6ApZw8) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246239031&usg=AOvVaw2FHZVm7AxkW3C6WjsML76A) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246239266&usg=AOvVaw3sa6ZwRgfzVr4uQytN8U8J) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246239529&usg=AOvVaw0gOiOcHXhHwAdPUB_EesGC) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246239674&usg=AOvVaw1SZI7Ly2tTvn-WkhcmYRu1) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246239826&usg=AOvVaw3CJh-9hQ1_SQyJrmjsqS0M) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246240055&usg=AOvVaw1p915oHa9S4pReCzgL0dlN) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246240151&usg=AOvVaw0-Ijtp88qEe2ZjJ4zScSHF) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246240296&usg=AOvVaw3XovNOQ7-ThNaGrBpykBye) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246240962&usg=AOvVaw1HQ5g2UuER4JYNJUvpjpBx) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246241135&usg=AOvVaw3ZhBjoXtBUd76Qy-YI0Hnh) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246241244&usg=AOvVaw0MUI8290iSV1dFCv4nB9df) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246241395&usg=AOvVaw182H6acwaWi3Jc1SIMxtAm) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246241931&usg=AOvVaw2C1lcj__R1RMZQHNdhqfxi) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246242093&usg=AOvVaw1YpN7NlFE_9AqYZk9eQoTy) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246242294&usg=AOvVaw3wg7W61ID5__i-AbYwLsGL) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246242484&usg=AOvVaw2cec3ZD8B7BtY_mdPYkxh-) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246242634&usg=AOvVaw1patfpyU8K6ClpmKsiEUa4): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246242822&usg=AOvVaw30RUPIjAqVWtZGqhZBWuvi) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246243117&usg=AOvVaw3-DILooB98cCuuKy6pcH_Z) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246243234&usg=AOvVaw2TNAR10m4zJWSzZp1ZtXyd) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246243344&usg=AOvVaw1axOPqurbeROl2Nh8MgSrl) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246243466&usg=AOvVaw0yjhcrCZJWpmUvJ1QZVPMK) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-11-30.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-11-30.md new file mode 100644 index 0000000..18c557d --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-11-30.md @@ -0,0 +1,152 @@ +### 2022, Nov 30 + +Agenda + + * NextGen AMD Plugin + + + * Jan-Patrick is testing it + * Latest status: [https://github.com/kevinsala/llvm-project/tree/develop](https://www.google.com/url?q=https://github.com/kevinsala/llvm-project/tree/develop&sa=D&source=editors&ust=1778600246233591&usg=AOvVaw1RztrPvUAg260groHvUiz3) + + + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + * + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * Record + Replay ([https://reviews.llvm.org/D138931](https://www.google.com/url?q=https://reviews.llvm.org/D138931&sa=D&source=editors&ust=1778600246234132&usg=AOvVaw3_SZAEZYE8J5K4qRdPJck_)) + + + 73. Allocate "all" device memory + 74. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 75. Replay -> load image + user allocated memory, launch with argos and parameters + + + * New meeting time for Jan 23, when2meet? + * * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246234561&usg=AOvVaw1fcyVVt5Gj9CZcfdmJauzx) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246234639&usg=AOvVaw19Vg4ZN_Fj6pVo8-ZqCBRR) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246234865&usg=AOvVaw1_G31yACNAkQ0AeCjr9-3k) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246235137&usg=AOvVaw0Q_MJbwipUtbquj0Hem2cR) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246235290&usg=AOvVaw1yFOflr_8RiQubzbyakQTE) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246235440&usg=AOvVaw0mEkX9lUeEleLIyPcbqyTl) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246235669&usg=AOvVaw3utK1HJEOuFPGuAmqm_htw) + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246235777&usg=AOvVaw06rEzBXyPuylcZ6DhXbMO1) + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246235878&usg=AOvVaw1TFXO6nZ4MPJFXTE0UuGAf) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246236012&usg=AOvVaw1en-UAbntL3S-qvc_yo5oc) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246236683&usg=AOvVaw0pQIrVG_mNPhaINtf3KKqC) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246236870&usg=AOvVaw0HtnTiaSKV0YfBv3qI6cvD) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246236980&usg=AOvVaw2Lqx5j6PixtK1JHzjK6Nwm) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246237138&usg=AOvVaw3veaIpjasbwrHzaReC_d97) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246237655&usg=AOvVaw2vbn-YXTF0Tvq0NpgUEfDu) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246237837&usg=AOvVaw2A4svZ65E5zw6Hnb61qCt6) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246238042&usg=AOvVaw1Jo-FeCfDZfCL_tJ-rmj5t) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246238230&usg=AOvVaw1b4NXb4wAAWFJWZRZL9K5y) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246238387&usg=AOvVaw3pK1KCHy04BxlyPqeW9Ovo): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246238586&usg=AOvVaw3YOYLVU0KrYYzfDZGGE12k) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-12-07.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-12-07.md new file mode 100644 index 0000000..df09330 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-12-07.md @@ -0,0 +1,165 @@ +### 2022, Dec 07 + +Agenda + + * OpenMP-opt slack: + + + * [https://join.slack.com/t/openmp-opt/shared_invite/zt-1ktv8h0wx-6Ks4PjL3qnx8dhC9Nx4fgg](https://www.google.com/url?q=https://join.slack.com/t/openmp-opt/shared_invite/zt-1ktv8h0wx-6Ks4PjL3qnx8dhC9Nx4fgg&sa=D&source=editors&ust=1778600246227771&usg=AOvVaw1wpidc0Qbq2l7C9i7S-v4a) + + + * Pinned memory: + + + * ½ [https://reviews.llvm.org/D138933](https://www.google.com/url?q=https://reviews.llvm.org/D138933&sa=D&source=editors&ust=1778600246227914&usg=AOvVaw1AZCjJYeTGTx5X5KEDOSKg) + * 2/2 [https://reviews.llvm.org/D139208](https://www.google.com/url?q=https://reviews.llvm.org/D139208&sa=D&source=editors&ust=1778600246228034&usg=AOvVaw3E97gRn9sjbpsv2QT_gDDE) + + + * NextGen AMD Plugin + + + * Jan-Patrick is testing it + * Latest status: [https://github.com/kevinsala/llvm-project/tree/develop](https://www.google.com/url?q=https://github.com/kevinsala/llvm-project/tree/develop&sa=D&source=editors&ust=1778600246228267&usg=AOvVaw0iX6fQK4P16JiEQ4lGarQr) + + + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + * + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * Record + Replay ([https://reviews.llvm.org/D138931](https://www.google.com/url?q=https://reviews.llvm.org/D138931&sa=D&source=editors&ust=1778600246228765&usg=AOvVaw2EN_ZB85maoR8nDdpO3ApB)) + + + 70. Allocate "all" device memory + 71. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 72. Replay -> load image + user allocated memory, launch with argos and parameters + + + * New meeting time for Jan 23, when2meet? + * * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246229218&usg=AOvVaw1PpAzamfZG2gHG45_xVbGa) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246229300&usg=AOvVaw3fH8nD5r2a3b8BLdX-F0NT) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246229513&usg=AOvVaw1r40qUc3r0e2KVMuSYQzVU) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246229764&usg=AOvVaw2VWxLXWbiXbKxvJWBQpLIo) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246229916&usg=AOvVaw3uKMxj9lYz7m-acn4LJBBb) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246230064&usg=AOvVaw3ipBKOsVeinR8UnlwAMfBr) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246230308&usg=AOvVaw2RoEnnsuORlRQ9wHUcAJ6t) + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246230418&usg=AOvVaw38P6qT-QPXxcY3iULmoWj8) + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246230507&usg=AOvVaw3-YuIoZuEdEPyJRf1z3GhK) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246230650&usg=AOvVaw1p_aWAyBA3M9zpREAVp4B1) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246231313&usg=AOvVaw3Xr06JWEaQQgiRL3kKNRlm) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246231491&usg=AOvVaw0aruo_-1Cra0fMKeRBcV89) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246231589&usg=AOvVaw0-fRCDhziBTATDFGnE9rKD) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246231739&usg=AOvVaw2W0auO3GqH19E228o0bdQP) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246232258&usg=AOvVaw3egLHUR3IMy8iCoey8LuXe) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246232429&usg=AOvVaw0Onjz8PPegr3TzZHTx8urM) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246232626&usg=AOvVaw1_ylbmDzQENAmFxso0N7n3) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246232805&usg=AOvVaw3eP0fse6c1BDD6CZ3ppUJH) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246232952&usg=AOvVaw2VU7UQm9xbLSiDq05Pa9fj): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246233135&usg=AOvVaw3NttawyDjUfCW0uCAZQHOr) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-12-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-12-14.md new file mode 100644 index 0000000..f0ced56 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-12-14.md @@ -0,0 +1,166 @@ +### 2022, Dec 14 + +Agenda + + * Meetings during holidays Dec 28th meeting canceled. + * OpenMP-opt slack: + + + * [https://join.slack.com/t/openmp-opt/shared_invite/zt-1ktv8h0wx-6Ks4PjL3qnx8dhC9Nx4fgg](https://www.google.com/url?q=https://join.slack.com/t/openmp-opt/shared_invite/zt-1ktv8h0wx-6Ks4PjL3qnx8dhC9Nx4fgg&sa=D&source=editors&ust=1778600246221903&usg=AOvVaw24-vFHMz080mus_KcErLSe) + + + * Pinned memory: + + + * ½ [https://reviews.llvm.org/D138933](https://www.google.com/url?q=https://reviews.llvm.org/D138933&sa=D&source=editors&ust=1778600246222044&usg=AOvVaw38p_eZpebjEs0P6dHK5ava) + * 2/2 [https://reviews.llvm.org/D139208](https://www.google.com/url?q=https://reviews.llvm.org/D139208&sa=D&source=editors&ust=1778600246222152&usg=AOvVaw10fzuV1MV4pd6A3RbkELTa) + + + * NextGen AMD Plugin + + + * Jan-Patrick is testing it + * Latest status: [https://github.com/kevinsala/llvm-project/tree/develop](https://www.google.com/url?q=https://github.com/kevinsala/llvm-project/tree/develop&sa=D&source=editors&ust=1778600246222387&usg=AOvVaw0HdCmiXa7Z_YHdWCn9nSPM) + + + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * Record + Replay ([https://reviews.llvm.org/D138931](https://www.google.com/url?q=https://reviews.llvm.org/D138931&sa=D&source=editors&ust=1778600246222919&usg=AOvVaw1obGpF8WYlS1mKp0nTNuTL)) + + + 67. Allocate "all" device memory + 68. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 69. Replay -> load image + user allocated memory, launch with argos and parameters + + + * New meeting time for Jan 23, when2meet? + * * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246223358&usg=AOvVaw3wCg-mE6n7vIKA0GkXnyET) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246223444&usg=AOvVaw2qucP7rPMIiLzyIb8SZxQf) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246223660&usg=AOvVaw1EqI95ayG-2GdQslKylF5O) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246223916&usg=AOvVaw2Sf94B5S5rJuaAHxwQuUAC) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246224062&usg=AOvVaw31GA1EggI6Pkr_A7OcReCC) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246224215&usg=AOvVaw0upKEU6NTZr20aY_Gvs1h1) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246224456&usg=AOvVaw1XyUTuOWTKY1DKQ3cq7QnH) + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246224568&usg=AOvVaw22pKvaKMfEJJUPntyWNnsg) + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246224665&usg=AOvVaw1gmqxCtFDvKlVub7sdzGE9) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246224800&usg=AOvVaw36Mt6OC7K7nyRhFZM42LD0) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246225515&usg=AOvVaw1W_XqblXOPOxjp3gU50D-e) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246225693&usg=AOvVaw01zTkQLApBKDGuHtdlaC2Z) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246225790&usg=AOvVaw34j3lNI4QEg6Gs-Ukx1Qsv) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246225939&usg=AOvVaw3eiHPqbGo-1Lb07Wy9YOSw) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246226467&usg=AOvVaw3H3isZCkHJ439Xsbtjqdd6) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246226641&usg=AOvVaw2TuhntTeHguMGjb9ueB_S_) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246226844&usg=AOvVaw2beehX2YAsoc-VvyjCK_--) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246227023&usg=AOvVaw3Vucjrn2N5kshZIcWylqBJ) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246227189&usg=AOvVaw2dqyoPBU15g02DKykRHBKh): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246227373&usg=AOvVaw36Mb84NZ3_RiLbpOm0IeXL) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2022-12-21.md b/openmp-wg/meeting-minutes/openmp-minutes-2022-12-21.md new file mode 100644 index 0000000..06c34b1 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2022-12-21.md @@ -0,0 +1,187 @@ +### 2022, Dec 21 + +Agenda + + * When 2 meet next: [https://www.when2meet.com/?18056590-SQ9TR](https://www.google.com/url?q=https://www.when2meet.com/?18056590-SQ9TR&sa=D&source=editors&ust=1778600246214660&usg=AOvVaw0wsBBRIB2EDY_va47-XM3T) + * AMDGPU spill patch (reverted: [https://reviews.llvm.org/D124196#4007017](https://www.google.com/url?q=https://reviews.llvm.org/D124196%234007017&sa=D&source=editors&ust=1778600246214795&usg=AOvVaw2VoD-8d2XX5A8BYJYv5Fyx)) + * LIT will require Python 3 soon [https://reviews.llvm.org/D139855](https://www.google.com/url?q=https://reviews.llvm.org/D139855&sa=D&source=editors&ust=1778600246214923&usg=AOvVaw3JWVAe_59jTyaBtSqwu1Nv) + * Meetings during holidays Dec 28th meeting canceled. + * OpenMP-opt slack: + + + * [https://join.slack.com/t/openmp-opt/shared_invite/zt-1ktv8h0wx-6Ks4PjL3qnx8dhC9Nx4fgg](https://www.google.com/url?q=https://join.slack.com/t/openmp-opt/shared_invite/zt-1ktv8h0wx-6Ks4PjL3qnx8dhC9Nx4fgg&sa=D&source=editors&ust=1778600246215199&usg=AOvVaw0OOIGf-AeGCptdF1ArshoO) + + + * Pinned memory: + + + * ½ [https://reviews.llvm.org/D138933](https://www.google.com/url?q=https://reviews.llvm.org/D138933&sa=D&source=editors&ust=1778600246215334&usg=AOvVaw2l35HS4S9F1F83TvwA1TLm) + * 2/2 [https://reviews.llvm.org/D139208](https://www.google.com/url?q=https://reviews.llvm.org/D139208&sa=D&source=editors&ust=1778600246215442&usg=AOvVaw3hGSPqurwOnUnIgpNAGYp0) + + + * NextGen AMD Plugin + + + * Jan-Patrick is testing it + * Latest status: [https://github.com/kevinsala/llvm-project/tree/develop](https://www.google.com/url?q=https://github.com/kevinsala/llvm-project/tree/develop&sa=D&source=editors&ust=1778600246215670&usg=AOvVaw0-P-NxsCnR5GCvvLnLU2pE) + * Landed + + + * Adding support for `--offload-arch=native` + + + * Autodetects the GPU architecture + + + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * Record + Replay ([https://reviews.llvm.org/D138931](https://www.google.com/url?q=https://reviews.llvm.org/D138931&sa=D&source=editors&ust=1778600246216303&usg=AOvVaw0XRz2zlU2tgbhHlKsu0zqK)) + + + 64. Allocate "all" device memory + 65. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 66. Replay -> load image + user allocated memory, launch with argos and parameters + + + * New meeting time for Jan 23, when2meet? + * * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246216725&usg=AOvVaw1nY6_cvlZd2ngowbZk0dYC) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246216803&usg=AOvVaw3KTNN7tgUJccSdvbnHaTIi) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246217054&usg=AOvVaw2G8LEv0YhbZtLzPKn0z21i) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246217329&usg=AOvVaw0defcz8SYhCSDrnzk6_9X-) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246217474&usg=AOvVaw1pS8CBCUYaHzlFydDQOawv) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246217623&usg=AOvVaw0x_EyvchrkCrRgNaoHl7XK) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246217858&usg=AOvVaw2SdGVVhqBpZeVuKTw2Mw6O) + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246217966&usg=AOvVaw3iZLHQW5CFvRFFoewrqfYH) + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246218066&usg=AOvVaw0JFQGQch-FWqFD9ruIgtoQ) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246218218&usg=AOvVaw0u9KAl295u-p8NbvY9U3bo) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246218897&usg=AOvVaw1TSYYGP0uFLAJbFHMuDgaA) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246219101&usg=AOvVaw3og6UPAaWVwT6w1-y2NADE) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246219219&usg=AOvVaw3D3DM6-PaZaBLWqgUNpKy-) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246219380&usg=AOvVaw0ttPvPhqVIrd4I8osyJeKq) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246219932&usg=AOvVaw1TWxIsNDajDZQZihyDzLKw) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246220095&usg=AOvVaw1W3MF7O35IWMS1t2t5fZu3) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246220307&usg=AOvVaw0-qX9HvWCcH5rSryx1N537) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246220490&usg=AOvVaw1JUy8qYJFYmB1VXQQvmKra) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246220652&usg=AOvVaw2-8lnM8sjKi-F77sTsB5X3): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246220832&usg=AOvVaw1fuwWLSrk2dfodpprAz90I) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246221139&usg=AOvVaw3pZ7mTGGKEZ9jP63Twsybo) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246221262&usg=AOvVaw1B5SGZbIu7QPmi47bWLxF7) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246221373&usg=AOvVaw1-qeh-1ffp590HAxooX7aY) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246221488&usg=AOvVaw3c0pY4mB6v0obYMWTzn3A-) + + + +opencl + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-01-04.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-01-04.md new file mode 100644 index 0000000..b300286 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-01-04.md @@ -0,0 +1,158 @@ +### 2023, Jan 4 + +Agenda + + * When 2 meet next: [https://www.when2meet.com/?18056590-SQ9TR](https://www.google.com/url?q=https://www.when2meet.com/?18056590-SQ9TR&sa=D&source=editors&ust=1778600246208800&usg=AOvVaw3179L31YVaBIvhpQuU58tN) + * Pinned memory: + + + * ½ [https://reviews.llvm.org/D138933](https://www.google.com/url?q=https://reviews.llvm.org/D138933&sa=D&source=editors&ust=1778600246208950&usg=AOvVaw1UihcadqDa1itbVHb27eD6) + * 2/2 [https://reviews.llvm.org/D139208](https://www.google.com/url?q=https://reviews.llvm.org/D139208&sa=D&source=editors&ust=1778600246209051&usg=AOvVaw22UuHNT99OlZ6Qhj_bngci) + + + * AMDGPU JIT [https://reviews.llvm.org/D140720](https://www.google.com/url?q=https://reviews.llvm.org/D140720&sa=D&source=editors&ust=1778600246209176&usg=AOvVaw11nON4SJvNRSt2_p7GlOPb) + * Adding support for `--offload-arch=native` + + + * Autodetects the GPU architecture + + + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246209762&usg=AOvVaw3svCzpft2F1zR7d4tGzKgq) + + + * Record + Replay ([https://reviews.llvm.org/D138931](https://www.google.com/url?q=https://reviews.llvm.org/D138931&sa=D&source=editors&ust=1778600246209884&usg=AOvVaw0bAnvM0zC75gYJPNiMHM6w)) + + + 61. Allocate "all" device memory + 62. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 63. Replay -> load image + user allocated memory, launch with argos and parameters + + + * JIT image patch: [https://reviews.llvm.org/D140945](https://www.google.com/url?q=https://reviews.llvm.org/D140945&sa=D&source=editors&ust=1778600246210256&usg=AOvVaw2FH5tfTrlU72XHRhy1bbM9) + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246210374&usg=AOvVaw2Qv-sc5-YDssnZbJ13Haql) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246210450&usg=AOvVaw3SMR5bdFtzN951ZNMgRyd9) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246210676&usg=AOvVaw0T6b0203RpIkcKk4qqnzeg) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246210933&usg=AOvVaw1wuLLe3MtMlRntAf5zeElN) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246211087&usg=AOvVaw05_4LibM_nuTGxAR8DPUKU) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246211245&usg=AOvVaw0O-3wgtbtivGjWue4wVOTM) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246211538&usg=AOvVaw0kwSy8-GiGEkog2O-h6NtF) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246211635&usg=AOvVaw1IIPjtNEtmO2XKqpIc0T6Q) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246211770&usg=AOvVaw0kUNI4UbubterA7PfKy4z-) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246212461&usg=AOvVaw0D7pUVlYT07suTSsHcem3r) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246212658&usg=AOvVaw2ov_2c9z0M07w1Tks6wyIX) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246212758&usg=AOvVaw2A64k050-5RvROWbpnPUk6) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246212909&usg=AOvVaw28J_j-V0iwqKwWZCIf26EL) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246213440&usg=AOvVaw2K-QDw-TwfcWqiUpOiBeDE) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246213612&usg=AOvVaw0mfdqJ_xeFK6QQNAT4sGpQ) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246213813&usg=AOvVaw2Km3SwfJ3zdcld6LRMQTFC) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246213995&usg=AOvVaw29wSKIYnLi0HC92K8VHUC1) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246214168&usg=AOvVaw3tcva4ur8Rfwm7Hh4SJ3ZM): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246214359&usg=AOvVaw2ZD5UJ4z-YgZpSVRbTeJXe) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-01-11.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-01-11.md new file mode 100644 index 0000000..11ebdf2 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-01-11.md @@ -0,0 +1,163 @@ +### 2023, Jan 11 + +Agenda + + * When 2 meet next: [https://www.when2meet.com/?18056590-SQ9TR](https://www.google.com/url?q=https://www.when2meet.com/?18056590-SQ9TR&sa=D&source=editors&ust=1778600246202847&usg=AOvVaw1N0Fuem2OvAqtAf7WRJwpH) + * New kernel launch API: [https://reviews.llvm.org/D141232](https://www.google.com/url?q=https://reviews.llvm.org/D141232&sa=D&source=editors&ust=1778600246202967&usg=AOvVaw02gTDtRrdNKW0mA6HNWrh2) + * Dynamic shared memory per kernel: [https://reviews.llvm.org/D141233](https://www.google.com/url?q=https://reviews.llvm.org/D141233&sa=D&source=editors&ust=1778600246203096&usg=AOvVaw31rQdyOTKMbn9g4Cyo8okl) + * Pinned memory: + + + * ½ [https://reviews.llvm.org/D138933](https://www.google.com/url?q=https://reviews.llvm.org/D138933&sa=D&source=editors&ust=1778600246203246&usg=AOvVaw02yP6_sBgRTfG0nM8vBgUY) + * 2/2 [https://reviews.llvm.org/D139208](https://www.google.com/url?q=https://reviews.llvm.org/D139208&sa=D&source=editors&ust=1778600246203356&usg=AOvVaw2pzMUm5XKSq5L79w7CIpiL) + + + * Adding support for `--offload-arch=native` + + + * Autodetects the GPU architecture + + + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246203973&usg=AOvVaw0SHNBhbhECb9Dh1TlpoNwd) + + + * Record + Replay ([https://reviews.llvm.org/D138931](https://www.google.com/url?q=https://reviews.llvm.org/D138931&sa=D&source=editors&ust=1778600246204097&usg=AOvVaw1pNWeQf7nb3C8MWfThw9mb)) + + + 58. Allocate "all" device memory + 59. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 60. Replay -> load image + user allocated memory, launch with argos and parameters + + + * JIT image patch: [https://reviews.llvm.org/D140945](https://www.google.com/url?q=https://reviews.llvm.org/D140945&sa=D&source=editors&ust=1778600246204450&usg=AOvVaw2t9FNxaX2rvA_q8Tiz6cCf) + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246204574&usg=AOvVaw0Aaf4r6Tk08kD5n0V6nAuJ) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246204650&usg=AOvVaw0ePeL65qPs7YSplHRDpx_i) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246204869&usg=AOvVaw1SHl0_nUNkO8HPJu6fqDrh) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246205142&usg=AOvVaw2BvHms5-k3yIi8tY8YShld) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246205300&usg=AOvVaw3qYdfY8OYlvcUo2cHNYu2V) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246205454&usg=AOvVaw0_mJX-vHbFRfeEOFxQRW-j) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246205682&usg=AOvVaw2eAdvVMBwQ9n63Se6v0mE1) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246205772&usg=AOvVaw1-YUjTUQ6IKD3h4w6mheB7) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246205909&usg=AOvVaw3zuYkLxZEv0JQNAejsS9uV) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246206583&usg=AOvVaw2rkchiIr3c6JkqB0SPTt30) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246206762&usg=AOvVaw3Y_iY72toWU4UDACO3yk4w) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246206860&usg=AOvVaw0tWdQM-ExAQ9jDgmGxeCO1) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246207011&usg=AOvVaw1uaawMCcsnEGIKOA15xwKD) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246207536&usg=AOvVaw0wgQnI019krswFowO-aLBQ) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246207716&usg=AOvVaw3Zy8-GQBc_CUWlNSzXfzB3) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246207924&usg=AOvVaw1StJNrUrj5u-dYEqnVwTAh) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246208117&usg=AOvVaw3S_KJQUVpWehSfXGRNDZRO) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246208277&usg=AOvVaw0NjFHINAoSFxita2wDNqAI): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246208459&usg=AOvVaw3pnK-HzomZSDJXvQwyqToc) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-01-18.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-01-18.md new file mode 100644 index 0000000..fdbefe3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-01-18.md @@ -0,0 +1,171 @@ +### 2023, Jan 18 + +Agenda + + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246195812&usg=AOvVaw1n8wjkx-st8cJjbypRbCfc) + * New kernel launch API: [https://reviews.llvm.org/D141232](https://www.google.com/url?q=https://reviews.llvm.org/D141232&sa=D&source=editors&ust=1778600246195925&usg=AOvVaw2xdowmQc8uRuBJOJL-h3ft) + * Dynamic shared memory per kernel: [https://reviews.llvm.org/D141233](https://www.google.com/url?q=https://reviews.llvm.org/D141233&sa=D&source=editors&ust=1778600246196044&usg=AOvVaw2C1ctAVzqmZi_RVbVlvjMU) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246196139&usg=AOvVaw2Yu4Xr6Ca47WHXiuieCvd9) + * Num threads: [https://github.com/llvm/llvm-project/blob/feee22db52259d19a8624318517ef5688abfc67c/openmp/libomptarget/DeviceRTL/src/State.cpp#L356](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/feee22db52259d19a8624318517ef5688abfc67c/openmp/libomptarget/DeviceRTL/src/State.cpp%23L356&sa=D&source=editors&ust=1778600246196380&usg=AOvVaw0EWuaK43yVH5AMmRlMudEX) + * Pinned memory: + + + * ½ [https://reviews.llvm.org/D138933](https://www.google.com/url?q=https://reviews.llvm.org/D138933&sa=D&source=editors&ust=1778600246196521&usg=AOvVaw1VX1U-ME14ASpc9YZDaE91) + * 2/2 [https://reviews.llvm.org/D139208](https://www.google.com/url?q=https://reviews.llvm.org/D139208&sa=D&source=editors&ust=1778600246196620&usg=AOvVaw0n5RNnf4jwL9fLB2DRZQpd) + + + * Adding support for `--offload-arch=native` + + + * Autodetects the GPU architecture + + + * Only build GPU tests if a GPU is found on the system: [https://reviews.llvm.org/D142018](https://www.google.com/url?q=https://reviews.llvm.org/D142018&sa=D&source=editors&ust=1778600246196876&usg=AOvVaw2eoBpJV7YjG1g2XKazh3h1) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246197407&usg=AOvVaw2M1vPrm92jgDxIxFZCph4z) + + + * Record + Replay ([https://reviews.llvm.org/D138931](https://www.google.com/url?q=https://reviews.llvm.org/D138931&sa=D&source=editors&ust=1778600246197536&usg=AOvVaw25rnfeYHEvEexHcH0Ei0Yq)) + + + 55. Allocate "all" device memory + 56. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 57. Replay -> load image + user allocated memory, launch with argos and parameters + + + * JIT image patch: [https://reviews.llvm.org/D140945](https://www.google.com/url?q=https://reviews.llvm.org/D140945&sa=D&source=editors&ust=1778600246197884&usg=AOvVaw1KVOmh4ByRLL2Y8YIwl3Gr) + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246198010&usg=AOvVaw0NvQJTFT4DKT22DY-Uit9V) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246198093&usg=AOvVaw0F32tuc_6XFlFP8VjQrPzo) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246198316&usg=AOvVaw23PXdS5t2Bld1WPW3msO7a) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246198580&usg=AOvVaw3BJD_RJF4K09Qf9J_nAapZ) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246198736&usg=AOvVaw3GQ8GAJB9iYwevW1x4Z6Q6) + + + * OpenMP Cluster and MPI plugin + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246198887&usg=AOvVaw2vPgJVmEWx5SlzYNjiWbTz) + + + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246199137&usg=AOvVaw2_lNKBOeERSI85oE_BwFdE) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246199240&usg=AOvVaw0Z8GUcuZJqG7mZINBPh5e_) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246199377&usg=AOvVaw1k8oeqLUKtCD1bjMAE2V7D) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246200048&usg=AOvVaw0-IsCOGXhHKEgEkxctEfxG) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246200231&usg=AOvVaw02SWDVSCJziFgGmPWIfrfu) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246200333&usg=AOvVaw205-5tgYvVjbE6fRiSCJym) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246200486&usg=AOvVaw2nQuPL_IRmdLKOcHAlm704) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246201034&usg=AOvVaw12nS2oTJkI3jGv0qAmAK2D) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246201212&usg=AOvVaw0CKTheS-hBLRgHCaOQpcu0) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246201413&usg=AOvVaw0FKe3PZsYYqq6ht7JaY2Pz) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246201604&usg=AOvVaw3ul3HLWMMkdyZZ6QLSkyxP) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246201756&usg=AOvVaw2kKLGRPlaGLhe9W-sy0iOh): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246201938&usg=AOvVaw3X3v4_v4mriZ7glRnsOtEg) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600246202253&usg=AOvVaw1B0ChPMPokF1vbc20Qlkj6) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600246202375&usg=AOvVaw0sGT8kqG7k0mRZVBdAa4gH) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600246202487&usg=AOvVaw2Y-PD1K4JdmgowQAY5MPMZ) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600246202621&usg=AOvVaw1zE30l8Yx6sWZRYusu5_E4) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-01-25.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-01-25.md new file mode 100644 index 0000000..b4ddc50 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-01-25.md @@ -0,0 +1,150 @@ +### 2023, Jan 25 + +Agenda + + * Next meeting Feb 8th + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246189758&usg=AOvVaw2VvRzrJoiLZGzuhUB50M10) + * New kernel launch API: [https://reviews.llvm.org/D141232](https://www.google.com/url?q=https://reviews.llvm.org/D141232&sa=D&source=editors&ust=1778600246189884&usg=AOvVaw3oxWwXr8g3jUY3yUgO8CYF) + * Dynamic shared memory per kernel: [https://reviews.llvm.org/D141233](https://www.google.com/url?q=https://reviews.llvm.org/D141233&sa=D&source=editors&ust=1778600246190010&usg=AOvVaw21ydLWkiQ4MLLPGNGiXRwI) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246190118&usg=AOvVaw2ev5tE_wGI3akQt0EOoLQ6) + * Num threads: [https://github.com/llvm/llvm-project/blob/feee22db52259d19a8624318517ef5688abfc67c/openmp/libomptarget/DeviceRTL/src/State.cpp#L356](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/feee22db52259d19a8624318517ef5688abfc67c/openmp/libomptarget/DeviceRTL/src/State.cpp%23L356&sa=D&source=editors&ust=1778600246190371&usg=AOvVaw2IwOK-iEc0sOMtd-Lij_6T) + * Only build GPU tests if a GPU is found on the system: [https://reviews.llvm.org/D142018](https://www.google.com/url?q=https://reviews.llvm.org/D142018&sa=D&source=editors&ust=1778600246190518&usg=AOvVaw3ZlYbqTgRcGwQQ-NZnL_Vz) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246191010&usg=AOvVaw2noNZAHfC8uJ7PBud5cFSW) + + + 52. Allocate "all" device memory + 53. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 54. Replay -> load image + user allocated memory, launch with argos and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246191382&usg=AOvVaw2IEu8qrUBNL5G1b8jJpds1) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246191471&usg=AOvVaw3vJzXeFNPhcBEs6XpD0Ve6) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246191687&usg=AOvVaw1T-iHblha1O-SA-f5vgOO9) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246191942&usg=AOvVaw2OZA5hVXl_C6vWrIuSEU2S) + + + + * [⚙ [OpenMP] Add non-blocking support for target nowait regions](https://www.google.com/url?q=https://reviews.llvm.org/D132005&sa=D&source=editors&ust=1778600246192090&usg=AOvVaw1X9H6rrb8II5Ry5Wscmafk) + + + * [Presented slides](https://www.google.com/url?q=https://docs.google.com/presentation/d/1yFaIanlR4JccYFhrKe_30k17LgjvyvC6DkOgc1Hum5c/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246192207&usg=AOvVaw1cOFntuE3gcf8wYc36Laq_) + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246192344&usg=AOvVaw11DCeMmzROMC5JpcKp9i1W)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246192577&usg=AOvVaw37G6bzBur4wZUGo1jxhCrN) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246192667&usg=AOvVaw1ACVddxGH7Os6LUjI1Z6Xb) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246192803&usg=AOvVaw3Z1SH8LpZlg39XojkHs7bE) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246193548&usg=AOvVaw2Y2jJrx4mbqofdAFAUIXnm) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246193718&usg=AOvVaw17nZpu_TaVmVfdNtxhRO8d) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246193822&usg=AOvVaw1mgYJBlLH4j6yAZb3AoH8R) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246193979&usg=AOvVaw3r03NLgJ_bbndbgRegrn7S) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246194503&usg=AOvVaw0caBPfSAd6QqL5FhjJp13-) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246194680&usg=AOvVaw2MrYX_xayy0SpiwX1fQhE5) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246194923&usg=AOvVaw2IG5qPfSRBXkji-o2BUsVa) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246195121&usg=AOvVaw0L7q10ggnXfn5lvfLVieCV) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246195283&usg=AOvVaw3s8egtO0aAmNtbIfcvWC01): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246195473&usg=AOvVaw3DRnOG0dLoz7oyCQr4aFO8) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-02-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-02-08.md new file mode 100644 index 0000000..dd81f93 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-02-08.md @@ -0,0 +1,148 @@ +### 2023, Feb 8 + +Agenda + + * Reduction implementations + * Combined Construct + + + +Rewrite entire combined construct section to provide rules for combining constructs, restrictions on combining constructs. Results in a single combined construct description section that covers all possible combined constructs. Should be able to pull the composite constructs into this description since it would no longer just be syntactic sugar for specifying multiple successive constructs but instead would be rules for how they can be combined. + + * Remove old plugins: ~ end of Feb + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246184343&usg=AOvVaw1E0_syEavGD7Q5vgoxzuO_) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246184505&usg=AOvVaw0AQZeNY-eOTHJ5-cMNcRDQ) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246184634&usg=AOvVaw2IyzHpGRvxHq_psePZQfeA) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246185144&usg=AOvVaw2ITJfbqjif6LPAP8oLejT6) + + + 49. Allocate "all" device memory + 50. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 51. Replay -> load image + user allocated memory, launch with argos and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246185520&usg=AOvVaw0ohPdTvtYxFaqyluGUgIjE) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246185608&usg=AOvVaw21GKmVlAAO6PEIw51OMhnS) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246185826&usg=AOvVaw0-hBmy5coCumd7CLUf4HC6) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246186079&usg=AOvVaw0LhtjcQnhMOu3zAo6Biy_B) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246186244&usg=AOvVaw0dqACICo0DzGh9muKRhRcB)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246186485&usg=AOvVaw1BQrL__o99JQfFBYNaSAAO) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246186576&usg=AOvVaw1X1svsOTPlNoWFcO46vxup) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246186708&usg=AOvVaw3zqFI_omGugVaIE81n6xrR) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246187458&usg=AOvVaw2du1weA7E1EwJ5FGbFHbON) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246187635&usg=AOvVaw1MpeSe2mBuRibazNhfxme6) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246187743&usg=AOvVaw1L5oYfauQtMjgWakqTdabW) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246187897&usg=AOvVaw34DaZDcpR0FjQN7j-lgolU) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246188425&usg=AOvVaw2MFXzvm0AOyjdzQ8sSdQDs) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246188604&usg=AOvVaw3fNwDdsn6xfCe1iSWWsvKy) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246188810&usg=AOvVaw3aGOraVujduRFb_nheUylr) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246188997&usg=AOvVaw1ls8OZ72cnmtAJHYelN5x9) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246189167&usg=AOvVaw2w5LH1-RRZLdlc3zuHbFHz): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246189380&usg=AOvVaw1QO3JUUZx7N0uPZi1vZIPJ) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-02-15.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-02-15.md new file mode 100644 index 0000000..a0ac5ec --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-02-15.md @@ -0,0 +1,147 @@ +### 2023, Feb 15 + +Agenda + + * Remove old plugins: ~ end of Feb + * Short talk on implementing RPC in LibC + + + * [https://docs.google.com/presentation/d/1uLDPBtTVCHucedIohCPpH0IaP8FceKZYSx7N8FsuZk8](https://www.google.com/url?q=https://docs.google.com/presentation/d/1uLDPBtTVCHucedIohCPpH0IaP8FceKZYSx7N8FsuZk8&sa=D&source=editors&ust=1778600246178462&usg=AOvVaw3GiwNyj520nHHQU5tsGe_L) + + + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246178600&usg=AOvVaw1OJk1vBSkX6MtfP4iHGWpV) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246178718&usg=AOvVaw3MFzvX0eCdQxDghywXm_ZY) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246178819&usg=AOvVaw3tVOcgTLh2UdkbQy_gPWxs) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246179318&usg=AOvVaw20O2a_Gdy4IzJYQjKbRk4I) + + + 46. Allocate "all" device memory + 47. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 48. Replay -> load image + user allocated memory, launch with argos and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246179680&usg=AOvVaw0fgHkACTJtv7BYbuOfuFTN) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246179759&usg=AOvVaw0zTNQUjx39omtdT1UeohU8) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246179983&usg=AOvVaw2LWLG_d-z506RHYMe9zdBu) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246180240&usg=AOvVaw1S-7BMhWSUWqBpYQzdkgBy) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246180399&usg=AOvVaw3b1dqlR3JQvGgabjFeNVoR)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246180640&usg=AOvVaw2wskBNxt73GUa9wituPCfO) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246180730&usg=AOvVaw37n0idGtULCGOWOYOXvojT) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246180862&usg=AOvVaw3ibMcmhOmQfY5BLgqEWcQt) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246181566&usg=AOvVaw38FjCOdC7guXVuKdoX1Y0Z) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246181742&usg=AOvVaw1ZledsE_AYHQw-bC1a8FJP) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246181849&usg=AOvVaw2KojmY4TWNKlk99LT1eFJs) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246182001&usg=AOvVaw1DSLzuTLipMsSOZIzI-9lv) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246182518&usg=AOvVaw1tVuy6Ti562-KIjx8682WS) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246182687&usg=AOvVaw1qeB_iUJcXKTiopBvwfF2y) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246182887&usg=AOvVaw39fakcXEcvV0gbOHDmnzUT) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246183080&usg=AOvVaw0TTL1iEZ177OhpJPwFa0vP) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246183242&usg=AOvVaw1--ITh2a6biTEsDLtGz4e3): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246183455&usg=AOvVaw1UT0EZ0BO04GrU2rqTGaZ8) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-02-22.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-02-22.md new file mode 100644 index 0000000..f79f5bc --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-02-22.md @@ -0,0 +1,145 @@ +### 2023, Feb 22 + +Agenda + + * More info for kernel launches w/ AMDGPU: [https://reviews.llvm.org/D144521](https://www.google.com/url?q=https://reviews.llvm.org/D144521&sa=D&source=editors&ust=1778600246172158&usg=AOvVaw1ozxNxet0EDddEHxgLMUGG) + * Proposal to break non-globally installed clang openmp, [https://reviews.llvm.org/D143306](https://www.google.com/url?q=https://reviews.llvm.org/D143306&sa=D&source=editors&ust=1778600246172310&usg=AOvVaw3n-NafSB_vrJlbxPWWZ3op) + + + * Specifically, stop setting rpath because fedora don't like it, thus openmp programs won't find openmp libraries, and they'll refuse to run. Unless people set LD_LIBRARY_PATH or mess around with the linker themselves, but that'll closely approximate people trying openmp and concluding that it's just broken and giving up + * It seems there's a configuration file alternative functionality in clang, though I can't see how that could fix things unless it also sets rpath, in which case why would fedora be ok with it? But whatever, the consensus in D143306 is going against me, so if we _don't_ want openmp to stop working from local installs on llvm-16, please speak up + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246173065&usg=AOvVaw3AoO-QuQ6o623Aw2gmxokg) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246173199&usg=AOvVaw3LlMjQcEBSLRGom2N3d9dk) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246173303&usg=AOvVaw0TTYrVKmLcpSsTz2GLr2-V) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246173795&usg=AOvVaw14Wa_9yRyVWJ_S1JD5pelG) + + + 43. Allocate "all" device memory + 44. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 45. Replay -> load image + user allocated memory, launch with argos and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246174159&usg=AOvVaw0o40SUsYmXyhYbT9iyvqkb) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246174250&usg=AOvVaw3NtavYv4OiWDdTP0fOr-ZK) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246174468&usg=AOvVaw06u7aUQuvvv3h99QuB4Lj0) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246174722&usg=AOvVaw2789_ybMBNUYoll1i-ywME) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246174876&usg=AOvVaw34DXRw9_zTsMSRYswozOpO)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246175107&usg=AOvVaw2ZmPG3ykfTfYJ1hkp6znm_) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246175214&usg=AOvVaw3eA1t-75VVKDn1-PBrAOOC) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246175349&usg=AOvVaw23dwctqRtAKa3qTe3qWRz9) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246176057&usg=AOvVaw18yw-x_7nV2GBZwQWWM54P) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246176272&usg=AOvVaw3Cw2AB-IivDrKXW88yJ5GC) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246176375&usg=AOvVaw3sFws59nm3JZ9z92aBxXyh) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246176535&usg=AOvVaw28ZGc_1jkez3yxw3YWY703) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246177070&usg=AOvVaw0NS8zoZOIQv1gVWnUigRIf) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246177250&usg=AOvVaw38i6tyrbY0Jodp_Gm4KoG2) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246177455&usg=AOvVaw1uNTgcVEfItKVyrpWS4HKr) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246177636&usg=AOvVaw1FTnq-OsBjYaHWT9C53lmK) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246177819&usg=AOvVaw2646GalzwTDzk2aXMoqm7J): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246178005&usg=AOvVaw3ZeNXgGckeO7oJEghd1oM2) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-03-01.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-01.md new file mode 100644 index 0000000..a4fa851 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-01.md @@ -0,0 +1,176 @@ +### 2023, Mar 01 + +Agenda + + * More info for kernel launches w/ AMDGPU: [https://reviews.llvm.org/D144521](https://www.google.com/url?q=https://reviews.llvm.org/D144521&sa=D&source=editors&ust=1778600246165108&usg=AOvVaw034epE0uUU_lpVWpqtdXIu) + * Firstprivate variables are passed by-ref if its alignment is greater than alignof(uintptr_t) + + + * [https://godbolt.org/z/6jPvMvsxh](https://www.google.com/url?q=https://godbolt.org/z/6jPvMvsxh&sa=D&source=editors&ust=1778600246165308&usg=AOvVaw1h2n_-9skISQa5w9hAUbYU) + * Shouldn't we be able to pass this by-value + * [https://godbolt.org/z/sPbE3aP7n](https://www.google.com/url?q=https://godbolt.org/z/sPbE3aP7n&sa=D&source=editors&ust=1778600246165458&usg=AOvVaw2ZBxRsw9rcnA11EN4xRgkb) <\- 64 aligned load is emitted (w/o by-value) (line 262) + + + * Status of omp loop directive? + + + * [https://reviews.llvm.org/D144634](https://www.google.com/url?q=https://reviews.llvm.org/D144634&sa=D&source=editors&ust=1778600246165639&usg=AOvVaw24UYSaWlBz68k-egONtsZE) + + + * Proposal to break non-globally installed clang openmp, [https://reviews.llvm.org/D143306](https://www.google.com/url?q=https://reviews.llvm.org/D143306&sa=D&source=editors&ust=1778600246165790&usg=AOvVaw1t9PEFVfNRQIl2uEf5P7r_) + + + * Specifically, stop setting rpath because fedora don't like it, thus openmp programs won't find openmp libraries, and they'll refuse to run. Unless people set LD_LIBRARY_PATH or mess around with the linker themselves, but that'll closely approximate people trying openmp and concluding that it's just broken and giving up + * It seems there's a configuration file alternative functionality in clang, though I can't see how that could fix things unless it also sets rpath, in which case why would fedora be ok with it? But whatever, the consensus in D143306 is going against me, so if we _don't_ want openmp to stop working from local installs on llvm-16, please speak up + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246166547&usg=AOvVaw3mECZhtTF0fuDi03skApgL) + + + * Need help to identify the right intinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246166862&usg=AOvVaw2taiU6hWsd9eGFZb0ft_pG) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246166988&usg=AOvVaw1B1UaoMc4JwSSC6D3RW21p) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246167091&usg=AOvVaw3viDgF-xwCKHiNr4Z0ZbxF) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246167603&usg=AOvVaw1tGFtpdH8B9qWxraSJVNmL) + + + 40. Allocate "all" device memory + 41. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 42. Replay -> load image + user allocated memory, launch with argos and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246167967&usg=AOvVaw14N_CIJJOhe2tzdc9S1Zre) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246168047&usg=AOvVaw3G5eqAwUevopA467emnT9D) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246168286&usg=AOvVaw1mj8ORJLrWhMkWahTFX8fv) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246168552&usg=AOvVaw0Gr7nDupbjmFROK_gcpG20) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246168710&usg=AOvVaw08PBgkzIV5thKRkK3Pyi1g)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246168955&usg=AOvVaw2w8jqoqEq7tIHrwT59KxOA) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246169048&usg=AOvVaw1MTxLKBqZcMVbjnuvH_HXl) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246169193&usg=AOvVaw25OoU2gn4CnXjclHtG2B2S) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246169862&usg=AOvVaw2SkVDpiAmAWFXfMssKjUV6) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246170032&usg=AOvVaw3uxE9svhUCMWqE92lKq6OB) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246170142&usg=AOvVaw3AKmr5M7jjvW3XQKRfa7ic) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246170333&usg=AOvVaw2YPkBm_vlytVSPSt_6-IJX) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246170873&usg=AOvVaw0-M-jJBFTRthiABPFdaxh6) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246171044&usg=AOvVaw2hDqWTBZXufyOLCw_hFipz) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246171256&usg=AOvVaw1yiS5WkOk_zXYtbkEjomT-) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246171450&usg=AOvVaw0z5PUSUD1PP-cR-xaLZRTd) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246171629&usg=AOvVaw0H9DTsTlmfkeOelUcHUFmn): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246171822&usg=AOvVaw10A5AF3-tggLx9M8c-DKAH) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-03-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-08.md new file mode 100644 index 0000000..28c0436 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-08.md @@ -0,0 +1,207 @@ +### 2023, Mar 08 + +Agenda + + * [Openmp] Segmentation fault on goulash on amdgpu #60602 [https://github.com/llvm/llvm-project/issues/60602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/60602&sa=D&source=editors&ust=1778600246156445&usg=AOvVaw1FlXUcTzXIDBlzBNBKTCCO) + + + * This is reproducible with top of trunk. It seems to have started after +[OpenMP] Modernize the kernel launching interface and APIs +[https://reviews.llvm.org/rG16a385ba21a921a42009ff971199bce56eb2a86e](https://www.google.com/url?q=https://reviews.llvm.org/rG16a385ba21a921a42009ff971199bce56eb2a86e&sa=D&source=editors&ust=1778600246156703&usg=AOvVaw0LBnl9OWAQsAz5Fd-rkrph) and +[OpenMP][FIX] Runtime args are not kernel args +[https://reviews.llvm.org/rG3820d0eaaf4ecb557cbb260e34bf5a9eeb51e0e7](https://www.google.com/url?q=https://reviews.llvm.org/rG3820d0eaaf4ecb557cbb260e34bf5a9eeb51e0e7&sa=D&source=editors&ust=1778600246156865&usg=AOvVaw1Mtd-Rx6dA_-bGwZyzipgR) landed. + * It fails with both the old and the nextgen plugin. + + + * Enthusiasm for removing rpath setting on binaries, aka "trunk openmp doesn't work any more unless you install it under /usr or do unspecified awkward magic, possibly patch trunk yourself before compiling", at D118493. + + + * Lack of defensive mechanism in libomp!!! Minimal need is major version check. Don't assume compatibility. + + + * Can anyone outside of AMD run tests on AMDGPU hardware at the moment? If so, how do you do so? + + + * Bonus question, is there any way to run things on an intel GPU? + + + * Github intel/llvm (for SYCL) and intel/compute-runtime (L0 and IGC). + + + * Unify the DeviceRTL Cmake handling [https://reviews.llvm.org/D145513](https://www.google.com/url?q=https://reviews.llvm.org/D145513&sa=D&source=editors&ust=1778600246157668&usg=AOvVaw1M0Zc4S9RrIH79Z1B7luaw) + + + * Removes LIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES in favor of LIBOMPTARGET_GPU_ARCHITECTURES=|all|auto + + + * Firstprivate variables are passed by-ref if its alignment is greater than alignof(uintptr_t) + + + * [https://godbolt.org/z/6jPvMvsxh](https://www.google.com/url?q=https://godbolt.org/z/6jPvMvsxh&sa=D&source=editors&ust=1778600246157975&usg=AOvVaw1_P-70b0J7xPgngYZLf0WR) + * Shouldn't we be able to pass this by-value + * [https://godbolt.org/z/sPbE3aP7n](https://www.google.com/url?q=https://godbolt.org/z/sPbE3aP7n&sa=D&source=editors&ust=1778600246158178&usg=AOvVaw0qtM7hBWJpOozK51NZZer-) <\- 64 aligned load is emitted (w/o by-value) (line 262) + + + * Status of omp loop directive? + + + * [https://reviews.llvm.org/D144634](https://www.google.com/url?q=https://reviews.llvm.org/D144634&sa=D&source=editors&ust=1778600246158409&usg=AOvVaw30vcd7OrzjuY1zHdX7dEGR) + + + * Proposal to break non-globally installed clang openmp, [https://reviews.llvm.org/D143306](https://www.google.com/url?q=https://reviews.llvm.org/D143306&sa=D&source=editors&ust=1778600246158559&usg=AOvVaw2aHhZn4MXYYoP3_0aTfuBf) + + + * Specifically, stop setting rpath because fedora don't like it, thus openmp programs won't find openmp libraries, and they'll refuse to run. Unless people set LD_LIBRARY_PATH or mess around with the linker themselves, but that'll closely approximate people trying openmp and concluding that it's just broken and giving up + * It seems there's a configuration file alternative functionality in clang, though I can't see how that could fix things unless it also sets rpath, in which case why would fedora be ok with it? But whatever, the consensus in D143306 is going against me, so if we _don't_ want openmp to stop working from local installs on llvm-16, please speak up + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246159330&usg=AOvVaw2laPkSjPgPZWRLHvr4UB75) + + + * Need help to identify the right intinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246159660&usg=AOvVaw0TlZ4s3Uoq8_n9wiQ0qyVs) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246159785&usg=AOvVaw3l0xj8xUj5GnYS5-95wVOC) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246159889&usg=AOvVaw2zlHw3h934GzqEeX9xWFkG) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246160568&usg=AOvVaw3A3AU30dmX6fr-m_3ZE_sD) + + + 37. Allocate "all" device memory + 38. Launch -> Write the image, write all "user allocated" memory, inlc. Arguments, parameters + 39. Replay -> load image + user allocated memory, launch with argos and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246160932&usg=AOvVaw0gQHbrM-DOrORaBngmIQBg) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246161011&usg=AOvVaw37Kjl3fV13m2S_vPP89Nm0) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246161244&usg=AOvVaw1xtm9xYQH2qWsmHbfv5TAC) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246161504&usg=AOvVaw2rDORDXza9krhCJlUDzKRM) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246161668&usg=AOvVaw1aVi9nF8iMqBRx14y9jGKa)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246161902&usg=AOvVaw2WT3Vv0IjzjVxztGSm3af-) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246162002&usg=AOvVaw3BZuBxEW5vI3ul5yVbFusa) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246162146&usg=AOvVaw0CT-Pxj_uOL7peXcHVxoTL) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246162818&usg=AOvVaw3hcXhh1HVUa7SVa7ALLwb3) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246163033&usg=AOvVaw0h46bXy0lh-1F3FGxu66Uv) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246163147&usg=AOvVaw29z1cazbIprq-WZnFXrGiN) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246163305&usg=AOvVaw1lmMQZS4MefpyQ6xMVc74A) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246163829&usg=AOvVaw3om7_XgpTB-pZHvA7XU9nu) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246163988&usg=AOvVaw1oKLswjon_7kllbcFy9e9v) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246164197&usg=AOvVaw1pakQRGwrMUIp5TEGUQSG9) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246164387&usg=AOvVaw0fw4q0XBINn7T_rUhUeEFq) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246164537&usg=AOvVaw0ZF_KVEeQvfbjWYtMCEqjz): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246164752&usg=AOvVaw15DiCtkcld_HQAeXzYPTni) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-03-15.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-15.md new file mode 100644 index 0000000..23b30bc --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-15.md @@ -0,0 +1,167 @@ +### 2023, Mar 15 + +Agenda + + * Initial RPC support in libc + + + * [https://reviews.llvm.org/D145913](https://www.google.com/url?q=https://reviews.llvm.org/D145913&sa=D&source=editors&ust=1778600246150434&usg=AOvVaw240I8hKsfxHVu1A4GRsVqJ) + + + * Status of omp loop directive? + + + * [https://reviews.llvm.org/D144634](https://www.google.com/url?q=https://reviews.llvm.org/D144634&sa=D&source=editors&ust=1778600246150570&usg=AOvVaw3XBQs8ph_KG4wXuQMwSUBA) + * [https://reviews.llvm.org/D145823](https://www.google.com/url?q=https://reviews.llvm.org/D145823&sa=D&source=editors&ust=1778600246150672&usg=AOvVaw07Cu1TrFtiHrJ2B_GW5RkZ) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246150830&usg=AOvVaw1bBbG75GXLv-4tUGXVAS0j) + + + * Need help to identify the right intinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246151165&usg=AOvVaw1-AvjZjYqGjWc7bBpd4W7u) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246151290&usg=AOvVaw0U6bClZUR0178a-M01saeL) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246151402&usg=AOvVaw23UqvtOr6v9epIHDLDQ-iD) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246151951&usg=AOvVaw20571ONJD34jODHC1oAs-k) + + + 34. Allocate "all" device memory + 35. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 36. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246152318&usg=AOvVaw0GuPWimZJcBjWEZHZhT0Oe) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246152406&usg=AOvVaw3LAVKQEAlwjY2qqLi4E4Z_) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246152625&usg=AOvVaw1kZyt884WIhdM_XeZviSfS) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246152883&usg=AOvVaw3qWs9_Tzp6Q3k6d7nJpN-R) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246153039&usg=AOvVaw22vZVQiz4zGKLDO1EUo-Vs)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246153290&usg=AOvVaw3zB_bhqfAA984tvD0NuTWl) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246153383&usg=AOvVaw2J3N_Nt8YtZSRFZOCvnC8I) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246153514&usg=AOvVaw2J_F7bnhtJDZg9ZKm2vcF2) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246154195&usg=AOvVaw1pNdPNYgGX8ZiPOFpTdAsb) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246154363&usg=AOvVaw3IoOeQj-dG4bTcKlvOduoE) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246154472&usg=AOvVaw0Gg5N5l14CXA7AAMoijsiq) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246154627&usg=AOvVaw0IHOBLh3_ukHH_RTDQphTM) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246155152&usg=AOvVaw3lHPmhZknoazFTqQT3UOck) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246155323&usg=AOvVaw0T-hAQVAVyBu9hYeyS6Rkc) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246155519&usg=AOvVaw3aBlwJJuMrFGzHhPk_QLs3) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246155707&usg=AOvVaw32HJp7kPkQwq2ONx90dWdR) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246155864&usg=AOvVaw2CiKd3ws6UECt-AfSHv5u_): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246156044&usg=AOvVaw1IAb_2riuTo2IGaE__IysR) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-03-22.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-22.md new file mode 100644 index 0000000..81e9697 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-22.md @@ -0,0 +1,172 @@ +### 2023, Mar 22 + +Agenda + + * Initial RPC support in libc + + + * [https://reviews.llvm.org/D145913](https://www.google.com/url?q=https://reviews.llvm.org/D145913&sa=D&source=editors&ust=1778600246144016&usg=AOvVaw3TOfyL7CmW0vVtVtHwxqhh) + + + * Status of omp loop directive? + + + * [https://reviews.llvm.org/D144634](https://www.google.com/url?q=https://reviews.llvm.org/D144634&sa=D&source=editors&ust=1778600246144167&usg=AOvVaw2hLkOIe1u3WvDCeQwO-2ou) + * [https://reviews.llvm.org/D145823](https://www.google.com/url?q=https://reviews.llvm.org/D145823&sa=D&source=editors&ust=1778600246144270&usg=AOvVaw3b6au2T5v2WVbx0TGZUWqb) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246144426&usg=AOvVaw1QQq4_NnY-Y8xz5qJGKy_1) + + + * Need help to identify the right intinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124070](https://www.google.com/url?q=https://reviews.llvm.org/D124070&sa=D&source=editors&ust=1778600246144725&usg=AOvVaw0P3Mk6CVQn2CNwG29cf0cu) + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246144827&usg=AOvVaw3qAsd0dR1sFmPcJae7Nrnr) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246144921&usg=AOvVaw1eyEJEweUZs69PIpFS8UOe) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246145010&usg=AOvVaw0TjFS2Yg-4Ocu0hlYQoYSW) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246145222&usg=AOvVaw2WTWoqefUSuxVkfAPMqWLt) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246145356&usg=AOvVaw0sRnDXFSmHRSW0i_kq6tpP) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246145462&usg=AOvVaw04mpVni2MvMd1JcF6TpC1X) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246145955&usg=AOvVaw30zocedRbAuqI7NqLQuDOG) + + + 31. Allocate "all" device memory + 32. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 33. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246146318&usg=AOvVaw1RwDvJbnXqp_-HhEQNQQjJ) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246146399&usg=AOvVaw0o1htJE4gPfhHYc75sQK60) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246146617&usg=AOvVaw0tPMmu4nGbY1EN-0zDNrhH) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246146877&usg=AOvVaw3BAk6ykt01ww6SL4QKfqds) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246147031&usg=AOvVaw1xG7VGWzs4YiELmO1cWBrR)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246147275&usg=AOvVaw04S3_RhmY2z9n2SH0A3-YB) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246147367&usg=AOvVaw1RcPaw11DZ6pOXNI0c8VcU) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246147500&usg=AOvVaw10FEHP8N5hv_tVeVl-XGY7) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246148198&usg=AOvVaw3PmAxibOfq1xh47AWG2N95) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246148376&usg=AOvVaw3WQ_zE0h_WFeqlVlYI8OmD) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246148480&usg=AOvVaw0KYAGmMR6LWBTqAjc85dCb) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246148632&usg=AOvVaw1DLEQ9sFMTSyD3cM78Ty4b) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246149174&usg=AOvVaw2a3BSVdQrsUfg-c87ZxzcD) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246149342&usg=AOvVaw0Y86HVf-D39GKdbHsL7CcX) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246149587&usg=AOvVaw2RbMLlJ72PmAj-hQcHS1Ad) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246149781&usg=AOvVaw02gUVMTnLFmnSe5ZuAtAwK) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246149937&usg=AOvVaw1mtICLMsgfnG-HDAkcYZiQ): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246150121&usg=AOvVaw3UvjSeYE_6jmmcPvtHF-rk) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-03-29.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-29.md new file mode 100644 index 0000000..64c94a2 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-03-29.md @@ -0,0 +1,185 @@ +### 2023, Mar 29 + +Agenda + + * OpenMP asynchronous memory copy support + + + * Not sure if this fully respects the spec: "The value of num_dims must be between 1 and the implementation-defined limit, which must be at least three." and "An application can determine the number of inclusive dimensions supported by an implementation by passing NULL for both dst and src. The routine returns the number of dimensions supported by the implementation for the specified device numbers. No copy operation is performed." + * [https://reviews.llvm.org/D136103](https://www.google.com/url?q=https://reviews.llvm.org/D136103&sa=D&source=editors&ust=1778600246137101&usg=AOvVaw1Wgyhbe-nC7kN_Q0x9Tuuv) + + + * Expand RPC support in libc + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246137288&usg=AOvVaw1sTF2EAX07IoPeCk8hSB4E) + + + * Status of omp loop directive? + + + * Reduction on Loop constructs. Is it supported + * [https://reviews.llvm.org/D144634](https://www.google.com/url?q=https://reviews.llvm.org/D144634&sa=D&source=editors&ust=1778600246137487&usg=AOvVaw0nxgD0h3-W5aRsoxEvsNez) + * [https://reviews.llvm.org/D145823](https://www.google.com/url?q=https://reviews.llvm.org/D145823&sa=D&source=editors&ust=1778600246137578&usg=AOvVaw1fhcuXdSrw59pAB4CS9dHD) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246137742&usg=AOvVaw1RMEJiTWNKGd9p7NVirT6L) + + + * Need help to identify the right intinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124070](https://www.google.com/url?q=https://reviews.llvm.org/D124070&sa=D&source=editors&ust=1778600246138058&usg=AOvVaw1_KWKr-a8IcXsRjFhipBdC) + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246138181&usg=AOvVaw3eZCNuS5XfzxRxh9yUo9av) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246138278&usg=AOvVaw2ngE8g1Qp26e1XkRH8scSN) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246138378&usg=AOvVaw336vt3NCMz94wteBELpEyO) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246138555&usg=AOvVaw3yP9h6SbkkYkVByGVZHH7z) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246138673&usg=AOvVaw07QV-F-Gei80e5TjtJFYkO) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246138773&usg=AOvVaw1wqcNYWCOwntHv5PnMi2Ee) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246139279&usg=AOvVaw3miZlGXhT6O4OkypxLDdAS) + + + 28. Allocate "all" device memory + 29. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 30. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246139636&usg=AOvVaw2jhciAK2fBvNJqHwFGtwMD) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246139723&usg=AOvVaw35BI6g9O3ViJ70jFMgsCcs) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246139937&usg=AOvVaw2a06Zamx-bh2dcg0o_t-fb) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246140193&usg=AOvVaw2UjDJpCkGmUrRqL04R4SQ_) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246140361&usg=AOvVaw3rBFsJBPdWN07iUiWPVZ4h)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246140782&usg=AOvVaw15SPS-Y0BlTpVqalJ6V43B) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246140912&usg=AOvVaw2onrQg4f4dVhwzHsogFP6N) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246141064&usg=AOvVaw3wNY-IHNXXhgbKDiCLqgfg) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246141745&usg=AOvVaw1xSqvSgqbOyqhszFW5QMuf) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246141916&usg=AOvVaw2NZiORfsUKTaesQpe3qOq5) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246142027&usg=AOvVaw3L4VSoOU1A466X4I4QZ9EH) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246142186&usg=AOvVaw0CQwYy4JTSopCWIfjiKIe9) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246142694&usg=AOvVaw0UPlmZWtg-MYRyJVBvvu85) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246142918&usg=AOvVaw1wSSi1GSwvhL7dCwkZqNA4) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246143142&usg=AOvVaw0w05wJeo1ySfwz8bzTIQsL) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246143329&usg=AOvVaw18OqiaVvbCeUoAMO-X1rbH) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246143493&usg=AOvVaw1VT4kh6v9fC6x-rT0lzG1-): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246143676&usg=AOvVaw3W028XoDQ6LYabtZF6bQa7) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-04-05.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-04-05.md new file mode 100644 index 0000000..fc2415c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-04-05.md @@ -0,0 +1,182 @@ +### 2023, April 05 + +Agenda + + * New Topics + * OpenMP asynchronous memory copy support + + + * Not sure if this fully respects the spec: "The value of num_dims must be between 1 and the implementation-defined limit, which must be at least three." and "An application can determine the number of inclusive dimensions supported by an implementation by passing NULL for both dst and src. The routine returns the number of dimensions supported by the implementation for the specified device numbers. No copy operation is performed." + * [https://reviews.llvm.org/D136103](https://www.google.com/url?q=https://reviews.llvm.org/D136103&sa=D&source=editors&ust=1778600246130068&usg=AOvVaw0fsGgZL_62H4TQxw4nNdho) + + + * Expand RPC support in libc + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246130242&usg=AOvVaw1WIyyOea7WO8fLy5xTGPmy) + + + * Status of omp loop directive? + + + * Reduction on Loop constructs. Is it supported + * [https://reviews.llvm.org/D144634](https://www.google.com/url?q=https://reviews.llvm.org/D144634&sa=D&source=editors&ust=1778600246130449&usg=AOvVaw29uuS90UeQXVFGUlviBOEe) + * [https://reviews.llvm.org/D145823](https://www.google.com/url?q=https://reviews.llvm.org/D145823&sa=D&source=editors&ust=1778600246130541&usg=AOvVaw3LgGDbBTut0nYS1oxXj9Wq) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246130700&usg=AOvVaw3aB11bBY0HqfV_zXGlr6hH) + + + * Need help to identify the right intinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124070](https://www.google.com/url?q=https://reviews.llvm.org/D124070&sa=D&source=editors&ust=1778600246131027&usg=AOvVaw2QQc7TG-K1d0CusUW6KcdD) + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246131134&usg=AOvVaw0O_2r_CGwYZp41EqxxKLbZ) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246131227&usg=AOvVaw3xTAosgcO03_W-rx_T6iIA) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246131326&usg=AOvVaw3FDmfrnRG7IPqTK3v8Bo7d) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246131504&usg=AOvVaw3TEKvbwDT0GBdKGmiMnzFI) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246131620&usg=AOvVaw37ATnjLseiORmzUC19VGsJ) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246131726&usg=AOvVaw3Y0N-pAiniU4AD8VeV5DcB) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246132234&usg=AOvVaw0r_ly85eAsYEGfkjLvCkpW) + + + 25. Allocate "all" device memory + 26. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 27. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246132590&usg=AOvVaw1JjPHcFcBpzXDMAmyQK2VY) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246132669&usg=AOvVaw3Bt25g88ZlQfYVFvzpdVNf) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246132890&usg=AOvVaw1dyChstWcH7V4hgwXcPFtI) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246133155&usg=AOvVaw1nRX2kmnlYsQkD98oyWpaf) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246133316&usg=AOvVaw3wI5cbWrhmQda7Dpq5tmoW)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246133558&usg=AOvVaw1WlI8MTjZxJtIDjgjDRwyG) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246133652&usg=AOvVaw2G3rkIxeQ4vtxfWTNsRTQq) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246133786&usg=AOvVaw3VmocbxvgWzzrp1BEbB7Mr) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246134464&usg=AOvVaw3Otf2auDQZ-GtZ_Ota41TJ) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246134643&usg=AOvVaw19goD5sLqWUWhbqO2Tik4F) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246134741&usg=AOvVaw0SWzQXrskSdHPByKbrLCWV) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246134890&usg=AOvVaw0tY_-yDh5U0GIO7VG8_EA3) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246135448&usg=AOvVaw2tg0j_HH6zBRzJcQk4od2G) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246135617&usg=AOvVaw26sVJctN713kq4jov92erF) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246135844&usg=AOvVaw1x1dwHev3zYagJvIky6SLU) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246136028&usg=AOvVaw2hz7xeK0Ip6vMCKoFQ6VSI) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246136184&usg=AOvVaw3nRE9EQ7qXfUyr-2p8Ro2P): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246136374&usg=AOvVaw09O4kp75mhWDccYZe2CZG9) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-04-12.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-04-12.md new file mode 100644 index 0000000..892aa3c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-04-12.md @@ -0,0 +1,202 @@ +### 2023, April 12 + +Agenda + +New intel + + * Recommended method to restore -rpath usage for OpenMP + + + * [https://reviews.llvm.org/D147943](https://www.google.com/url?q=https://reviews.llvm.org/D147943&sa=D&source=editors&ust=1778600246122026&usg=AOvVaw1KmaiCzkMGCotH9x_EE23w) + + + * How to handle multiple images with conflicting architectures + + + * [https://reviews.llvm.org/D147756](https://www.google.com/url?q=https://reviews.llvm.org/D147756&sa=D&source=editors&ust=1778600246122213&usg=AOvVaw3MG2spQXqphUZ7FwmuY71e) + + + * Open Source contributions from HPE (Michael Kruse, Zachary Tschirhart) + * Variables automatically allocated kmpc_alloc_shared + + + +Previous + + * OpenMP asynchronous memory copy support + + + * Not sure if this fully respects the spec: "The value of num_dims must be between 1 and the implementation-defined limit, which must be at least three." and "An application can determine the number of inclusive dimensions supported by an implementation by passing NULL for both dst and src. The routine returns the number of dimensions supported by the implementation for the specified device numbers. No copy operation is performed." + * [https://reviews.llvm.org/D136103](https://www.google.com/url?q=https://reviews.llvm.org/D136103&sa=D&source=editors&ust=1778600246122920&usg=AOvVaw2WUPf0ncyKpx4qYzl2-GSf) + + + * Expand RPC support in libc + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246123106&usg=AOvVaw2ez4NCuf-Kg2wITGjjIXtt) + + + * Status of omp loop directive? + + + * Reduction on Loop constructs. Is it supported + * [https://reviews.llvm.org/D144634](https://www.google.com/url?q=https://reviews.llvm.org/D144634&sa=D&source=editors&ust=1778600246123320&usg=AOvVaw2MBr8GuRzRb47ulvdt4xD3) + * [https://reviews.llvm.org/D145823](https://www.google.com/url?q=https://reviews.llvm.org/D145823&sa=D&source=editors&ust=1778600246123412&usg=AOvVaw1YH3z2CuRVWMIM9asQ6TId) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246123588&usg=AOvVaw1CDoAgNv510whMpT_Bh9ou) + + + * Need help to identify the right intinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124070](https://www.google.com/url?q=https://reviews.llvm.org/D124070&sa=D&source=editors&ust=1778600246123904&usg=AOvVaw06tuH7J41m0ZN09u_17DsI) + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246124030&usg=AOvVaw2g1wgwuRIFrn7rU3zU9mRp) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246124140&usg=AOvVaw2-ucHBdbQ_x4IfjyCWWZZ8) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246124233&usg=AOvVaw0WVBi9MpizVsWE2ZO6vxUR) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246124430&usg=AOvVaw2puiVPoiZzuN8xB47SsRr6) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246124552&usg=AOvVaw1MRVhpTJzbb80hvJhUy2ZG) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246124655&usg=AOvVaw1A-8gXF7NOI8CNhR24DnQU) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246125169&usg=AOvVaw3BZ7RWxyIIvuqAI1xtmNA5) + + + 22. Allocate "all" device memory + 23. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 24. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246125532&usg=AOvVaw0JCN4cDu190Wy4WYx--mx0) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246125616&usg=AOvVaw0YK6qk_zmGRHcwUGK2BOG-) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246125832&usg=AOvVaw21jaoFUxF4qhNQXvv-S1Pw) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246126085&usg=AOvVaw2vva3irPTgej-G0wcmdO8f) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246126268&usg=AOvVaw0nWVYKHx-OOZcl6EFkkFZ2)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246126502&usg=AOvVaw28MKGJOYOhVCf5LVauXGDN) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246126601&usg=AOvVaw15Ipa_iz6xTRXBuLxZykDu) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246126737&usg=AOvVaw3fyB9Nsn5YLWDiN2fZc0EO) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246127409&usg=AOvVaw1VNKYzBC4GifQTmP36ofsx) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246127577&usg=AOvVaw2elmirhaUfXHz0qepdKCF5) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246127703&usg=AOvVaw3pdHj7EL5TDP9OvxVkzkDe) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246127859&usg=AOvVaw0j1-AG9tVxa4cpfjg_Uym1) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246128418&usg=AOvVaw3_UHkkuqa4-EXOL509xro_) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246128594&usg=AOvVaw2LVueLrnhfNsUFQ3p-t2Sn) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246128807&usg=AOvVaw2mKM7r_sVY_FM4rXWQz7eS) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246128998&usg=AOvVaw0rCPd73GDAOYDDUTk-oyZH) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246129160&usg=AOvVaw0StO8O8jiXrv5S2923xunf): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246129352&usg=AOvVaw1fdby13xRKRSWaZVCUFypX) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-04-26.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-04-26.md new file mode 100644 index 0000000..db63e52 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-04-26.md @@ -0,0 +1,405 @@ +### 2023, April 26 + +Agenda + +New + + * Switch current "experimental" AMDGPU OpenMP Runtime buildbot to production and move the current "production" buildbot into staging + + + * Experimental buildbot does make check-openmp, check-clang, check-llvm, check-lld, check-libc + * Production buildbot: [https://lab.llvm.org/buildbot/#/builders/193](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/193&sa=D&source=editors&ust=1778600246107136&usg=AOvVaw0xwwbcCul4Jd0zHFMTHSg8) + * Experimental buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246107274&usg=AOvVaw2TJy6YWLefgOKwZE8EqICj) + + + * Multi-threaded RPC support + + + * [https://reviews.llvm.org/D148943](https://www.google.com/url?q=https://reviews.llvm.org/D148943&sa=D&source=editors&ust=1778600246107410&usg=AOvVaw2hmoMr2SKa-YdTR1qbg4oT) + * Nvidia buildbot: [https://lab.llvm.org/buildbot/#/builders/46](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/46&sa=D&source=editors&ust=1778600246107557&usg=AOvVaw2yMd2OJUfKCR4tFJldhQx2) + * AMDGPU buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246107684&usg=AOvVaw3datB7vjFKNmIUGn5YhZ2z) + + + * One SPEC HPC C/C++ test is still not working on Frontier, five are running now. + * AMD signal active waiting[ https://reviews.llvm.org/D148808](https://www.google.com/url?q=https://reviews.llvm.org/D148808&sa=D&source=editors&ust=1778600246107886&usg=AOvVaw3u4vVtruf7Of7kEek21Ucb) + + + +Previous + + * How to handle multiple images with conflicting architectures + * [https://reviews.llvm.org/D147756](https://www.google.com/url?q=https://reviews.llvm.org/D147756&sa=D&source=editors&ust=1778600246108104&usg=AOvVaw1lB_QbaOuU8qGuTruq55WY) + * Expand RPC support in libc + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246108295&usg=AOvVaw2ec2HtI2ZcoZxwBglRyf5s) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246108457&usg=AOvVaw1NEtXHDeo3t-o8vqa36-Ni) + + + * Need help to identify the right intrinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124070](https://www.google.com/url?q=https://reviews.llvm.org/D124070&sa=D&source=editors&ust=1778600246108765&usg=AOvVaw2-Kr7zdzqRXIjB5kqcHed4) + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246108864&usg=AOvVaw2ZUkuVHzPwaVUjjd3usw3s) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246108987&usg=AOvVaw16JiKSS5JYKMvghbZICciR) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246109090&usg=AOvVaw3HLoUFY2eZHRiSjUyJZFxk) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246109281&usg=AOvVaw39SplJ_DGED4yTioXgh2vT) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246109412&usg=AOvVaw1Lb23E6tPEs83CNHqmy0bl) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246109517&usg=AOvVaw3o9dcWbpdf2WOGwonspQQz) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246110008&usg=AOvVaw3T3AhecffP92DJPzRe11my) + + + 16. Allocate "all" device memory + 17. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 18. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246110369&usg=AOvVaw3CBftjfL40xXu6nbjTJakT) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246110459&usg=AOvVaw2k01h0n-OWyxbvvlNqHM_f) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246110677&usg=AOvVaw1EpDA6xHRtMo-dkrHkOtd4) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246110941&usg=AOvVaw23Zfq0t_tmH38GysOeR4TS) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246111097&usg=AOvVaw0xHR1hQ1pevtnO5S_GVm-G)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246111334&usg=AOvVaw0sApmhedis0MkUA2A-RcPt) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246111435&usg=AOvVaw366AN-FZC5pDApNslcvTYU) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246111568&usg=AOvVaw3zfcySfASLPRkz3eZ8H74_) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246112266&usg=AOvVaw1dL486hXX1MqtLwmAgFQVM) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246112447&usg=AOvVaw2XkDcGqkRmfm1joeQbaTkG) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246112546&usg=AOvVaw3xC9GDzgK67lO5aINRoqdq) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246112696&usg=AOvVaw3ddHmTttvEY_rzM8kfhfF0) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246113224&usg=AOvVaw2sBFsNzcb7-6xcuBz7bDqW) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246113402&usg=AOvVaw2jYvMa9r3paovc0gwX1S4E) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246113621&usg=AOvVaw2YV9wbTQd8yx82z_AewfUl) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246113818&usg=AOvVaw08L5SUELQBlXF-qZnhzyvN) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246113980&usg=AOvVaw1UiFVIbQVyj18sLOBQTPNN): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246114166&usg=AOvVaw1cBkChuir-NTBvAP9JuwFC) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### + +### 023, April 19 + +Agenda + +New + + * RPC implementation WIP + + + * [https://reviews.llvm.org/D148288](https://www.google.com/url?q=https://reviews.llvm.org/D148288&sa=D&source=editors&ust=1778600246114576&usg=AOvVaw0oNRStFzSzp2dguJY-hHfb) + + + * Status or expected behavior of the schedule clause on GPUs + + + * 'ordered schedule(dynamic)' + + + * GPU tests for AMDGPU + O3: [https://reviews.llvm.org/D148576](https://www.google.com/url?q=https://reviews.llvm.org/D148576&sa=D&source=editors&ust=1778600246114809&usg=AOvVaw3eldx7f3SdFwWKskTlTNqs) + * Nested LOOP constructs + + + +Previous + + * Recommended method to restore -rpath usage for OpenMP + + + * [https://reviews.llvm.org/D147943](https://www.google.com/url?q=https://reviews.llvm.org/D147943&sa=D&source=editors&ust=1778600246115062&usg=AOvVaw3YkUpidDKO1KemEi7hzMEO) + + + * How to handle multiple images with conflicting architectures + * [https://reviews.llvm.org/D147756](https://www.google.com/url?q=https://reviews.llvm.org/D147756&sa=D&source=editors&ust=1778600246115239&usg=AOvVaw0Rsl-WMMkNL0FGLNFA8Yuw) + * Expand RPC support in libc + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246115420&usg=AOvVaw0TAg_ZNEzeoOGl9hlFCpY1) + + + * Status of omp loop directive? + + + * Reduction on Loop constructs. Is it supported + * [https://reviews.llvm.org/D144634](https://www.google.com/url?q=https://reviews.llvm.org/D144634&sa=D&source=editors&ust=1778600246115642&usg=AOvVaw0Eebkgm1Shs9BiXf_V4yeP) + * [https://reviews.llvm.org/D145823](https://www.google.com/url?q=https://reviews.llvm.org/D145823&sa=D&source=editors&ust=1778600246115743&usg=AOvVaw3khXS2uLTz9xDFG-gzy6ib) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246115900&usg=AOvVaw2bTEgwX1xS_OrnfGzG_mj2) + + + * Need help to identify the right intrinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124070](https://www.google.com/url?q=https://reviews.llvm.org/D124070&sa=D&source=editors&ust=1778600246116210&usg=AOvVaw1I_l-9QprMkO1LoYa7JH56) + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246116304&usg=AOvVaw0LkcpiV9XuIF8m1QQkWACD) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246116403&usg=AOvVaw1mf1Rs5MjKv_kSR3i0X5S-) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246116494&usg=AOvVaw0XwM0WKWq0G_GCsMHjXF_9) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246116673&usg=AOvVaw1eQasIdVYip9oiuBs7ICCa) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246116800&usg=AOvVaw3l1iVF0jfMCMyjktdKjyHc) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246116900&usg=AOvVaw2grFYSYTI6Igysrh2w0jVy) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246117407&usg=AOvVaw2TfvskkJfzikkTRtw3yKex) + + + 19. Allocate "all" device memory + 20. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 21. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246117768&usg=AOvVaw00HOAHOUdzmuSIJ6ejcx4g) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246117846&usg=AOvVaw10XNPYfw94sAXKnLLExU09) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246118061&usg=AOvVaw1fziulQf0hmNCwJUGHAyor) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246118337&usg=AOvVaw1xjegQk28hFMBzMbrdJsvW) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246118499&usg=AOvVaw2I_jrT2V-i0Oy-R6xNdaX6)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246118739&usg=AOvVaw3vzyxUrQZkHeZ4m-UHaWk5) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246118829&usg=AOvVaw3FoVCiE_EMVdPcstShltX1) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246118959&usg=AOvVaw28l4xsvh_bJmkoRiZPklfI) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246119632&usg=AOvVaw2-Pj8pqN8HQlF3_jxcrQ6v) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246119802&usg=AOvVaw2msued6tmtxPUoDeLB52dM) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246119898&usg=AOvVaw1DoW62-l9WI95egqxC2emE) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246120084&usg=AOvVaw0Wwd447zVrQbbVLxEHSZun) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246120642&usg=AOvVaw1tSHU78c4omPOvKP5kIXWU) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246120806&usg=AOvVaw09ne-aF_KM0LqRyUc0Blyf) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246121028&usg=AOvVaw0m7JYaVNu7iHoHUvXo54r2) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246121238&usg=AOvVaw357kM7f8lrEcP4pt5fTFQa) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246121399&usg=AOvVaw2umFA1g5go0BZrJzOcIrAU): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246121598&usg=AOvVaw2m-cIjFwAU4FEaF5ZvwEm7) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-05-17.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-05-17.md new file mode 100644 index 0000000..7d8abeb --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-05-17.md @@ -0,0 +1,198 @@ +### 2023, May 17 + +Agenda + +New + + * LibC Status + + + * [[libc] Enable multiple threads to use RPC on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D148943&sa=D&source=editors&ust=1778600246098900&usg=AOvVaw0MKacILqTL4YjiEuUv9VUQ) + * [[libc] Support concurrent RPC port access on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D149598&sa=D&source=editors&ust=1778600246099012&usg=AOvVaw2C96YWDdGHjirwusEOAQ-7) + * [[libc] Enable running libc unit tests on AMDGPU](https://www.google.com/url?q=https://reviews.llvm.org/D149517&sa=D&source=editors&ust=1778600246099126&usg=AOvVaw2Gb8eOaHiyCJZTGUonh1NO) + * [[libc] Enable running libc unit tests on NVPTX](https://www.google.com/url?q=https://reviews.llvm.org/D149532&sa=D&source=editors&ust=1778600246099238&usg=AOvVaw1EGONjGUXzOw07dA06mr5i) + * Nvidia buildbot: [https://lab.llvm.org/buildbot/#/builders/46](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/46&sa=D&source=editors&ust=1778600246099360&usg=AOvVaw26EiV-jT2zVJDB5ZLwvFJ5) + * AMDGPU buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246099489&usg=AOvVaw2nRJ_6UD8vAN9kgosvep1t) + * Presentation [LibC for GPUs](https://www.google.com/url?q=https://docs.google.com/presentation/d/1jQ5uoWtTv-esba-aUJSRxsCKoeha_VOtYO1u2XkeCqc/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246099606&usg=AOvVaw1RXxCa-XQsLNj4IZels9Ya) + + + * Reverse offloading proof of concept demo + + + * [https://github.com/jhuber6/OpenMP-reverse-offloading](https://www.google.com/url?q=https://github.com/jhuber6/OpenMP-reverse-offloading&sa=D&source=editors&ust=1778600246099778&usg=AOvVaw3l46MO4xZ7x6y3NiMoej09) + + + +Previous + + * Switch current "experimental" AMDGPU OpenMP Runtime buildbot to production and move the current "production" buildbot into staging + + + * Experimental buildbot does make check-openmp, check-clang, check-llvm, check-lld, check-libc + * Production buildbot: [https://lab.llvm.org/buildbot/#/builders/193](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/193&sa=D&source=editors&ust=1778600246100183&usg=AOvVaw1_JD0C56RSm_La11L7s_Z_) + * Experimental buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246100319&usg=AOvVaw3Zifkr0-MMDn9NDXwsXYGg) + + + * * One SPEC HPC C/C++ test is still not working on Frontier, five are running now. + * AMD signal active waiting[ https://reviews.llvm.org/D148808](https://www.google.com/url?q=https://reviews.llvm.org/D148808&sa=D&source=editors&ust=1778600246100554&usg=AOvVaw3PjpnN7InwhFgJT-XArDPJ)How to handle multiple images with conflicting architectures + * [https://reviews.llvm.org/D147756](https://www.google.com/url?q=https://reviews.llvm.org/D147756&sa=D&source=editors&ust=1778600246100697&usg=AOvVaw3-lIvekZ46AJop8s2BcqM0) + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246100830&usg=AOvVaw07-lm9DIQJdKAefC1x2_SB) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246100992&usg=AOvVaw1KehDBahYMlD6wYFEXgN3b) + + + * Need help to identify the right intrinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246101370&usg=AOvVaw2DPpIinx5Z16dV5uOQcrb-) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246101468&usg=AOvVaw1UY4S7MgcI33aQH_TRBISo) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246101559&usg=AOvVaw36rj2XRCUFNenccyvNd_Sn) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246101743&usg=AOvVaw10l5dGwEhxgLgEz8Oxaw08) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246101865&usg=AOvVaw02095D6AyKnrH5CllcRrbe) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246101969&usg=AOvVaw3nd5aPC-i1Ofs8DlR811aB) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246102474&usg=AOvVaw1E9d0bYtYhnKaJoof9mqv0) + + + 13. Allocate "all" device memory + 14. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 15. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246102827&usg=AOvVaw0TWv4qTrJlYdgyoMcxw-vX) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246102908&usg=AOvVaw3IUREBt8VF2xMubsTVFEbO) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246103130&usg=AOvVaw0p4fPaubksQi-o5Ku-M_mb) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246103393&usg=AOvVaw1GcupK7EZaH1-uQXxO62e-) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246103558&usg=AOvVaw36WKFE3Fn_1xlsGe6ItyaV)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246103792&usg=AOvVaw31VI7yDHXAzyHHvLnL8Cyn) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246103891&usg=AOvVaw2VHKhdQoxt7x-VIqpjifD0) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246104027&usg=AOvVaw0mIJgDtQ3M1rJKFnB5_4t4) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246104695&usg=AOvVaw2n1ojyBeEKQ-ZSngu4yEEp) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246104889&usg=AOvVaw3zQY0NyvoHM8Kwh32JAahv) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246104987&usg=AOvVaw0vQMCpzPz8vYZY2pnBzS7A) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246105143&usg=AOvVaw3N6U-rg2Ts3ehMDoYJd_zB) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246105659&usg=AOvVaw3Q1adjh9nIhsHSk69Wde3N) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246105819&usg=AOvVaw2vrAZdDbwt7axnTynAus0t) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246106029&usg=AOvVaw1TJMrrP2LcEhYsujFIiK5i) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246106216&usg=AOvVaw0nWJKthCNLA8zZpDENySBP) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246106377&usg=AOvVaw34avg7Y-_5v7cTXY2ACtHh): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246106557&usg=AOvVaw1mEm3KbQF30_YikwoBfUjN) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-05-24.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-05-24.md new file mode 100644 index 0000000..d1d20a4 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-05-24.md @@ -0,0 +1,198 @@ +### 2023, May 24 + +Agenda + +New + + * OpenMP version change + * Bump up GCC requirement for libomp? + * Summary of OpenMP F2F (Deepak) + + + +Previous + + * LibC Status + + + * [[libc] Enable multiple threads to use RPC on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D148943&sa=D&source=editors&ust=1778600246090910&usg=AOvVaw0z6bQTrjSfrFeL8HxL0I-_) + * [[libc] Support concurrent RPC port access on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D149598&sa=D&source=editors&ust=1778600246091029&usg=AOvVaw0uHmavjpm_nuwEFCXoMNAg) + * [[libc] Enable running libc unit tests on AMDGPU](https://www.google.com/url?q=https://reviews.llvm.org/D149517&sa=D&source=editors&ust=1778600246091140&usg=AOvVaw0Tv_INi_kg1GOxhcz3SgUO) + * [[libc] Enable running libc unit tests on NVPTX](https://www.google.com/url?q=https://reviews.llvm.org/D149532&sa=D&source=editors&ust=1778600246091253&usg=AOvVaw2dvOOo4DqmdmtUh38HG8ZI) + * Nvidia buildbot: [https://lab.llvm.org/buildbot/#/builders/46](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/46&sa=D&source=editors&ust=1778600246091376&usg=AOvVaw0if_zXR34caHsuv79QS91V) + * AMDGPU buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246091497&usg=AOvVaw1MM-zXaY9NbGJFyGldNH8T) + * Presentation [LibC for GPUs](https://www.google.com/url?q=https://docs.google.com/presentation/d/1jQ5uoWtTv-esba-aUJSRxsCKoeha_VOtYO1u2XkeCqc/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246091610&usg=AOvVaw0IWR1u04ARc7D1d9PeL9vM) + + + * Reverse offloading proof of concept demo + * [https://github.com/jhuber6/OpenMP-reverse-offloading](https://www.google.com/url?q=https://github.com/jhuber6/OpenMP-reverse-offloading&sa=D&source=editors&ust=1778600246091777&usg=AOvVaw1eOOYeLGG7o062GjpRs1Hi)Switch current "experimental" AMDGPU OpenMP Runtime buildbot to production and move the current "production" buildbot into staging + + + * Experimental buildbot does make check-openmp, check-clang, check-llvm, check-lld, check-libc + * Production buildbot: [https://lab.llvm.org/buildbot/#/builders/193](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/193&sa=D&source=editors&ust=1778600246092105&usg=AOvVaw39I6uCdrfVjticJjY2S4yg) + * Experimental buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246092242&usg=AOvVaw1W8Dk--r3_kpXcpRs-TBJl) + + + * * One SPEC HPC C/C++ test is still not working on Frontier, five are running now. + * AMD signal active waiting[ https://reviews.llvm.org/D148808](https://www.google.com/url?q=https://reviews.llvm.org/D148808&sa=D&source=editors&ust=1778600246092477&usg=AOvVaw3URv5sLUsknIL7YtWPe_b-)How to handle multiple images with conflicting architectures + * [https://reviews.llvm.org/D147756](https://www.google.com/url?q=https://reviews.llvm.org/D147756&sa=D&source=editors&ust=1778600246092650&usg=AOvVaw2VzTfqqdWtw5rdxVQOchdm) + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246092794&usg=AOvVaw2WLLOFaEaig6Cvgo56byt7) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246092957&usg=AOvVaw16OQSYs49bqsO8MtpJxCFo) + + + * Need help to identify the right intrinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246093272&usg=AOvVaw37GVTA3VAhiBwxUsMPdNL7) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246093367&usg=AOvVaw0cmZYiTqsgfq_n35jEATBS) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246093465&usg=AOvVaw2q6VONvbLby8UeJmFT4XS4) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246093637&usg=AOvVaw3N6C9yH8vr6Zp7CMF4uPub) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246093757&usg=AOvVaw2ciEq-Xn83tDzMhTYIfCki) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246093866&usg=AOvVaw1e2B_nMndj72tyJZdx8dSN) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246094413&usg=AOvVaw0Hl85YQmeu7NhD2xlFr1bn) + + + 10. Allocate "all" device memory + 11. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 12. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246094776&usg=AOvVaw2HRB6pE09K2kb96dZoD8Ww) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246094861&usg=AOvVaw2tvCA_otAkVg6xg2xTsdrH) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246095085&usg=AOvVaw0nQE9SGd9vKSr5HH4X9iY2) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246095384&usg=AOvVaw0Qz6WB_Pu83vxCv2jA6w21) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246095546&usg=AOvVaw11VlaLstVd8U-oIM8w8DwY)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246095784&usg=AOvVaw3zxJ28fhtnQY_yXNERmvj_) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246095873&usg=AOvVaw2n3ecDn4VxfybnMZlCNXe5) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246096004&usg=AOvVaw3jRx9zk4TUlMUyLiBzMOfo) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246096680&usg=AOvVaw1kmBSvO4STBXbCjlvQyf7D) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246096854&usg=AOvVaw1emY93UkrrcSuPBXdCw7Es) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246096958&usg=AOvVaw1gfw7BpULxzffyY5fKcADX) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246097126&usg=AOvVaw1KLMjAFjDryCcvBXJtYurc) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246097648&usg=AOvVaw3N9G81T6j_A0F3JOhSEyFL) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246097811&usg=AOvVaw2yOVMNZ3Q1jzDCS9J7SuEd) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246098007&usg=AOvVaw2pL2I-vKPcQ9utfdLyByUR) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246098201&usg=AOvVaw1HJ93XIIm2ho3IRARbjQl6) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246098358&usg=AOvVaw1UY81slR90TY_kOnVDeSpA): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246098545&usg=AOvVaw3TxEuHjGAQmUo64MFBmJ63) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-05-31.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-05-31.md new file mode 100644 index 0000000..c3bdd1d --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-05-31.md @@ -0,0 +1,234 @@ +### 2023, May 31 + +Agenda + +New + + * Implementing the device runtime in a separate project + + + * Some complains about the project / runtimes handling + + + * Remove keep alive functionality in OpenMP [https://reviews.llvm.org/D151324](https://www.google.com/url?q=https://reviews.llvm.org/D151324&sa=D&source=editors&ust=1778600246081539&usg=AOvVaw0MJkyJrYdiOWH6DUCAp_Aa) + + + * Used to be required to keep RTL functions alive + * We unconditionally link the library late now which should prevent this from happening + + + * Libm for the GPU + + + * Easiest solution is to use the `libc` infrastructure and remap calls to the existing device libs + * E.g. -Xclang -mlink-builtin-bitcode -Xclang libdevice.10.bc + * Can we redistribute NVIDIA's libdevice? + + + * Artem from Google is asking for this and an MLIR project, license seems to suggest so + + + * Integrating the libc RPC implementation into OpenMP + + + * How to do this? + * Header only library, but exposes libc internals + + + * Goals for LLVM 17 release? + + + +Previous + + * OpenMP version change + * Bump up GCC requirement for libomp? + * Summary of OpenMP F2F (Deepak) + * LibC Status + + + * [[libc] Enable multiple threads to use RPC on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D148943&sa=D&source=editors&ust=1778600246082637&usg=AOvVaw3ZA2y8y4RVY57470mA0SF0) + * [[libc] Support concurrent RPC port access on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D149598&sa=D&source=editors&ust=1778600246082762&usg=AOvVaw2uujAj7yIim9q3yhwbfXkm) + * [[libc] Enable running libc unit tests on AMDGPU](https://www.google.com/url?q=https://reviews.llvm.org/D149517&sa=D&source=editors&ust=1778600246082870&usg=AOvVaw39Gn37nxxS_xigmuwhFxEX) + * [[libc] Enable running libc unit tests on NVPTX](https://www.google.com/url?q=https://reviews.llvm.org/D149532&sa=D&source=editors&ust=1778600246082979&usg=AOvVaw29nkK25TSmWMRONz8ZPdMN) + * Nvidia buildbot: [https://lab.llvm.org/buildbot/#/builders/46](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/46&sa=D&source=editors&ust=1778600246083114&usg=AOvVaw1g1G8yuv_3raRia6hMByWp) + * AMDGPU buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246083240&usg=AOvVaw3wlWFSkOF7U_PK8yj2CUSJ) + * Presentation [LibC for GPUs](https://www.google.com/url?q=https://docs.google.com/presentation/d/1jQ5uoWtTv-esba-aUJSRxsCKoeha_VOtYO1u2XkeCqc/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246083365&usg=AOvVaw2FPQ53qQpfqQx3lOxk2cRd) + + + * Reverse offloading proof of concept demo + * [https://github.com/jhuber6/OpenMP-reverse-offloading](https://www.google.com/url?q=https://github.com/jhuber6/OpenMP-reverse-offloading&sa=D&source=editors&ust=1778600246083534&usg=AOvVaw37yG7d8XQaXSsON8tffiHF)Switch current "experimental" AMDGPU OpenMP Runtime buildbot to production and move the current "production" buildbot into staging + + + * Experimental buildbot does make check-openmp, check-clang, check-llvm, check-lld, check-libc + * Production buildbot: [https://lab.llvm.org/buildbot/#/builders/193](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/193&sa=D&source=editors&ust=1778600246083864&usg=AOvVaw386t2dKuU1zWlx8t3ZXTrX) + * Experimental buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246083992&usg=AOvVaw0ENNgdBh7We8lPja2pZK4m) + + + * * One SPEC HPC C/C++ test is still not working on Frontier, five are running now. + * AMD signal active waiting[ https://reviews.llvm.org/D148808](https://www.google.com/url?q=https://reviews.llvm.org/D148808&sa=D&source=editors&ust=1778600246084246&usg=AOvVaw00Yvt_OUsRq7KK3ImbQEgB)How to handle multiple images with conflicting architectures + * [https://reviews.llvm.org/D147756](https://www.google.com/url?q=https://reviews.llvm.org/D147756&sa=D&source=editors&ust=1778600246084391&usg=AOvVaw1-EAF3FswiZ3ed8pzER30q) + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246084526&usg=AOvVaw1GIlVhP4GhyoSDm8WF1VNl) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246084716&usg=AOvVaw3aK4GmuC8dfDOOe9RYN8mx) + + + * Need help to identify the right intrinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246085041&usg=AOvVaw1miSJQPSS-IGeP8ppJ661N) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246085158&usg=AOvVaw1obuJOMWy_B_W-MXLpyDy2) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246085250&usg=AOvVaw2KVzAAGuVEvYanU0MB64YE) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246085430&usg=AOvVaw1aKqGuLmiDyZ5Rj0igpB1A) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246085550&usg=AOvVaw0XXi5BaXOMHGXVq8W7BYlB) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246085652&usg=AOvVaw1jOmGMEOVGKL7kUlSodaha) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246086195&usg=AOvVaw1R091_ZIxBt7J_u1nvjBhq) + + + 7. Allocate "all" device memory + 8. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 9. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246086583&usg=AOvVaw0m-O1m91ikjCu2FswQPDrU) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246086673&usg=AOvVaw2oauUKcmV0bbpYBvI9CnVD) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246086900&usg=AOvVaw0FyEow0v61emckIEres2M8) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246087172&usg=AOvVaw2L1GT89pIxLRU1CNjEKBLx) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246087340&usg=AOvVaw3-xjwL2wTfP0xhntJobbPA)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246087573&usg=AOvVaw1SIAOacoVWidmBerPqxmel) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246087666&usg=AOvVaw29JfTVYTnuQM31MN2JEa92) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246087808&usg=AOvVaw0s0kHh-6KK6I2YTr4Ekuj3) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246088488&usg=AOvVaw0pSlS4w-T3eIgetOPJNM8S) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246088661&usg=AOvVaw0tazwNAoBcgzR-d2kMWVKQ) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246088758&usg=AOvVaw157tNj1RX2rUYsRdAX5uAB) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246088908&usg=AOvVaw3GRbjU5BrFtc3ngRBJ0bI-) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246089433&usg=AOvVaw1XUCM9np5TkZ_UpL9_Ayxr) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246089601&usg=AOvVaw2wuLBhs52y1IvXsKgf9jaO) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246089807&usg=AOvVaw0zgT6ieig19ca6l1uJdhrY) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246089987&usg=AOvVaw31qrKINW4HXpPk9ILzDP04) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246090151&usg=AOvVaw1xW9hviI0OIC2v7mslg8tZ): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246090340&usg=AOvVaw0Z_mDz4FTMF43sScIQ4Rk4) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-06-07.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-06-07.md new file mode 100644 index 0000000..07a5d49 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-06-07.md @@ -0,0 +1,264 @@ +### 2023, june 07 + +Agenda + +New + + * Libm for the GPU + + + * Easiest solution is to use the `libc` infrastructure and remap calls to the existing device libs + * E.g. -Xclang -mlink-builtin-bitcode -Xclang libdevice.10.bc + * Can we redistribute NVIDIA's libdevice? + + + * Artem from Google is asking for this and an MLIR project, license seems to suggest so + + + * The answer is "yes" + + + * Exporting the RPC interface from libc + + + * [[libc] Begin implementing a library for the RPC server](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246071504&usg=AOvVaw2P3uRyOb1hBr9_g9t6wZtQ) + * [[libc] Export GPU extensions to `libc` for external use](https://www.google.com/url?q=https://reviews.llvm.org/D152283&sa=D&source=editors&ust=1778600246071618&usg=AOvVaw1QYnJgCL30V78OUnI_f5Jp) + + + * Moving the AMDGPU libc build bot to staging + + + * [https://lab.llvm.org/staging/#/builders/247](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/247&sa=D&source=editors&ust=1778600246071794&usg=AOvVaw3yj5lTv10pOcmX453e1A8Y) + + + * Leftover runtime "state" down to 1 element (for simple kernels) + * Lightweight Attributor under review -> Attributor compile time reduction under development + * Flang OpenMP offload is making nice progress (thanks to AMD) + + + +Previous + + * Implementing the device runtime in a separate project + + + * Some complains about the project / runtimes handling + + + * Remove keep alive functionality in OpenMP [https://reviews.llvm.org/D151324](https://www.google.com/url?q=https://reviews.llvm.org/D151324&sa=D&source=editors&ust=1778600246072352&usg=AOvVaw2lITgZ4bqixSyDcfhTTFM5) + + + * Used to be required to keep RTL functions alive + * We unconditionally link the library late now which should prevent this from happening + + + * Libm for the GPU + + + * Easiest solution is to use the `libc` infrastructure and remap calls to the existing device libs + * E.g. -Xclang -mlink-builtin-bitcode -Xclang libdevice.10.bc + * Can we redistribute NVIDIA's libdevice? + + + * Artem from Google is asking for this and an MLIR project, license seems to suggest so + + + * Integrating the libc RPC implementation into OpenMP + + + * How to do this? + * Header only library, but exposes libc internals + + + * Goals for LLVM 17 release? + * OpenMP version change + * Bump up GCC requirement for libomp? + * Summary of OpenMP F2F (Deepak) + * LibC Status + + + * [[libc] Enable multiple threads to use RPC on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D148943&sa=D&source=editors&ust=1778600246073362&usg=AOvVaw2i5zY-IOuxlq3eNqiqXX-R) + * [[libc] Support concurrent RPC port access on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D149598&sa=D&source=editors&ust=1778600246073481&usg=AOvVaw1cUHxVZCSxqu5lp1ovgf7g) + * [[libc] Enable running libc unit tests on AMDGPU](https://www.google.com/url?q=https://reviews.llvm.org/D149517&sa=D&source=editors&ust=1778600246073586&usg=AOvVaw2hVWozewekkIp0yz-lCTyt) + * [[libc] Enable running libc unit tests on NVPTX](https://www.google.com/url?q=https://reviews.llvm.org/D149532&sa=D&source=editors&ust=1778600246073688&usg=AOvVaw1nMtehOgGg7jS4GPYW11PC) + * Nvidia buildbot: [https://lab.llvm.org/buildbot/#/builders/46](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/46&sa=D&source=editors&ust=1778600246073809&usg=AOvVaw2oVh4jKlqud7Yd_SOkGDAf) + * AMDGPU buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246073942&usg=AOvVaw2YWQoW1w0jAzvhhTq-95Iy) + * Presentation [LibC for GPUs](https://www.google.com/url?q=https://docs.google.com/presentation/d/1jQ5uoWtTv-esba-aUJSRxsCKoeha_VOtYO1u2XkeCqc/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246074062&usg=AOvVaw1sbzdtXyUoiAVK3vufY0WV) + + + * Reverse offloading proof of concept demo + * [https://github.com/jhuber6/OpenMP-reverse-offloading](https://www.google.com/url?q=https://github.com/jhuber6/OpenMP-reverse-offloading&sa=D&source=editors&ust=1778600246074271&usg=AOvVaw3GBpvpgHDWbhPD0LvEy6ZH)Switch current "experimental" AMDGPU OpenMP Runtime buildbot to production and move the current "production" buildbot into staging + + + * Experimental buildbot does make check-openmp, check-clang, check-llvm, check-lld, check-libc + * Production buildbot: [https://lab.llvm.org/buildbot/#/builders/193](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/193&sa=D&source=editors&ust=1778600246074606&usg=AOvVaw0bE37B_KZGg3k0l79QJpu9) + * Experimental buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600246074734&usg=AOvVaw0bKjtDDxIMcltCRnIKZYvh) + + + * * One SPEC HPC C/C++ test is still not working on Frontier, five are running now. + * AMD signal active waiting[ https://reviews.llvm.org/D148808](https://www.google.com/url?q=https://reviews.llvm.org/D148808&sa=D&source=editors&ust=1778600246074991&usg=AOvVaw2uOi0tA3-8n7rGZqUCciUF)How to handle multiple images with conflicting architectures + * [https://reviews.llvm.org/D147756](https://www.google.com/url?q=https://reviews.llvm.org/D147756&sa=D&source=editors&ust=1778600246075149&usg=AOvVaw2061o7j2tVa7FKqj0T8Myq) + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600246075283&usg=AOvVaw1qxWS9qBJm0byeFnotWPNB) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600246075449&usg=AOvVaw1SuT8QVe4MxaOba1Kl1q5u) + + + * Need help to identify the right intrinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * OMPT for nextgen plugins - refactored 'legacy' patches + + + * [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246075778&usg=AOvVaw2on6S2_dQvHYRZddRvzDTo) + * [https://reviews.llvm.org/D127365](https://www.google.com/url?q=https://reviews.llvm.org/D127365&sa=D&source=editors&ust=1778600246075882&usg=AOvVaw1DejZJW60oXlSuKGtAc_LN) + * [https://reviews.llvm.org/D127367](https://www.google.com/url?q=https://reviews.llvm.org/D127367&sa=D&source=editors&ust=1778600246075974&usg=AOvVaw1ucY_lXKkAW1BGxiHNR47a) + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246076151&usg=AOvVaw1frbzRgnbpgjOt8oh6pgOH) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600246076281&usg=AOvVaw0bV-mvJiXZ8oeJ4XIeJkMK) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600246076384&usg=AOvVaw0gCaokSnX79TmzyT5M_J5Z) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600246076877&usg=AOvVaw1KyJpRlf4ySQHxs7lI9QmE) + + + 4. Allocate "all" device memory + 5. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 6. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600246077256&usg=AOvVaw1g1erSUAZkFAxAq2tCMA3w) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600246077359&usg=AOvVaw1W6nt9_qbgt1uunkK1meQT) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600246077576&usg=AOvVaw0Ro7HYbmt8vY-LgG685R7_) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600246077831&usg=AOvVaw0ApGnyckJlJShF3BJcB95L) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600246077998&usg=AOvVaw04iDAu9hQIsS7fCFDy8T4t)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600246078234&usg=AOvVaw1cRD2mpzoR4NCBCmkF5jQU) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600246078334&usg=AOvVaw3mwQFdQiv2nM0IAZfnperp) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600246078469&usg=AOvVaw0SBYaPO1QhgtiAcMv24LwL) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600246079134&usg=AOvVaw0fRm2AnnYatKeo-IEoxyov) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600246079312&usg=AOvVaw2FkGZg80qdoHFWw7LcB2LA) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600246079411&usg=AOvVaw1Xq8aO0P2ua7B8Err96_Zg) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600246079566&usg=AOvVaw1-U5R0Aq-ci7Jp7KGHKGVb) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600246080083&usg=AOvVaw0fMCv71j6MTUmyioPR9Sug) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600246080288&usg=AOvVaw34d7r3oBDB_ZhbZa19vTcN) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600246080499&usg=AOvVaw3hQ5rYKTbeg3aq3yCEUQR0) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600246080680&usg=AOvVaw341ARamWBFC02r56lSr4bk) + * Updating default version to 5.1 [ready, waiting for more features] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246080828&usg=AOvVaw2kzqTsvAk2diLus9EmXJd0): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246081012&usg=AOvVaw1kL--qXpv-9QerA3GmBvMd) + + + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-06-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-06-14.md new file mode 100644 index 0000000..7496c93 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-06-14.md @@ -0,0 +1,26 @@ +### 2023, june 14 + +Agenda + +New + + * Initial proposed patch for implementing a libm upstream + + + * [[libc] Begin implementing a 'libmgpu.a' for math on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D152486&sa=D&source=editors&ust=1778600246069856&usg=AOvVaw11zkU4ZYW8Nj_JucGC3SnQ) + * The libc maintainers want an implementation in the LLVM libc. Unimplemented functions will temporarily be mapped to vendor functions + + + * GPU/Offloading workshop prior to LLVM Dev: [https://discourse.llvm.org/t/pre-llvm-dev23-gpu-offloading-workshop/71338](https://www.google.com/url?q=https://discourse.llvm.org/t/pre-llvm-dev23-gpu-offloading-workshop/71338&sa=D&source=editors&ust=1778600246070177&usg=AOvVaw3JS-QvfrplZWTQbQuoxC6i) + * Mapper still not working + + + * [https://github.com/llvm/llvm-project/issues/61636](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/61636&sa=D&source=editors&ust=1778600246070336&usg=AOvVaw2055MxG7alW41TytcmD6XS) + * Tests: [dbd6759](https://www.google.com/url?q=https://github.com/llvm/llvm-project/commit/dbd6759dac52fa91d3321aaf0d9d78fbe3772dd4&sa=D&source=editors&ust=1778600246070448&usg=AOvVaw0wpPoBTzxIBXMAPv_-r_qV) + + + * Updating default version to 5.1 [ready to land] + + + * [D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246070592&usg=AOvVaw07oyXqyd1Z-OEFP-cKOL1Z): [OpenMP] Update the default version of OpenMP to 5.1 [Accepted] + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600246070775&usg=AOvVaw2CwIOsauH8oeTxwd34T5TK) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-06-21.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-06-21.md new file mode 100644 index 0000000..d76d80c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-06-21.md @@ -0,0 +1,30 @@ +### 2023, june 21 + +Agenda + +New + + * OpenMP does not apply values to canonical definitions + + + * [[OpenMP] Always apply target declarations to canonical definitions](https://www.google.com/url?q=https://reviews.llvm.org/D153369&sa=D&source=editors&ust=1778600246068890&usg=AOvVaw1a_gi7sw2aIsqSzl-Gj8Lk) + * Important for providing headers for libc + + + * Implement as a single header generated by `libc` that both the host and the device include + + + * One downside, `omp declare target to() make offloading entries + + + * Libm work + + + * [D153395: Populating 'libmgpu.a' for math on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D153395&sa=D&source=editors&ust=1778600246069268&usg=AOvVaw1V4R0StJzoW18itWR_2MMC). + * [D152603: [libc] Add math functions to AMD/NVPTX libm](https://www.google.com/url?q=https://reviews.llvm.org/D152603&sa=D&source=editors&ust=1778600246069380&usg=AOvVaw0ek1cqoV_D8hpXEi7hDNed) + + + * Work on exporting RPC to OpenMP + + + * [[libc] Rename and install the RPC server interface](https://www.google.com/url?q=https://reviews.llvm.org/D153040&sa=D&source=editors&ust=1778600246069533&usg=AOvVaw0CGVK6F712vCUD3WAiadh8) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-06-28.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-06-28.md new file mode 100644 index 0000000..0a96dcd --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-06-28.md @@ -0,0 +1,14 @@ +### 2023, june 28 + +Agenda + +New + + * Header proposal + + + * [D153897: [libc][hdr-gen] Add special offloading handling for the GPU targe](https://www.google.com/url?q=https://reviews.llvm.org/D153897&sa=D&source=editors&ust=1778600246068414&usg=AOvVaw00nlTTq0el2-lS3ncKxHI-)t + * Alternative in progress + + + * OpenMP default version 51 diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-07-05.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-07-05.md new file mode 100644 index 0000000..869f7bc --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-07-05.md @@ -0,0 +1,9 @@ +### 2023, july 05 + +Agenda + +New + + * RPC implementation in libomptarget [https://reviews.llvm.org/D154312](https://www.google.com/url?q=https://reviews.llvm.org/D154312&sa=D&source=editors&ust=1778600246067836&usg=AOvVaw2bpX4RkFjUTUpOq-EXCGw2) + * [[libc] Add support for creating wrapper headers for offloading in clang](https://www.google.com/url?q=https://reviews.llvm.org/D154036&sa=D&source=editors&ust=1778600246067988&usg=AOvVaw3a0YEsEtaUD4CFIUxYB8-S) + * OMPT [https://reviews.llvm.org/D124652](https://www.google.com/url?q=https://reviews.llvm.org/D124652&sa=D&source=editors&ust=1778600246068104&usg=AOvVaw0InARoTlXVrrJ8EwUcr4Nr) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-07-12.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-07-12.md new file mode 100644 index 0000000..4871902 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-07-12.md @@ -0,0 +1,31 @@ +### 2023, july 12 + +Agenda + +New + + * Landed support for the libc RPC in OpenMP and the wrapper headers + + + * [[libc] Add support for creating wrapper headers for offloading in clang](https://www.google.com/url?q=https://reviews.llvm.org/D154036&sa=D&source=editors&ust=1778600246066809&usg=AOvVaw1g3Aq45rcluM5bVSNX60o0) + * [[Libomptarget] Begin implementing support for RPC services](https://www.google.com/url?q=https://reviews.llvm.org/D154312&sa=D&source=editors&ust=1778600246066931&usg=AOvVaw2FSAADbZVJR_9TqyBmthwM) + + + * Minimal support for reverse offloading via GPU libc + + + * [[libc] Add basic support for calling host functions from the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D155003&sa=D&source=editors&ust=1778600246067130&usg=AOvVaw1tAYm4ZSe3G5NkqL8zHvvt) + + + * What should get in before the LLVM 17 fork + * Need to update our clang support page + + + * Next week, in the meeting. + + + * Testing libm-gpu.a, WIP, Anton will talk about it soon: + + + * [timing_histograms (1).pdf](https://www.google.com/url?q=https://drive.google.com/file/d/1ZK9J-iJAFjb7cQb7ghP6xSqMbUukeRXW/view?usp%3Dshare_link&sa=D&source=editors&ust=1778600246067463&usg=AOvVaw1Sv1NBSXd87lzJZX3uWMrn) + * [error_plots (1).pdf](https://www.google.com/url?q=https://drive.google.com/file/d/1372FZKRRPTuERCAuJrAls7Q5zI4LsRfj/view?usp%3Dshare_link&sa=D&source=editors&ust=1778600246067575&usg=AOvVaw2YKVH9LIrxj3Yj1JJCPwfc) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-07-19.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-07-19.md new file mode 100644 index 0000000..84a2cf8 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-07-19.md @@ -0,0 +1,27 @@ +### 2023, july 19 + +Agenda + +New + + * Update our clang support page + + + * https://clang.llvm.org/docs/OpenMPSupport.html + + + * Target annotations for tuning (min/max workgroup size, etc.) + + + +#pragma omp target teams distribute parallel for ompx_attribute(amdgpu_waves_per_eu(6), amdgpu_flat_work_group_size(64, 256), __launch_bounds__(256, 6)) num_teams(NumTeams) thead_limit(ThreadLimit) + + for (...) + + * Kevin is picking up reductions + * OpenMC and Kokkos have new problems (need to debug before release, after branch) + * Next time: Testing libm-gpu.a, WIP, Anton will talk about it soon: + + + * [timing_histograms (1).pdf](https://www.google.com/url?q=https://drive.google.com/file/d/1ZK9J-iJAFjb7cQb7ghP6xSqMbUukeRXW/view?usp%3Dshare_link&sa=D&source=editors&ust=1778600246066352&usg=AOvVaw2JpiIWJAPGa2a835J4mqfr) + * [error_plots (1).pdf](https://www.google.com/url?q=https://drive.google.com/file/d/1372FZKRRPTuERCAuJrAls7Q5zI4LsRfj/view?usp%3Dshare_link&sa=D&source=editors&ust=1778600246066461&usg=AOvVaw3lI9ilnVrIERFI9oNnOBmL) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-07-26.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-07-26.md new file mode 100644 index 0000000..eb5cd8a --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-07-26.md @@ -0,0 +1,8 @@ +### 2023, july 26 + +Agenda + +New + + * Update our clang support page +[https://clang.llvm.org/docs/OpenMPSupport.html](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html&sa=D&source=editors&ust=1778600246065320&usg=AOvVaw0bGeCUPf3Khg4iU7_JOmiY) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-08-02.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-08-02.md new file mode 100644 index 0000000..b33f3bc --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-08-02.md @@ -0,0 +1,16 @@ +### 2023, Aug 02 + +Agenda + +New + + * Update our clang support page + + + * https://clang.llvm.org/docs/OpenMPSupport.html + + + * New offloading command line reference + + + * [https://openmp.llvm.org/CommandLineArgumentReference.html](https://www.google.com/url?q=https://openmp.llvm.org/CommandLineArgumentReference.html&sa=D&source=editors&ust=1778600246065042&usg=AOvVaw2-1XUr1JKZmsQ54XLRnjSF) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-08-09.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-08-09.md new file mode 100644 index 0000000..9771fa0 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-08-09.md @@ -0,0 +1,25 @@ +### 2023, Aug 09 + +Agenda + +New + + * Get a policy decision if we should generate errors in compiler or runtime for unsupported OpenMP APIs + * Unsuccessful conversion from generic to generic SPMD + * Should omp_target_memcpy_rect_async capture its arguments by value. + + + * OpenMP issue 3670 + + + * omp_get_num_procs() on the device not supported anymore? ([https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c#inline-9277](https://www.google.com/url?q=https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c%23inline-9277&sa=D&source=editors&ust=1778600246064221&usg=AOvVaw3AIl19UbLyAEtSdpd53T1s)) + + + * OMP Places [https://www.openmp.org/spec-html/5.1/openmpse62.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.1/openmpse62.html&sa=D&source=editors&ust=1778600246064360&usg=AOvVaw1S7menqj60K2bzJRv0oaEv) + * omp_get_place_num_procs(): [https://www.openmp.org/spec-html/5.0/openmpsu134.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.0/openmpsu134.html&sa=D&source=editors&ust=1778600246064502&usg=AOvVaw0f5fXAOdt50P-6ylbAwCT-) + + + * Update our clang support page + + + * https://clang.llvm.org/docs/OpenMPSupport.html diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-08-16.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-08-16.md new file mode 100644 index 0000000..280fe02 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-08-16.md @@ -0,0 +1,41 @@ +### 2023, Aug 16 + +Agenda + +New + + * Indirect codegen patches + + + * Design point of whether address of indirect function has the same or different type to the address of a function + * [[Libomptarget] Support mapping indirect host calls to device functions](https://www.google.com/url?q=https://reviews.llvm.org/D157918&sa=D&source=editors&ust=1778600246062068&usg=AOvVaw1ZMsqnTXoJqziL29tOg4rC) + * [[OpenMP] Emit offloading entries for indirect target variables](https://www.google.com/url?q=https://reviews.llvm.org/D157738&sa=D&source=editors&ust=1778600246062196&usg=AOvVaw2Zvatelhu15lXIreSDhxzN) + + + * Bug49334 causing build bots to hang + + + * [https://github.com/llvm/llvm-project/issues/64733](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/64733&sa=D&source=editors&ust=1778600246062364&usg=AOvVaw2omTyS_dQ1cMOzNuIJb6SL) + + + * Get a policy decision if we should generate errors in compiler or runtime for unsupported OpenMP APIs + * Unsuccessful conversion from generic to generic SPMD + * omp_get_num_procs() on the device not supported anymore? ([https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c#inline-9277](https://www.google.com/url?q=https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c%23inline-9277&sa=D&source=editors&ust=1778600246062756&usg=AOvVaw0616fgvj52c739nMW99SBa)) + + + * OMP Places [https://www.openmp.org/spec-html/5.1/openmpse62.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.1/openmpse62.html&sa=D&source=editors&ust=1778600246062897&usg=AOvVaw2CLuP3m7p5f6E8c2lersIb) + * omp_get_place_num_procs(): [https://www.openmp.org/spec-html/5.0/openmpsu134.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.0/openmpsu134.html&sa=D&source=editors&ust=1778600246063038&usg=AOvVaw3wysX-kg-IAu7msIXHPB9H) + + + * Update our clang support page + + + * [https://clang.llvm.org/docs/OpenMPSupport.html](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html&sa=D&source=editors&ust=1778600246063214&usg=AOvVaw3V21kyUs1IweYqbF7KuJvl) + + + * OMPT: Missing callbacks in plugin generic-elf-64bit, but: how to proceed with the plugin? +(e.g. determine number of devices? Currently hardcoded:: #define NUM_DEVICES 4) + + + * [https://github.com/llvm/llvm-project/issues/64487](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/64487&sa=D&source=editors&ust=1778600246063495&usg=AOvVaw3Kw9zdTbKWSejXLIFW9iWs) +Or: simply connect OMPT and be done with it? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-08-30.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-08-30.md new file mode 100644 index 0000000..06dd31d --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-08-30.md @@ -0,0 +1,74 @@ +### 2023, Aug 30 + +Agenda + +New + + * [D158774: [libc] Add GPU support for `printf` and `fprintf`](https://www.google.com/url?q=https://reviews.llvm.org/D158774&sa=D&source=editors&ust=1778600246058250&usg=AOvVaw0TieWwv-3OZBnD6AgZtVQP) + + + * Should allow for a lot of AMDGPU tests to be upstreamed + * Requires vararg support on the GPU + + + * Indirect codegen patches + + + * Design point of whether address of indirect function has the same or different type to the address of a function + * [[Libomptarget] Support mapping indirect host calls to device functions](https://www.google.com/url?q=https://reviews.llvm.org/D157918&sa=D&source=editors&ust=1778600246058649&usg=AOvVaw1RDGGj8LRAbDJberUqJITQ) + * [[OpenMP] Emit offloading entries for indirect target variables](https://www.google.com/url?q=https://reviews.llvm.org/D157738&sa=D&source=editors&ust=1778600246058775&usg=AOvVaw1EBNfpn7xjVKxOnGCUND8N) + + + * omp_get_num_procs() on the device not supported anymore? ([https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c#inline-9277](https://www.google.com/url?q=https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c%23inline-9277&sa=D&source=editors&ust=1778600246058982&usg=AOvVaw2e5tj4UVu2F8YqEDhGX10E)) + + + * OMP Places [https://www.openmp.org/spec-html/5.1/openmpse62.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.1/openmpse62.html&sa=D&source=editors&ust=1778600246059176&usg=AOvVaw060uob5vQkHkIvVys_tiGT) + * omp_get_place_num_procs(): [https://www.openmp.org/spec-html/5.0/openmpsu134.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.0/openmpsu134.html&sa=D&source=editors&ust=1778600246059327&usg=AOvVaw1G8iUkJhNwsuRDh7Ggf3pP) + + + +### + +### 023, Aug 23 + +Agenda + +New + + * Indirect codegen patches + + + * Design point of whether address of indirect function has the same or different type to the address of a function + * [[Libomptarget] Support mapping indirect host calls to device functions](https://www.google.com/url?q=https://reviews.llvm.org/D157918&sa=D&source=editors&ust=1778600246059792&usg=AOvVaw2Em6uFwHMr-ORjwLui67Za) + * [[OpenMP] Emit offloading entries for indirect target variables](https://www.google.com/url?q=https://reviews.llvm.org/D157738&sa=D&source=editors&ust=1778600246059910&usg=AOvVaw1b17CZeVFGfgn4sL3UJSQd) + + + * Get a policy decision if we should generate errors in compiler or runtime for unsupported OpenMP APIs + + + * Should get a link time error. + + + * Unsuccessful conversion from generic to generic SPMD + * omp_get_num_procs() on the device not supported anymore? ([https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c#inline-9277](https://www.google.com/url?q=https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c%23inline-9277&sa=D&source=editors&ust=1778600246060370&usg=AOvVaw1WqpoQnGdYUEy7Xd3usRMm)) + + + * OMP Places [https://www.openmp.org/spec-html/5.1/openmpse62.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.1/openmpse62.html&sa=D&source=editors&ust=1778600246060514&usg=AOvVaw392Ia0_x5t45sdhWdAW5l_) + * omp_get_place_num_procs(): [https://www.openmp.org/spec-html/5.0/openmpsu134.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.0/openmpsu134.html&sa=D&source=editors&ust=1778600246060657&usg=AOvVaw1RG5XV-fIsm3L9u80KQXfv) + + + * Update our clang support page + + + * [https://clang.llvm.org/docs/OpenMPSupport.html](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html&sa=D&source=editors&ust=1778600246060821&usg=AOvVaw17C6a1_ozxZRgnlIBH4xBr) + + + * OMPT: Missing callbacks in plugin generic-elf-64bit: [https://github.com/llvm/llvm-project/issues/64487](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/64487&sa=D&source=editors&ust=1778600246060989&usg=AOvVaw0HLlB9O2tzjULASIfINAUF) + + + * How to proceed with the plugin? [https://reviews.llvm.org/D158542](https://www.google.com/url?q=https://reviews.llvm.org/D158542&sa=D&source=editors&ust=1778600246061454&usg=AOvVaw0mJdzd6OmUIy2n41LyHJ-f) + * Simply connect OMPT and be done with it? [https://reviews.llvm.org/D158543](https://www.google.com/url?q=https://reviews.llvm.org/D158543&sa=D&source=editors&ust=1778600246061598&usg=AOvVaw1nd-BvCTbMVBVrXuVKfNuj) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-09-06.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-09-06.md new file mode 100644 index 0000000..1af9765 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-09-06.md @@ -0,0 +1,29 @@ +### 2023, Sept 06 + +Agenda + +New + + * Due to OpenMP F2F and IWOMP next 2 meetings cancelled. Resume on Sept 27 + * OpenMP, GPUs and large FP types (long double, __float128, and possibly double double). +GPUs do not support those types. HIP/CUDA silently demote them to double, breaking host/GPU in-memory representation compatibility. OpenMP currently insists on matching in-memory representation but does not always generate correct code ([https://reviews.llvm.org/D158778#4626181](https://www.google.com/url?q=https://reviews.llvm.org/D158778%234626181&sa=D&source=editors&ust=1778600246056288&usg=AOvVaw3N_Ks3F1tTKAubwWOfdHJb)). The problem is that the demotion is currently done in the back-end, and OpenMP forces host-matching FP format on the AST level, which makes it hard to provide consistent results as the back-end just does not have support for the FP types the openmp front-end may ask it to compile. +Q: What does OpenMP expect to happen when compiled code uses FP type not supported by the back-end (or back-end uses a different in-memory representation for the type)? +\- error out? +\- deal with mismatched GPU-side implementation the way CUDA does (the code is valid, but we can't exchange those types across host/GPU by just copying)? + * OpenMP label(s) granularity on Github: [https://github.com/llvm/llvm-project/pull/65331](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/65331&sa=D&source=editors&ust=1778600246056941&usg=AOvVaw0BVxTfjqZoMuzTbjMj0mcp) + * omp_get_num_procs() on the device not supported anymore? ([https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c#inline-9277](https://www.google.com/url?q=https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c%23inline-9277&sa=D&source=editors&ust=1778600246057170&usg=AOvVaw09ehLgojYhW6vDMrPth2j-)) + + + * OMP Places [https://www.openmp.org/spec-html/5.1/openmpse62.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.1/openmpse62.html&sa=D&source=editors&ust=1778600246057312&usg=AOvVaw0nxNYXVY0st2ufvTVfFqcQ) + * omp_get_place_num_procs(): [https://www.openmp.org/spec-html/5.0/openmpsu134.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.0/openmpsu134.html&sa=D&source=editors&ust=1778600246057456&usg=AOvVaw2_JqRSIsfdiPqmVsqkhdcf) + + + * Update our clang support page + + + * [https://clang.llvm.org/docs/OpenMPSupport.html](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html&sa=D&source=editors&ust=1778600246057620&usg=AOvVaw3iG4SSQh-plDhP5hK1p5MN) + * To be cherry-picked on the stable branch ? + + + * [D156894](https://www.google.com/url?q=https://reviews.llvm.org/D156894&sa=D&source=editors&ust=1778600246057754&usg=AOvVaw08GxJTrY7EkuvrMw-jkQ2B): [NFC] Update OpenMP Support page for Clang/LLVM 17 + * [D156901](https://www.google.com/url?q=https://reviews.llvm.org/D156901&sa=D&source=editors&ust=1778600246057864&usg=AOvVaw13xbPeJW3x7HYmuCEbf7jA): [OpenMP] Change OpenMP default version in documentation and help text for -fopenmp-version diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-09-27.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-09-27.md new file mode 100644 index 0000000..86ae20c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-09-27.md @@ -0,0 +1,35 @@ +### 2023, Sept 27 + +Agenda + +New + + * [D158774: [libc] Add GPU support for `printf` and `fprintf`](https://www.google.com/url?q=https://reviews.llvm.org/D158774&sa=D&source=editors&ust=1778600246054618&usg=AOvVaw1XGA-MhbL040G6hkeRHjM0) + + + * Waiting on Vararg support on the GPU + + + * Automatically link `-lcgpu` if present + + + * [https://github.com/llvm/llvm-project/pull/67557](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/67557&sa=D&source=editors&ust=1778600246054850&usg=AOvVaw0ATuwrNWDE94FlFgJSYe9H) + + + * omptests repository has been deleted (clang-ykt/omptests) + + + * They have been brought back to life in [https://github.com/doru1004/omptests](https://www.google.com/url?q=https://github.com/doru1004/omptests&sa=D&source=editors&ust=1778600246055055&usg=AOvVaw31ZD4SPd4eQWLmXI61W0-m) + + + + * Update our clang support page + + + * [https://arxiv.org/pdf/2309.05445.pdf](https://www.google.com/url?q=https://arxiv.org/pdf/2309.05445.pdf&sa=D&source=editors&ust=1778600246055242&usg=AOvVaw2Lf29XJH_huFqqaF9z-irb) + * [https://clang.llvm.org/docs/OpenMPSupport.html](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html&sa=D&source=editors&ust=1778600246055363&usg=AOvVaw1LbdkUGqDXLPR6D7-ZPxDz) + * To be cherry-picked on the stable branch ? + + + * [D156894](https://www.google.com/url?q=https://reviews.llvm.org/D156894&sa=D&source=editors&ust=1778600246055493&usg=AOvVaw1d41lPScZZI8i1lAE3D-oO): [NFC] Update OpenMP Support page for Clang/LLVM 17 + * [D156901](https://www.google.com/url?q=https://reviews.llvm.org/D156901&sa=D&source=editors&ust=1778600246055605&usg=AOvVaw3esYui46EgwKv3HmkFkxww): [OpenMP] Change OpenMP default version in documentation and help text for -fopenmp-version diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-10-18.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-10-18.md new file mode 100644 index 0000000..53f6d31 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-10-18.md @@ -0,0 +1,21 @@ +### 2023, Oct 18 + +Agenda + +New + + * #pragma omp begin declare target device_type(nohost) + + + + Int x; // reference to x on host should be an error. + + * Generate info for implicit map in clang to yaml file. + * Is openmp nvptx broken for everyone or just Jon? + + + * Subtopic, what happened to the unofficial CI bot / what needs to happen to have a machine on the llvm infra, in case it is currently broken for everyone + + + * Map checks in USM. + * `mv openmp/libomptarget -> llvm/offload`, RFC coming this week diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-10-25-2.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-10-25-2.md new file mode 100644 index 0000000..935c2a6 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-10-25-2.md @@ -0,0 +1,40 @@ +### 2023, Oct 25 + +Agenda + +New + + * Intel's interop implementation + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.2 Update 2, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246051897&usg=AOvVaw17XlzyPeJOos9LdV_OgYDO) (-DLLVM_ENABLE_PROJECTS=openmp): 42 failed tests (up from 2 in 3523f94bfa8773a7dfe7b9a634fcf06fcd2ac3e3) + + + * api/ompx_3d: Cannot form a team with 2 threads, using 1 instead. + * nvlink error : Prototype doesn't match for 'llvm_omp_target_dynamic_shared_alloc', 'omp_get_num_procs' + * api/omp_host_pinned_memory: "CUDA" error: Failure to alloc memory: Error in cuMemAlloc[Host|Managed]: invalid device context + * mappin/reduction_implicit_map, offloading/bug64959_compile_only: ptxas /tmp/lit-tmp-hj1du5qk/reduction_implicit_map.cpp.tmp.nvptx64-nvidia-cuda.sm_61-115f57.s, line 29960; error : Feature 'activemask' requires PTX ISA .version 6.2 or later + * offloading/barrier_fence: nvlink error : entry function '__omp_offloading_820_4365e_main_l26' with max regcount of 128 calls function '__kmpc_parallel_51' with regcount of 252 + * mapping/target_uses_allocator: Clang SEGFAULT: clang::CodeGen::CodeGenFunction::EmitLValueForLambdaField + * unified_shared_memory/shared_update: "PluginInterface" error: Failure to synchronize stream (nil): Error in cuStreamSynchronize: an illegal memory access was encountered + + + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246053055&usg=AOvVaw2TXjVwsxRYMy5fFA9JF-kE) (-DLLVM_ENABLE_RUNTIMES=openmp): 286 failed tests` + + + * ptxas not found; should honor -DCUDA_TOOLKIT_ROOT_DIR=/opt/cuda setting + + + * SOLLVE V&V not running, requires -DSYSTEM_GPU=NVIDIA/AMD (https://github.com/llvm/llvm-test-suite/pull/24, https://github.com/llvm/llvm-test-suite/pull/28) + + + * Should run all tests when not specified + * Why not autodetect? + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246053651&usg=AOvVaw39TPd2hsuACP6PZAfahTwF) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-10-25.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-10-25.md new file mode 100644 index 0000000..4d002aa --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-10-25.md @@ -0,0 +1,19 @@ +### 2023, Oct 25 + +Agenda + +New + + * Any downstream users of the record and replay API? We're extending it. + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246051053&usg=AOvVaw23BsNAG2SV0e9ek_yynPHk) (-DLLVM_ENABLE_PROJECTS=openmp): 34 failed tests (down from from 42) + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246051214&usg=AOvVaw34hcjy65uddbCY-Hk0PbWd) (-DLLVM_ENABLE_RUNTIMES=openmp): 34 failed tests + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246051478&usg=AOvVaw3GSljN8k8yb9W2m0HOAya1) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-11-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-11-08.md new file mode 100644 index 0000000..06b767b --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-11-08.md @@ -0,0 +1,19 @@ +### 2023, Nov 08 + +Agenda + +New + + * Reworking global ctors / dtors in offloading + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246050180&usg=AOvVaw2qehokX3bhSevVBYgmTUKf) (-DLLVM_ENABLE_PROJECTS=openmp): 34 failed tests + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246050308&usg=AOvVaw1sULkwXWMnBjd8WZxM9i0S) (-DLLVM_ENABLE_RUNTIMES=openmp): 34 failed tests + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246050583&usg=AOvVaw0LYx6ml28sGfudSOV_YD49) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-11-22.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-11-22.md new file mode 100644 index 0000000..e7d05da --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-11-22.md @@ -0,0 +1,19 @@ +### 2023, Nov 22 + +Agenda (Nov 15 meeting canceled) + +New + + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246049216&usg=AOvVaw3h5Z27QqGhVnWetEvEMukN) (-DLLVM_ENABLE_PROJECTS=openmp): 34 failed tests + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246049355&usg=AOvVaw3M5CLhHcwNbTQBe6uEp3nw) (-DLLVM_ENABLE_RUNTIMES=openmp): 34 failed tests + * [[libomptarget][tests] Maximum assumed device heap size. * Issue #71747](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/71747&sa=D&source=editors&ust=1778600246049526&usg=AOvVaw32fQkWsawCg_JHolLU_7yY) (4 tests) + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246049758&usg=AOvVaw2z7PXNejBJ8OdfR9FqHDGQ) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-11-29.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-11-29.md new file mode 100644 index 0000000..3a87532 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-11-29.md @@ -0,0 +1,20 @@ +### 2023, Nov 29 + +Agenda (Nov 15 meeting canceled) + +New + + * Performance implications of [[OpenMP] Introduce the KernelLaunchEnvironment as implicit argument by jdoerfert * Pull Request #70401 * llvm/llvm-project (github.com)](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/70401&sa=D&source=editors&ust=1778600246048056&usg=AOvVaw3g8nZVS3i4g3PwSnTkZ-6N) + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246048297&usg=AOvVaw3RQpXLuIsq6EZ0hxqkC8oi) (-DLLVM_ENABLE_PROJECTS=openmp): 34 failed tests + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246048436&usg=AOvVaw0o0gnsj6Y9LogBIhm7Oij9) (-DLLVM_ENABLE_RUNTIMES=openmp): 34 failed tests + * [[libomptarget][tests] Maximum assumed device heap size. * Issue #71747](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/71747&sa=D&source=editors&ust=1778600246048607&usg=AOvVaw2XxExWTQfa4T0kbPoLt3k7) (4 tests) + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246048837&usg=AOvVaw0nZ5SoIny09YRneuq_Er3d) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-12-06.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-12-06.md new file mode 100644 index 0000000..c94b3b6 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-12-06.md @@ -0,0 +1,21 @@ +### 2023, Dec 06 + +Agenda + +New + + * Question on [https://github.com/llvm/llvm-project/pull/74532](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/74532&sa=D&source=editors&ust=1778600246046747&usg=AOvVaw3vQ8UCdZgr74ZnG9HSEtAV) + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246046978&usg=AOvVaw09vTOSSfJFCCVORTMRVrxI) + + + * Plugin unit tests: [https://github.com/llvm/llvm-project/pull/74398](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/74398&sa=D&source=editors&ust=1778600246047148&usg=AOvVaw3cmeL0sNJmR29_b956kjY3) + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246047383&usg=AOvVaw2hq6rtQZUHtgD5Ivlt4TTe) (-DLLVM_ENABLE_PROJECTS=openmp): 34 failed tests + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246047517&usg=AOvVaw1YFoWoVT2b99Q0PipGIpn7) (-DLLVM_ENABLE_RUNTIMES=openmp): 34 failed tests + * [[libomptarget][tests] Maximum assumed device heap size. * Issue #71747](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/71747&sa=D&source=editors&ust=1778600246047688&usg=AOvVaw1cUPV7X-Sm3vKDMZ-dBB_-) (4 tests) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2023-12-13.md b/openmp-wg/meeting-minutes/openmp-minutes-2023-12-13.md new file mode 100644 index 0000000..bfb166e --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2023-12-13.md @@ -0,0 +1,22 @@ +### 2023, Dec 13 + +Agenda + +New + + * Impact of device initialization reorganization [[OpenMP] Reorganize the initialization of `PluginAdaptorTy` by jdoerfert * Pull Request #74397 * llvm/llvm-project (github.com)](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/74397&sa=D&source=editors&ust=1778600246045505&usg=AOvVaw1iE-ayr2G_1moUVjlMwvmW) + * Who uses a project build of libomptarget and why? + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246045798&usg=AOvVaw2nqlXYgXMNdVMYds2jW0AB) + + + * Plugin unit tests: [https://github.com/llvm/llvm-project/pull/74398](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/74398&sa=D&source=editors&ust=1778600246045929&usg=AOvVaw3kbk1jvhF1vUBHrs5_OMG7) + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246046171&usg=AOvVaw3SngeNuzMjfgQldf6CZxTs) (-DLLVM_ENABLE_PROJECTS=openmp): 34 failed tests + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246046309&usg=AOvVaw1tpX-VNKwi2TqeqDQDmgxn) (-DLLVM_ENABLE_RUNTIMES=openmp): 34 failed tests + * [[libomptarget][tests] Maximum assumed device heap size. * Issue #71747](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/71747&sa=D&source=editors&ust=1778600246046479&usg=AOvVaw36V3SBODgBOkKcKioQTUUP) (4 tests) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-01-10.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-01-10.md new file mode 100644 index 0000000..5438d31 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-01-10.md @@ -0,0 +1,42 @@ +### 2024, Jan 10 + +Agenda + +New + + * Getting rid of the plugin design and statically linking instead + + + * Similar to LLVM's design for target backends + + + * More a note than a discussion point: libomptarget -> offload: Buildbots should move accordingly + * OpenMP Examples : target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + + #pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246044197&usg=AOvVaw2yu75iQtrERPVJJnbvzPlc) + * Deep copy of libomptarget and (offload, libomptarget) co-exist till offload is stable enough to become default and libomptarget can be deleted? + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246044508&usg=AOvVaw2jTqqnsm2DTva5WTWdc3Gc) + + + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246044737&usg=AOvVaw2yoNLwVenxv-jd5llyfabw) (-DLLVM_ENABLE_PROJECTS=openmp): 34 failed tests + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246044875&usg=AOvVaw2lUNA51FT0JRCpg8RAwqHZ) (-DLLVM_ENABLE_RUNTIMES=openmp): 34 failed tests + * [[libomptarget][tests] Maximum assumed device heap size. * Issue #71747](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/71747&sa=D&source=editors&ust=1778600246045045&usg=AOvVaw28I10NGe0T2OzGY69uLlLy) (4 tests) + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-02-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-02-14.md new file mode 100644 index 0000000..cc53d63 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-02-14.md @@ -0,0 +1,131 @@ +### 2024, Feb 14 + +Agenda + +New + + * OpenMP Combined constructs. + * Pass libomptarget.so by name instead of `-lomptarget` and place it in the compiler's resource directory + + + * Currently we will link against system `libomptarget` + + + * Meeting schedule + + + * Starting Jan 17, meeting will alternate with the liboffload meeting + * Next OpenMP meeting will be on Feb 14 + + + * OpenMP F2F meeting week of Jan 29- Feb 2 + + + * New invites will be sent out by MichaelKlemm and Johannes for OpenMp and Offload meeting + * Old invite by Ron L will have to be dropped and re-created (likely by Michael Klemm) + + + * Getting rid of the plugin design and statically linking instead + + + * Similar to LLVM's design for target backend + + + * OpenMP Examples : target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + + #pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246039692&usg=AOvVaw3L00IBX0QsaTInsXq25mnB) + * Deep copy of libomptarget and (offload, libomptarget) co-exist till offload is stable enough to become default and libomptarget can be deleted? + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246039982&usg=AOvVaw1Ur0ASd1sPyaquBAFmJCBM) + + + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246040222&usg=AOvVaw3kG6L9JrzbAoKgqn0JVy-W) (-DLLVM_ENABLE_PROJECTS=openmp): + + + * Link issue since https://github.com/llvm/llvm-project/pull/74520 + * Tries to use lld with gcc-compiled lto objects + * RUNTIMES=openmp disables -flto because CMake test looks for LLVMgold.so + + + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246040565&usg=AOvVaw2pvyTVokzvVOsH6ikiGjsS) (-DLLVM_ENABLE_RUNTIMES=openmp): 21 failed tests + + + +### + +### 024, Jan 17 + +Agenda + +New + + * Meeting schedule + + + * Starting Jan 17, meeting will alternate with the liboffload meeting + * Next OpenMP meeting will be on Feb 14 + + + * OpenMP F2F meeting week of Jan 29- Feb 2 + + + * New invites will be sent out by MichaelK and Johannes for OpenMp and Offload meeting + * Old invite by Ron L will have to be dropped and re-created (likely by Michael K) + + + * Getting rid of the plugin design and statically linking instead + + + * Similar to LLVM's design for target backends + + + * More a note than a discussion point: libomptarget -> offload: Buildbots should move accordingly + + + * Buildbot updates + + + * \- OpenMP AMDGPU Production bot currently offline and on transit to other data center + * \- New OpenMP AMDGPU clang staging buildbot on gfx90a/rocm 6: [https://lab.llvm.org/staging/#/builders/185](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/185&sa=D&source=editors&ust=1778600246041767&usg=AOvVaw2zhTfHQ6139R9zIxNKe6Qu) + * \- New OpenMP AMDGPU clang+flang staging buildbot on gfx90a/rocm 6: [https://lab.llvm.org/staging/#/builders/140](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/140&sa=D&source=editors&ust=1778600246041935&usg=AOvVaw0YK2hjrWf2kNpxKlN0lhZm) + * \- OpenMP AMDGPU clang+libc staging buildbot on gfx906/rocm 5.6: [https://lab.llvm.org/staging/#/builders/11](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/11&sa=D&source=editors&ust=1778600246042093&usg=AOvVaw02Fwsodg1x0DVXX08FtiDR) + + + * * OpenMP Examples : target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + + #pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246042613&usg=AOvVaw0wYg6mSjdv6C_glCOcN6Rv) + * Deep copy of libomptarget and (offload, libomptarget) co-exist till offload is stable enough to become default and libomptarget can be deleted? + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246042904&usg=AOvVaw2hNSjMo_qvpue0Ud9OoBJp) + + + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246043141&usg=AOvVaw0kT3vG46QM6M44UkgenMa-) (-DLLVM_ENABLE_PROJECTS=openmp): llvm-omp-device-info fail + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246043278&usg=AOvVaw0m_EG2wrsjV6tNuvdLrhh5) (-DLLVM_ENABLE_RUNTIMES=openmp): 21 failed tests diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-02-28.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-02-28.md new file mode 100644 index 0000000..3736b7b --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-02-28.md @@ -0,0 +1,55 @@ +### 2024, Feb 28 + +New + + * Pass libomptarget.so by name instead of `-lomptarget` and place it in the compiler's resource directory + + + * Currently we will link against system `libomptarget` + + + * OpenMP Examples : target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + + #pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * New PR: [https://github.com/llvm/llvm-project/pull/82459](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/82459&sa=D&source=editors&ust=1778600246036738&usg=AOvVaw17H3sT-B68N1MG6UZWShcp) + * AMD would like to make sure it builds. + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246036967&usg=AOvVaw0flt6_qy2aLOGXDsQhjEHy) + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246037128&usg=AOvVaw2kZ38zDjCbqjPeDwUHcXZI) + + + * Hang started Feb 22/23: + + + * [https://discourse.llvm.org/t/openmp-offloading-double-build-hanging/77256](https://www.google.com/url?q=https://discourse.llvm.org/t/openmp-offloading-double-build-hanging/77256&sa=D&source=editors&ust=1778600246037344&usg=AOvVaw2672iGO1xUvxaZoUBg0xmw) + + + * Schedule and dist schedule for GPUs, let's all make sure we are consistent: + + + * [https://github.com/llvm/llvm-project/pull/83261/files](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/83261/files&sa=D&source=editors&ust=1778600246037559&usg=AOvVaw3xyUU-sOvzCQGMHo7C8b6p) + + + * Compound/composite constructs in Flang (and Clang) + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600246037850&usg=AOvVaw2wJc5FJNOyBgcyqrXkCw7d) (-DLLVM_ENABLE_PROJECTS=openmp): + + + * Link issue since https://github.com/llvm/llvm-project/pull/74520 + * Tries to use lld with gcc-compiled lto objects + * RUNTIMES=openmp disables -flto because CMake test looks for LLVMgold.so + + + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600246038196&usg=AOvVaw23Ges45nJUBR44J_SgO26o) (-DLLVM_ENABLE_RUNTIMES=openmp): 21 failed tests diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-03-13.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-03-13.md new file mode 100644 index 0000000..88eb944 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-03-13.md @@ -0,0 +1,48 @@ +### 2024, Mar 13 + +Agenda + +New + + * Offloading entries errors on invalid address with non-constexpr constructor + + + * [https://github.com/llvm/llvm-project/issues/84942](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/84942&sa=D&source=editors&ust=1778600246034486&usg=AOvVaw18sDwJAEE-vHY7t2Iglf18) + + + * Pass libomptarget.so by name instead of `-lomptarget` and place it in the compiler's resource directory + + + * Currently we will link against system `libomptarget` + + + * OpenMP Examples : target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) #pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * New PR: [https://github.com/llvm/llvm-project/pull/82459](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/82459&sa=D&source=editors&ust=1778600246035127&usg=AOvVaw1i5w6-WKfUfc0y8PwGN2J5) + * AMD would like to make sure it builds. + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246035365&usg=AOvVaw3GBvC07Q01Jy07OyGSzYe0) + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246035513&usg=AOvVaw0NfC3QXoSrj7tJZ2VoAlkn) + + + * Hang started Feb 22/23: + + + * [https://discourse.llvm.org/t/openmp-offloading-double-build-hanging/77256](https://www.google.com/url?q=https://discourse.llvm.org/t/openmp-offloading-double-build-hanging/77256&sa=D&source=editors&ust=1778600246035697&usg=AOvVaw1iLVueLXSY8mSGziS81yyg) + + + * Schedule and dist schedule for GPUs, let's all make sure we are consistent: + + + * [https://github.com/llvm/llvm-project/pull/83261/files](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/83261/files&sa=D&source=editors&ust=1778600246035897&usg=AOvVaw2ALmfIOMx6bwzDi-kTcg3v) + + + * Compound/composite constructs in Flang (and Clang) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-03-27.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-03-27.md new file mode 100644 index 0000000..ff3c0ee --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-03-27.md @@ -0,0 +1,54 @@ +### 2024, Mar 27 + +Agenda + +New + + * Mapper bug [llvm#61636](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/61636&sa=D&source=editors&ust=1778600246032390&usg=AOvVaw1ug-dEupNrbed98wfjwNEC), potential fix: + + + * [https://github.com/jdoerfert/llvm-project/commit/527bf4b1293f452aac1f872c4f771c7950b911f9](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commit/527bf4b1293f452aac1f872c4f771c7950b911f9&sa=D&source=editors&ust=1778600246032569&usg=AOvVaw3XLS2ETMDjGUGodUMqWmzp) + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * New PR: [https://github.com/llvm/llvm-project/pull/75125](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/75125&sa=D&source=editors&ust=1778600246032797&usg=AOvVaw13I6WXUiWdmECkVM018dwe) + * AMD would like to make sure it builds. + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246033032&usg=AOvVaw1EE1bxnr62CH87w-x4rHSj) + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246033195&usg=AOvVaw2zmZJGq8bGJS6Re6DYTk5o) + + + * Moving to statically linking plugins + + + * [https://github.com/llvm/llvm-project/pull/86683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/86683&sa=D&source=editors&ust=1778600246033371&usg=AOvVaw2_z0qoHRhmidl6EVenECTG) + + + * Hang started Feb 22/23: + + + * [https://discourse.llvm.org/t/openmp-offloading-double-build-hanging/77256](https://www.google.com/url?q=https://discourse.llvm.org/t/openmp-offloading-double-build-hanging/77256&sa=D&source=editors&ust=1778600246033558&usg=AOvVaw38ons0pCgJTAmUd5a1G1B1) + * Seems resolved. + + + * Feature flags for offloading tests: + + + * [https://github.com/llvm/llvm-project/pull/83261#issuecomment-2022901322](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/83261%23issuecomment-2022901322&sa=D&source=editors&ust=1778600246033788&usg=AOvVaw1aQAN9MtbLKi5Q-L-Qdw2p) + + + * Compound/composite constructs in Flang (and Clang) + * OpenMP version 5.2 as default + * OpenMP Examples : + + + * target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + +#pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-04-24.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-04-24.md new file mode 100644 index 0000000..398c2f2 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-04-24.md @@ -0,0 +1,54 @@ +### 2024, April 24 + +Agenda + +New + + * Mapper bug [llvm#61636](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/61636&sa=D&source=editors&ust=1778600246030221&usg=AOvVaw3sqUi5J_MneT1JvQySp4eU), potential fix: + + + * [https://github.com/jdoerfert/llvm-project/commit/527bf4b1293f452aac1f872c4f771c7950b911f9](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commit/527bf4b1293f452aac1f872c4f771c7950b911f9&sa=D&source=editors&ust=1778600246030402&usg=AOvVaw3SBnezd_TAxQ2rFqLQcnPT) + + + * Buildbots still need to catch up with move to offload. Changes have not propagated to all builders. + + + * Please help avoid breakages by monitoring [https://lab.llvm.org/staging/#/builders/191](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/191&sa=D&source=editors&ust=1778600246030647&usg=AOvVaw3ozZITFix0Zs7G-rmaTHl2) + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * New PR: [https://github.com/llvm/llvm-project/pull/75125](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/75125&sa=D&source=editors&ust=1778600246030863&usg=AOvVaw1v9yoM1se840I7DY8DGrEj) + * AMD would like to make sure it builds. + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246031088&usg=AOvVaw3qjCRqF0StWt_aJ21vXy9M) + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246031250&usg=AOvVaw0vQEy27_o50oOuVLgABg4y) + + + * Subscription List: [https://github.com/orgs/llvm/teams/pr-subscribers-offload](https://www.google.com/url?q=https://github.com/orgs/llvm/teams/pr-subscribers-offload&sa=D&source=editors&ust=1778600246031404&usg=AOvVaw3L5guIFGdPq9Am42E2updN) + * Building the DeviceRTL / offload library + * Moving to statically linking plugins + + + * [https://github.com/llvm/llvm-project/pull/86683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/86683&sa=D&source=editors&ust=1778600246031626&usg=AOvVaw0Xz4S9K1K1RoD2LCORrDjE) + + + * Compound/composite constructs in Flang (and Clang) + * OpenMP version 5.2 as default + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * OpenMP Examples : + + + * target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + +#pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-05-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-05-08.md new file mode 100644 index 0000000..bf12ca3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-05-08.md @@ -0,0 +1,54 @@ +### 2024, May 8 + +Agenda + +New + + * OpenMP hull tasks: + + + * What is the community's feeling on the hull tasks discussion in the language committee and potential implementation in the LLVM libomp runtime? + * Is there some interest to try to get an implementation going to get some better idea of the feature impact before the TR of OpenMP 6.0 or something? + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * New PR: [https://github.com/llvm/llvm-project/pull/75125](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/75125&sa=D&source=editors&ust=1778600246028668&usg=AOvVaw3PJcTmee-ymRLL_O6kk7j1) + * AMD would like to make sure it builds. + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246028900&usg=AOvVaw3nE9doiBKGD4TBeMJ2Yv-3) + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246029051&usg=AOvVaw3uiM5KeLugSH6lhZGOH_lA) + + + * Subscription List: [https://github.com/orgs/llvm/teams/pr-subscribers-offload](https://www.google.com/url?q=https://github.com/orgs/llvm/teams/pr-subscribers-offload&sa=D&source=editors&ust=1778600246029200&usg=AOvVaw1xZT-k_7VnVr__ipWKVoLa) + * Building the DeviceRTL / offload library + * Moving to statically linking plugins + + + * [https://github.com/llvm/llvm-project/pull/86683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/86683&sa=D&source=editors&ust=1778600246029429&usg=AOvVaw3a_-Cp1BkST9ZxmmTAML2Z) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm. + + + * OpenMP version 5.2 as default + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * OpenMP Examples : + + + * target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + +#pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-05-22.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-05-22.md new file mode 100644 index 0000000..fbd93a5 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-05-22.md @@ -0,0 +1,58 @@ +### 2024, May 22 + +Agenda + +New + + * DLopen libcuda / libhsa by default + + + * Export dynamic cuda / dynamic hsa so libc / clang can use it + + + * OpenMP hull tasks: + + + * What is the community's feeling on the hull tasks discussion in the language committee and potential implementation in the LLVM libomp runtime? + * Is there some interest to try to get an implementation going to get some better idea of the feature impact before the TR of OpenMP 6.0 or something? + + + * openmp/libomptarget -> llvm/offload _or_ llvm/offload as its own entity + + + * New PR: [https://github.com/llvm/llvm-project/pull/75125](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/75125&sa=D&source=editors&ust=1778600246026546&usg=AOvVaw1DOe5kB5sU0BXNGZzf01P4) + * AMD would like to make sure it builds. + * [https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing](https://www.google.com/url?q=https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600246026785&usg=AOvVaw01nnGzgDmA1KdjhacCvoQ9) + * [https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-introducing-llvm-project-offload/74302/11&sa=D&source=editors&ust=1778600246026935&usg=AOvVaw2E7fBy6vF06SWGsGklfjR3) + + + * Subscription List: [https://github.com/orgs/llvm/teams/pr-subscribers-offload](https://www.google.com/url?q=https://github.com/orgs/llvm/teams/pr-subscribers-offload&sa=D&source=editors&ust=1778600246027128&usg=AOvVaw3Z5rhR7mv1pMNhneBrFUQu) + * Building the DeviceRTL / offload library + * Moving to statically linking plugins + + + * [https://github.com/llvm/llvm-project/pull/86683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/86683&sa=D&source=editors&ust=1778600246027396&usg=AOvVaw1WjzaVlbotWVjzsrAnruRB) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm. + + + * OpenMP version 5.2 as default + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * OpenMP Examples : + + + * target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + +#pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-06-05.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-06-05.md new file mode 100644 index 0000000..cd62870 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-06-05.md @@ -0,0 +1,40 @@ +### 2024, June 5 + +Agenda + +New + + * KernelArgsTy : Vendor specific field + * OpenMP hull tasks: + + + * What is the community's feeling on the hull tasks discussion in the language committee and potential implementation in the LLVM libomp runtime? + * Is there some interest to try to get an implementation going to get some better idea of the feature impact before the TR of OpenMP 6.0 or something? + + + * Subscription List: [https://github.com/orgs/llvm/teams/pr-subscribers-offload](https://www.google.com/url?q=https://github.com/orgs/llvm/teams/pr-subscribers-offload&sa=D&source=editors&ust=1778600246025050&usg=AOvVaw1Q-_O9iz-7dap2fcKKYtc1) + * Building the DeviceRTL / offload library + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm. + + + * OpenMP version 5.2 as default + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * OpenMP Examples : + + + * target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + +#pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-06-19.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-06-19.md new file mode 100644 index 0000000..7d4276c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-06-19.md @@ -0,0 +1,43 @@ +### 2024, June 19 + +Agenda + +New + + * KernelArgsTy : Vendor specific field + * OpenMP transparent tasks: + + + * What is the community's feeling on the transparent tasks discussion in the language committee and potential implementation in the LLVM libomp runtime? + * Is there some interest to try to get an implementation going to get some better idea of the feature impact before the TR of OpenMP 6.0 or something? + + + * Task Graph + * Target data as a task generating construct + * Subscription List: [https://github.com/orgs/llvm/teams/pr-subscribers-offload](https://www.google.com/url?q=https://github.com/orgs/llvm/teams/pr-subscribers-offload&sa=D&source=editors&ust=1778600246023615&usg=AOvVaw04QTj-SoZtQCZf5SjVzxrt) + * Building the DeviceRTL / offload library + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm. + + + * OpenMP version 5.2 as default + + + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246023997&usg=AOvVaw08N-Y-8O6gs_-SbW5Hk93S) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * OpenMP Examples : + + + * target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + +#pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-07-03.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-07-03.md new file mode 100644 index 0000000..5752433 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-07-03.md @@ -0,0 +1,62 @@ +### 2024, July 3 + +Agenda + +New + + * Reworking linker wrapper to pass all files to the device link step + + + * [https://github.com/llvm/llvm-project/pull/97573/](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/97573/&sa=D&source=editors&ust=1778600246020873&usg=AOvVaw26OzNw-NkU1Ka42FgS1ziR) + + + * KernelArgsTy : Vendor specific field + * OpenMP transparent tasks: + + + * What is the community's feeling on the transparent tasks discussion in the language committee and potential implementation in the LLVM libomp runtime? + * Is there some interest to try to get an implementation going to get some better idea of the feature impact before the TR of OpenMP 6.0 or something? + + + * Task Graph + * Target data as a task generating construct + * Subscription List: [https://github.com/orgs/llvm/teams/pr-subscribers-offload](https://www.google.com/url?q=https://github.com/orgs/llvm/teams/pr-subscribers-offload&sa=D&source=editors&ust=1778600246021535&usg=AOvVaw1acyn0sZcTmtHswcZaIEx-) + * Building the DeviceRTL / offload library + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm. + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246021911&usg=AOvVaw2ECj4ts8WvBXgrbFuaZRFZ) + + + * Cooperative Kernel launch via HSA? + * Kernel library shipped with Offload + * GPUSan WIP + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_san](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_san&sa=D&source=editors&ust=1778600246022166&usg=AOvVaw0ouJ5NnRTfTcVG5pCUWk1L) + * -fsanitize=offload + * Feedback welcome, very much WIP! + + + * OpenMP version 5.2 as default + + + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246022440&usg=AOvVaw1IevAoEPwxToFgtp4WeuDt) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * OpenMP Examples : + + + * target_struct_map.4.c (omp_5.1) + + + +#pragma omp target data map(S2.p[:N]) + +#pragma omp target map(S2.p[:0], S2.a, S2.b) // implicit map of S2 + + saxpyfun(&S2); + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-07-17.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-07-17.md new file mode 100644 index 0000000..1c40075 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-07-17.md @@ -0,0 +1,79 @@ +### 2024, July 17 + +Agenda + +New + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Reworking linker wrapper to pass all files to the device link step + + + * [https://github.com/llvm/llvm-project/pull/97573/](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/97573/&sa=D&source=editors&ust=1778600246018209&usg=AOvVaw0GW0dY5Df6N4b0JwJ2F8Mp) + + + * OpenMP transparent tasks: + + + * What is the community's feeling on the transparent tasks discussion in the language committee and potential implementation in the LLVM libomp runtime? + * Is there some interest to try to get an implementation going to get some better idea of the feature impact before the TR of OpenMP 6.0 or something? + + + * Taskgraph + + + * Has been voted into the spec on Jul 16 + * Runtime implementation available + * Compiler support in Clang seems to be missing still + * Need to ping BSC folks about their plans + * Finally, Flang? + + + * Target data as a task generating construct + + + * One of the changes for OpenMP 6.0 + * This includes support for "nogroup" (target data now has an implicit taskgroup, too) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246019412&usg=AOvVaw3EgIm5oHDRJ4wV2rJyt8AK) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * Cooperative Kernel launch via HSA? + + + * Posted as a question. + * Asked around at AMD to no avail yet. + + + * Kernel library shipped with Offload + * GPUSan WIP + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_san](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_san&sa=D&source=editors&ust=1778600246020063&usg=AOvVaw3fAIsMFNCnNjgzHPtGKYms) + * -fsanitize=offload + * Feedback welcome, very much WIP! + + + +![](images/image3.png) + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246020448&usg=AOvVaw2_2FxJeo7NfHrtAokI9jiC) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-07-31.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-07-31.md new file mode 100644 index 0000000..69a2772 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-07-31.md @@ -0,0 +1,83 @@ +### 2024, July 31 + +Agenda + +New + + * Virtual functions support + * Built libc++.a and libc++abi.a for the GPU + + + * [https://discourse.llvm.org/t/rfc-building-libc-for-gpu-targets/80216](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-building-libc-for-gpu-targets/80216&sa=D&source=editors&ust=1778600246015269&usg=AOvVaw2ufUgf3XchReJfrAyv1MBx) + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Thin-LTO for AMD GPU (modules without external calls): + + + * [https://github.com/jdoerfert/llvm-project/tree/thin_lto](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/thin_lto&sa=D&source=editors&ust=1778600246015694&usg=AOvVaw20fC3_m75r9xKmpOVnkOkJ) + + + * Taskgraph + + + * Has been voted into the spec on Jul 16 + * Runtime implementation available + * Compiler support in Clang seems to be missing still + * Need to ping BSC folks about their plans + * Finally, Flang? + + + * Target data as a task generating construct + + + * One of the changes for OpenMP 6.0 + * This includes support for "nogroup" (target data now has an implicit taskgroup, too) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246016497&usg=AOvVaw3OLlXwtWUPJ4AqQI-wxYJk) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * Cooperative Kernel launch via HSA? + + + * Posted as a question. + * Asked around at AMD to no avail yet. + + + * Kernel library shipped with Offload + * GPUSan WIP + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_san](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_san&sa=D&source=editors&ust=1778600246017155&usg=AOvVaw3nFKt_DTH-a_lhaOmcSe5a) + * -fsanitize=offload + * Feedback welcome, very much WIP! + + + +![](images/image3.png) + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246017537&usg=AOvVaw0Ggm0E7KX1fmMRborbucVT) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-08-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-08-14.md new file mode 100644 index 0000000..ca613df --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-08-14.md @@ -0,0 +1,68 @@ +### 2024, Aug 14 + +Agenda + +New + + * Built libc++.a and libc++abi.a for the GPU + + + * [https://discourse.llvm.org/t/rfc-building-libc-for-gpu-targets/80216](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-building-libc-for-gpu-targets/80216&sa=D&source=editors&ust=1778600246012808&usg=AOvVaw1nolj9XOk4livCxzSrHiJ-) + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Thin-LTO for AMD GPU (modules without external calls): + + + * [https://github.com/jdoerfert/llvm-project/tree/thin_lto](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/thin_lto&sa=D&source=editors&ust=1778600246013204&usg=AOvVaw3sQAQZDfKlyHbnx4RnNfYQ) + + + * Target data as a task generating construct + + + * One of the changes for OpenMP 6.0 + * This includes support for "nogroup" (target data now has an implicit taskgroup, too) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246013743&usg=AOvVaw3UDoPpx7HIGNmmvOJQqN37) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * Cooperative Kernel launch via HSA? + + + * Posted as a question. + * Asked around at AMD to no avail yet. + + + * Kernel library shipped with Offload + * GPUSan WIP + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_san](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_san&sa=D&source=editors&ust=1778600246014410&usg=AOvVaw0wGnvmbpPFxe8Y1EcQGlpO) + * -fsanitize=offload + * Feedback welcome, very much WIP! + + + +![](images/image3.png) + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246014785&usg=AOvVaw06aGWSc1BecMhwgvIOMdTj) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-08-28.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-08-28.md new file mode 100644 index 0000000..bd69063 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-08-28.md @@ -0,0 +1,68 @@ +### 2024, Aug 28 + +Agenda + +New + + * Built libc++.a and libc++abi.a for the GPU + + + * [https://discourse.llvm.org/t/rfc-building-libc-for-gpu-targets/80216](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-building-libc-for-gpu-targets/80216&sa=D&source=editors&ust=1778600246010472&usg=AOvVaw0mS9sp-Qg_IR4yDjbi-Jvk) + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Thin-LTO for AMD GPU (modules without external calls): + + + * [https://github.com/jdoerfert/llvm-project/tree/thin_lto](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/thin_lto&sa=D&source=editors&ust=1778600246010865&usg=AOvVaw1FdhYpxUsHNm3sp1oJAAOw) + + + * Target data as a task generating construct + + + * One of the changes for OpenMP 6.0 + * This includes support for "nogroup" (target data now has an implicit taskgroup, too) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246011361&usg=AOvVaw2J2OZCZ4SaU9Nn35rQQmDM) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * Cooperative Kernel launch via HSA? + + + * Posted as a question. + * Asked around at AMD to no avail yet. + + + * Kernel library shipped with Offload + * GPUSan WIP + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_san](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_san&sa=D&source=editors&ust=1778600246012000&usg=AOvVaw3MR853nyMsoZBxq52ROBDP) + * -fsanitize=offload + * Feedback welcome, very much WIP! + + + +![](images/image3.png) + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246012371&usg=AOvVaw2gbf7BAlWwNOfgjqjLLxFM) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-09-11.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-09-11.md new file mode 100644 index 0000000..cb6c5df --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-09-11.md @@ -0,0 +1,76 @@ +### 2024, Sep 11 + +Agenda + +New + + * Question: LLVM_ENABLE_RUNTIMES=openmp vs LLVM_ENABLE_PROJECT=openmp builds, which one is preferred? + + + * For host openmp runtime + * RUNTIME build is expected to work. + + + * Built libc++.a and libc++abi.a for the GPU + + + * [https://discourse.llvm.org/t/rfc-building-libc-for-gpu-targets/80216](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-building-libc-for-gpu-targets/80216&sa=D&source=editors&ust=1778600246007919&usg=AOvVaw2l21HDJsYj_OOg_ir1Za9U) + * Already merged, looking to get it built on the bots, nothing more to add + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Thin-LTO for AMD GPU (modules without external calls): + + + * [https://github.com/jdoerfert/llvm-project/tree/thin_lto](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/thin_lto&sa=D&source=editors&ust=1778600246008423&usg=AOvVaw3QATe3dfClIXBLJUhat71j) + + + * Target data as a task generating construct + + + * One of the changes for OpenMP 6.0 + * This includes support for "nogroup" (target data now has an implicit taskgroup, too) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246008920&usg=AOvVaw2Nlml5sA6vxE4sn-0QOZCx) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * Cooperative Kernel launch via HSA? + + + * Posted as a question. + * Asked around at AMD to no avail yet. + + + * Kernel library shipped with Offload + * GPUSan WIP + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_san](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_san&sa=D&source=editors&ust=1778600246009650&usg=AOvVaw3fUJqOuEc_s2y6NCRuLPqQ) + * -fsanitize=offload + * Feedback welcome, very much WIP! + + + +![](images/image3.png) + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246010025&usg=AOvVaw38ctDDNWiveiBMju9mtRz1) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-10-09.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-10-09.md new file mode 100644 index 0000000..a88a192 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-10-09.md @@ -0,0 +1,63 @@ +### 2024, Oct 9th + +Agenda + +New + + * Three open issues about DWARF information generated for OpenMP regions by Joachim Jenke, RWTH: + + + * [https://github.com/llvm/llvm-project/issues/110700](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/110700&sa=D&source=editors&ust=1778600246004967&usg=AOvVaw2Eez61vmbOpsySyJ9AhQJG) (Iteration variable in OpenMP work-sharing loops is not printable) + * [https://github.com/llvm/llvm-project/issues/110698](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/110698&sa=D&source=editors&ust=1778600246005184&usg=AOvVaw0pmS_EscX7Rs1gUyQV7XBS) (Shared variables in OpenMP outlined regions have the wrong (reference) type) + * [https://github.com/llvm/llvm-project/issues/107125](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/107125&sa=D&source=editors&ust=1778600246005392&usg=AOvVaw1pvHaoqf25PkgqOVI4kQLk) (Application variables in OpenMP outlined regions are marked as artificial) + + + * Offload workshop @ LLVM Dev still have open slots + + + * Preliminary agenda will be posted on discourse today + * Reach out if you want to present or have topics + + + * Question: LLVM_ENABLE_RUNTIMES=openmp vs LLVM_ENABLE_PROJECT=openmp builds, which one is preferred? + + + * For host openmp runtime + * RUNTIME build is expected to work. + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Target data as a task generating construct + + + * One of the changes for OpenMP 6.0 + * This includes support for "nogroup" (target data now has an implicit taskgroup, too) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246006633&usg=AOvVaw0DpkIWiNZ81cIMajDxxz_M) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246007217&usg=AOvVaw37Z1BrHntsAUNmTGe6Z1Sn) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-11-06.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-11-06.md new file mode 100644 index 0000000..1dc1c1c --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-11-06.md @@ -0,0 +1,52 @@ +### 2024, Nov 6th + +Agenda + +New + + * Three open issues about DWARF information generated for OpenMP regions by Joachim Jenke, RWTH: + + + * [https://github.com/llvm/llvm-project/issues/110700](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/110700&sa=D&source=editors&ust=1778600246002523&usg=AOvVaw1H6XjZNTHVbYr6Ag6jLroC) (Iteration variable in OpenMP work-sharing loops is not printable) + * [https://github.com/llvm/llvm-project/issues/110698](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/110698&sa=D&source=editors&ust=1778600246002745&usg=AOvVaw21IZVfsFwyJN63GCRnF02a) (Shared variables in OpenMP outlined regions have the wrong (reference) type) + * [https://github.com/llvm/llvm-project/issues/107125](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/107125&sa=D&source=editors&ust=1778600246002944&usg=AOvVaw3WC-fenRsBVwr3U01EV2q6) (Application variables in OpenMP outlined regions are marked as artificial) + + + * Question: LLVM_ENABLE_RUNTIMES=openmp vs LLVM_ENABLE_PROJECT=openmp builds, which one is preferred? + + + * For host openmp runtime + * RUNTIME build is expected to work. + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Target data as a task generating construct + + + * One of the changes for OpenMP 6.0 + * This includes support for "nogroup" (target data now has an implicit taskgroup, too) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246003941&usg=AOvVaw1FRVOIsN9XWdOXKPsvT4Vc) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246004506&usg=AOvVaw2jdlyZyQ72pUj3QY5vipLZ) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-12-04.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-12-04.md new file mode 100644 index 0000000..c6311e3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-12-04.md @@ -0,0 +1,61 @@ +### 2024, Dec 4th + +Agenda + +New + + * Discuss 5.2 and 6.0 features + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245999522&usg=AOvVaw3WolMadwv9TCpHJL3orlKg) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245999711&usg=AOvVaw1gNdnbYgTGPUq4COQMXgeE) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * Three open issues about DWARF information generated for OpenMP regions by Joachim Jenke, RWTH: + + + * [https://github.com/llvm/llvm-project/issues/110700](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/110700&sa=D&source=editors&ust=1778600246000042&usg=AOvVaw1s3Ge2rC6Onnb29TfrB0ts) (Iteration variable in OpenMP work-sharing loops is not printable) + * [https://github.com/llvm/llvm-project/issues/110698](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/110698&sa=D&source=editors&ust=1778600246000260&usg=AOvVaw0Lv8-KH-vmsZ14P9_ZWagP) (Shared variables in OpenMP outlined regions have the wrong (reference) type) + * [https://github.com/llvm/llvm-project/issues/107125](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/107125&sa=D&source=editors&ust=1778600246000464&usg=AOvVaw1URmM-gmFdXYd9_8fRAqbp) (Application variables in OpenMP outlined regions are marked as artificial) + + + * Question: LLVM_ENABLE_RUNTIMES=openmp vs LLVM_ENABLE_PROJECT=openmp builds, which one is preferred? + + + * For host openmp runtime + * RUNTIME build is expected to work. + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Target data as a task generating construct + + + * One of the changes for OpenMP 6.0 + * This includes support for "nogroup" (target data now has an implicit taskgroup, too) + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600246001462&usg=AOvVaw1CcupvVftM7lIAeUEv3ftZ) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600246002020&usg=AOvVaw0rG4zkytcb5sykjDr0ZaaI) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2024-12-18.md b/openmp-wg/meeting-minutes/openmp-minutes-2024-12-18.md new file mode 100644 index 0000000..d40ec1f --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2024-12-18.md @@ -0,0 +1,5 @@ +### 2024, Dec 18th + +Agenda + +SAME as 2024 Dec 4th diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-01-29.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-01-29.md new file mode 100644 index 0000000..aa8a320 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-01-29.md @@ -0,0 +1,47 @@ +### 2025, Jan 29th + +Agenda + +New + + * Porting Device runtime to C++ + * Discuss 5.2 and 6.0 features + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245997205&usg=AOvVaw234cdwouw4Jq2mhViUheQ1) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245997390&usg=AOvVaw0ylfh9ULkpDIlSgBJIsUr9) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * Question: LLVM_ENABLE_RUNTIMES=openmp vs LLVM_ENABLE_PROJECT=openmp builds, which one is preferred? + + + * For host openmp runtime + * RUNTIME build is expected to work. + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound/composite constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245998232&usg=AOvVaw0jA61SMqIjWNYID8F9XYBY) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245998805&usg=AOvVaw1kGrkxgJIrrs3txZfLosXS) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-02-12.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-02-12.md new file mode 100644 index 0000000..8c94481 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-02-12.md @@ -0,0 +1,59 @@ +### 2025, Feb 12th + +Agenda + +New + + * [https://github.com/llvm/llvm-project/pull/126143](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/126143&sa=D&source=editors&ust=1778600245994307&usg=AOvVaw3XCNb1l7a3Rq1BvO3cOf-x) + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245994519&usg=AOvVaw2JYL4TzJHcCSXXrRfYI3pL) + + + * GPU PGO: + + + * [https://github.com/llvm/llvm-project/pull/94268](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/94268&sa=D&source=editors&ust=1778600245994660&usg=AOvVaw0OFuqwj7EaHoVkd4bSX7L5) + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245994928&usg=AOvVaw3qoLv7fElsG5z70_Kl2hLm) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245995104&usg=AOvVaw1ttWBfnSkYY5f2NcQGikIq) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * Question: LLVM_ENABLE_RUNTIMES=openmp vs LLVM_ENABLE_PROJECT=openmp builds, which one is preferred? + + + * For host openmp runtime + * RUNTIME build is expected to work. + * Preferred way is LLVM_ENABLE_RUNTIMES, currently issue with flang + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245996044&usg=AOvVaw2RUKRWlsTwCGkHqRhk60l9) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245996604&usg=AOvVaw3dWNeAN-6oZO14Sm2hLhWq) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-02-26.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-02-26.md new file mode 100644 index 0000000..0c2f99d --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-02-26.md @@ -0,0 +1,69 @@ +### 2025, Feb 26th + +Agenda + +New + + * [https://github.com/llvm/llvm-project/pull/126143](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/126143&sa=D&source=editors&ust=1778600245991450&usg=AOvVaw0NP5sYJM1j4sowedgxPWz7) + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245991642&usg=AOvVaw3IjG-QfCRzqBgtsohpaQec) + + + * GPU PGO: + + + * [https://github.com/llvm/llvm-project/pull/94268](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/94268&sa=D&source=editors&ust=1778600245991782&usg=AOvVaw1CVZ2UzrK7GX8jMcZGdeIs) + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245992321&usg=AOvVaw36SlL74dzJFg8qYmhKT0km) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245992501&usg=AOvVaw1zXcCrUCOMWcGlXWL8-lE1) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * Question: LLVM_ENABLE_RUNTIMES=openmp vs LLVM_ENABLE_PROJECT=openmp builds, which one is preferred? + + + * For host openmp runtime + * RUNTIME build is expected to work. + * Preferred way is LLVM_ENABLE_RUNTIMES, currently issue with flang + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245993403&usg=AOvVaw0iFXE4WXdgZM1jFOrZnZ50) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245993935&usg=AOvVaw14e3ZyZLlwzd57y-Iz3XTr) + * Where are we right now regarding documents, such as what features are supported and what are not? diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-03-12.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-03-12.md new file mode 100644 index 0000000..3eff4d3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-03-12.md @@ -0,0 +1,73 @@ +### 2025, Mar 12th + +Agenda + +New + + * [https://github.com/llvm/llvm-project/pull/126143](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/126143&sa=D&source=editors&ust=1778600245988361&usg=AOvVaw2-vxq2VagsXIetHy_Yq7ml) + + + * Waiting on AMD testing + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245988626&usg=AOvVaw0PrAwuo0U5FNDy-4VmXZ_Y) + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245988904&usg=AOvVaw3YhmaANmikaU6MQWtGuC5r) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * GPU PGO: + + + * [https://github.com/llvm/llvm-project/pull/94268](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/94268&sa=D&source=editors&ust=1778600245989162&usg=AOvVaw3IvFeIas3OSFQQIOlbfqyU) + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245989704&usg=AOvVaw21jMVJBO7AqoPIVNdCJbzy) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245989936&usg=AOvVaw0q5qPdsZH7OMO0ZWi3owuc) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * Question: LLVM_ENABLE_RUNTIMES=openmp vs LLVM_ENABLE_PROJECT=openmp builds, which one is preferred? + + + * For host openmp runtime + * RUNTIME build is expected to work. + * Preferred way is LLVM_ENABLE_RUNTIMES, currently issue with flang + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245990896&usg=AOvVaw1LQ4ziubJ6gj_eaIh2lC0b) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-03-26.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-03-26.md new file mode 100644 index 0000000..87a47f4 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-03-26.md @@ -0,0 +1,66 @@ +### 2025, Mar 26th + +Agenda + +New + + * [https://github.com/llvm/llvm-project/pull/126143](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/126143&sa=D&source=editors&ust=1778600245985441&usg=AOvVaw3EyIzM6-XFhuwSrl8Y9gTa) + + + * Waiting on AMD testing + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245985673&usg=AOvVaw0pU4iSX_-sSt_xdXkVCUvR) + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245985917&usg=AOvVaw1PeBsQ31KArwFW0SMxakM8) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * GPU PGO: + + + * [https://github.com/llvm/llvm-project/pull/94268](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/94268&sa=D&source=editors&ust=1778600245986187&usg=AOvVaw1tAJhxuPNKiomXtJ2Sr2I8) + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245986735&usg=AOvVaw3kKRia6CDlOOi1DS4RiVyK) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245986963&usg=AOvVaw10t_LV-ckZJJAhKxT3-em2) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * New [3/26]: Updated PR for compound root directive: [https://github.com/llvm/llvm-project/pull/118878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/118878&sa=D&source=editors&ust=1778600245987583&usg=AOvVaw1XOny055o6GlVtV4nh0rry) + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245987813&usg=AOvVaw0x_aiDuCh33IpP-Yh6GEZW) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-04-09.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-04-09.md new file mode 100644 index 0000000..5d6ab2a --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-04-09.md @@ -0,0 +1,79 @@ +### 2025, Apr 9th + +Agenda + +New + + * Question: +Does the OpenMP runtime guarantee binary backward compatibility? For example, is an application compiled with an older compiler version (e.g., v19.1) guaranteed to work correctly with a newer OpenMP runtime (e.g., v20.1)? Do we have a documented policy on this? The specific scenario in mind is when the OpenMP runtime is shipped with the operating system. If a new OS release includes the v21.1 OpenMP runtime, will existing applications (compiled with v19.1) need to be recompiled or relinked, or are they guaranteed to work correctly as-is? + + + * [https://openmp.llvm.org/SupportAndFAQ.html#q-are-libomptarget-and-plugins-backward-compatible](https://www.google.com/url?q=https://openmp.llvm.org/SupportAndFAQ.html%23q-are-libomptarget-and-plugins-backward-compatible&sa=D&source=editors&ust=1778600245982372&usg=AOvVaw0rPPyW2izhAhuGFrxU7uzK) + * + + * Fat preprocessed file. + + + * clang … \--save-temps -### &> reproducer.sh + + + * [https://github.com/llvm/llvm-project/pull/126143](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/126143&sa=D&source=editors&ust=1778600245982617&usg=AOvVaw3mp6INMVHdX0PEzyKqQmkZ) + + + * Waiting on AMD testing + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245982856&usg=AOvVaw2t2CdkdNyPf_48c8DyI0eW) + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245983102&usg=AOvVaw0Y3o5iNnI0Fn6feNPu8dXR) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * GPU PGO: + + + * [https://github.com/llvm/llvm-project/pull/94268](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/94268&sa=D&source=editors&ust=1778600245983355&usg=AOvVaw0HyJu0fuJO4x40WUipF-fW) + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245983900&usg=AOvVaw2yQL31maG0JHruBIMrasBy) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245984084&usg=AOvVaw0u7HzECkbc7D-JoZ7RnTZg) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * New [3/26]: Updated PR for compound root directive: [https://github.com/llvm/llvm-project/pull/118878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/118878&sa=D&source=editors&ust=1778600245984650&usg=AOvVaw2krTFJbJYvQh9kRTBTGisN) + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245984897&usg=AOvVaw2yjqBQK5RIVTR5SjSdRFug) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-04-23.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-04-23.md new file mode 100644 index 0000000..2c48faf --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-04-23.md @@ -0,0 +1,66 @@ +### 2025, Apr 23rd + +Agenda + +New + + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245978922&usg=AOvVaw18QF7zUI_PqBQeSTITGKU_) + + + * Makes the DeviceRTL a separate runtime like libc + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245979231&usg=AOvVaw1TcAGFYcuqdWP8UGbvtNhh) + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245979503&usg=AOvVaw2nkQQ4V6pA6tXQxlTmMWUD) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * GPU PGO: + + + * [https://github.com/llvm/llvm-project/pull/94268](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/94268&sa=D&source=editors&ust=1778600245979763&usg=AOvVaw0fWB8ABzhoqDPpv7oQzyIc) + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245980323&usg=AOvVaw2D-vow4YwpTVbPTKhEtQ7-) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245980512&usg=AOvVaw3pHNoFEdHrrHplbN9ZHARb) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * New [3/26]: Updated PR for compound root directive: [https://github.com/llvm/llvm-project/pull/118878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/118878&sa=D&source=editors&ust=1778600245981065&usg=AOvVaw3mTgI-98CVkR_ZtzLHcbO9) + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245981300&usg=AOvVaw0vgTyWnl2X6BMW8RLydNEw) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-05-07.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-05-07.md new file mode 100644 index 0000000..fa959b1 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-05-07.md @@ -0,0 +1,66 @@ +### 2025, May 7th + +Agenda + +New + + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245975760&usg=AOvVaw34xbh30egriqqs65xGCjgh) + + + * Makes the DeviceRTL a separate runtime like libc + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245976032&usg=AOvVaw27zI-nByn5NQeri7pSJR6s) + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245976306&usg=AOvVaw1GJQhr8tTcyxUtQGKgk4ot) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * Clang use of new GPU loop interface + * Status of distribute (and other features) in Flang? + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245977070&usg=AOvVaw10fJ4z3DhzY-4jAQ5_LUXJ) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245977263&usg=AOvVaw3ppVJklqN7s1BRb_rMpMLA) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * New [3/26]: Updated PR for compound root directive: [https://github.com/llvm/llvm-project/pull/118878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/118878&sa=D&source=editors&ust=1778600245977864&usg=AOvVaw3lTW7bLcZAx5HajXvzQNg7) + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245978127&usg=AOvVaw2Ehqaf06sBI8lwWIDsV1gI) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-05-21.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-05-21.md new file mode 100644 index 0000000..09d9bb4 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-05-21.md @@ -0,0 +1,85 @@ +### 2025, May 21th + +Agenda + +New + + * [https://discourse.llvm.org/t/rfc-removing-the-openmp-experimental-warning-for-llvm-21/86455](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-removing-the-openmp-experimental-warning-for-llvm-21/86455&sa=D&source=editors&ust=1778600245971853&usg=AOvVaw3ayJ9HIkkSc_Hk7L4pYBYf) + + + * RFC to remove "experimental" from OpenMP in flang + + + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245972036&usg=AOvVaw3V-jzQeiw8lrT9hKbsYoHS) + + + * Makes the DeviceRTL a separate runtime like libc + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245972319&usg=AOvVaw1vL1D_Kwy50kD6r-rEytQX) + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245972596&usg=AOvVaw0zjufn0LNyD14K0oQZYdpU) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * WIP: 2 level reductions: [https://github.com/jdoerfert/llvm-project/tree/omp_multi_lvl_red](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/omp_multi_lvl_red&sa=D&source=editors&ust=1778600245972853&usg=AOvVaw0s2mvo_yS9Zb0IA6ggp6PA) + * Discuss [https://github.com/llvm/llvm-project/pull/137307](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/137307&sa=D&source=editors&ust=1778600245972987&usg=AOvVaw2diXN4_qMbwiKvBoiipL4s) ? + + + * [https://github.com/jdoerfert/llvm-project/commit/56001404d76dde62982ef27ac2d4991d332b8392#diff-de101c82aff66b2bda2d1f53fde3dde7b0d370f14f1ff37b7919ce38531230df](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commit/56001404d76dde62982ef27ac2d4991d332b8392%23diff-de101c82aff66b2bda2d1f53fde3dde7b0d370f14f1ff37b7919ce38531230df&sa=D&source=editors&ust=1778600245973240&usg=AOvVaw2R6rf2pV6ejLpkEKmWNHDP) + + + * Bug(s) that needs looking into, see [https://github.com/llvm/llvm-project/pull/140786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/140786&sa=D&source=editors&ust=1778600245973400&usg=AOvVaw3jyyKZ1oGmFYZcSV_0dms3) + * Clang use of new GPU loop interface + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_loop](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_loop&sa=D&source=editors&ust=1778600245973574&usg=AOvVaw3FT1uZjmGYxTMiMCUS-UZR) + + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245974155&usg=AOvVaw310ZVKeRVAZp60PvXhF1Qd) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245974341&usg=AOvVaw1mn_FhbyR2gfwe_nnn5dtW) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * ARB will vote to produce JSON files (for us to use) + + + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * New [3/26]: Updated PR for compound root directive: [https://github.com/llvm/llvm-project/pull/118878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/118878&sa=D&source=editors&ust=1778600245974928&usg=AOvVaw13SiHCVAn8NjZnGhUDS3N3) + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245975165&usg=AOvVaw0LKnhnfZHYq9ttRC5cjno6) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + +### diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-06-04.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-06-04.md new file mode 100644 index 0000000..3ab97ce --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-06-04.md @@ -0,0 +1,78 @@ +### 2025, Jun 4th + +Agenda + +New + + * Makes the DeviceRTL a separate runtime like libc + + + * [https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143&sa=D&source=editors&ust=1778600245967801&usg=AOvVaw0y0y-VTYc0afmuUxZrA0HD) + * Everybody provide feedback before it is finalized. + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245968003&usg=AOvVaw2vJPxagivPD_uYktwwNSUf) + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245968207&usg=AOvVaw1dRuiPj3rU1ZTZOv7YAQ91) + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245968498&usg=AOvVaw2tF_x7MLklcz8FGJ71HwOn) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * WIP: 2 level reductions: [https://github.com/jdoerfert/llvm-project/tree/omp_multi_lvl_red](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/omp_multi_lvl_red&sa=D&source=editors&ust=1778600245968764&usg=AOvVaw0WX1m4uYCYOp_Fq3cGrMcI) + * Discuss [https://github.com/llvm/llvm-project/pull/137307](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/137307&sa=D&source=editors&ust=1778600245968905&usg=AOvVaw0YEqzpT8j7g8cG_zZyJrI-) ? + + + * [https://github.com/jdoerfert/llvm-project/commit/56001404d76dde62982ef27ac2d4991d332b8392#diff-de101c82aff66b2bda2d1f53fde3dde7b0d370f14f1ff37b7919ce38531230df](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commit/56001404d76dde62982ef27ac2d4991d332b8392%23diff-de101c82aff66b2bda2d1f53fde3dde7b0d370f14f1ff37b7919ce38531230df&sa=D&source=editors&ust=1778600245969156&usg=AOvVaw2vJtdHecZu31im39bJwCIs) + + + * Bug(s) that needs looking into, see [https://github.com/llvm/llvm-project/pull/140786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/140786&sa=D&source=editors&ust=1778600245969318&usg=AOvVaw1_LkUadMwpajtZ4uwnJRSK) + * Clang use of new GPU loop interface + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_loop](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_loop&sa=D&source=editors&ust=1778600245969490&usg=AOvVaw1QCK3t5rB8I1B81YA3K4V7) + + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245970084&usg=AOvVaw1xtc69aAwZHZF18yWrUInh) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245970274&usg=AOvVaw0wMtYPe4omKihY81UyssNs) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * ARB will vote to produce JSON files (for us to use) + + + * Update : ARB has approved for LLVM to use. OpenMP Lang committee needs to approve each release + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * New [3/26]: Updated PR for compound root directive: [https://github.com/llvm/llvm-project/pull/118878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/118878&sa=D&source=editors&ust=1778600245970947&usg=AOvVaw395sNvLzEHzIYS14imVUdo) + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245971221&usg=AOvVaw0O1gIuhiaYbtTzRhEqdEOS) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-07-02.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-07-02.md new file mode 100644 index 0000000..b9065d4 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-07-02.md @@ -0,0 +1,79 @@ +### 2025, July 2nd + +Agenda + +New + + * Interop presentation by Intel (Alex) + * OpenMP Paris F2F review + * Makes the DeviceRTL a separate runtime like libc + + + * [https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143&sa=D&source=editors&ust=1778600245963780&usg=AOvVaw0Q_wSuddlVELsVCWYNWljD) + * Everybody provide feedback before it is finalized. + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245963961&usg=AOvVaw1HfdVdw6RHHgU9iHzqichf) + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245964197&usg=AOvVaw1mZQqaFR-vr3RfZ5x_KZ-t) + * OpenMP version 5.2 as default + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245964458&usg=AOvVaw131q1rgpF5ZiVFU7LwirZQ) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * WIP: 2 level reductions: [https://github.com/jdoerfert/llvm-project/tree/omp_multi_lvl_red](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/omp_multi_lvl_red&sa=D&source=editors&ust=1778600245964730&usg=AOvVaw0HB-fdVAJ5y3uYN-MQDWql) + * Discuss [https://github.com/llvm/llvm-project/pull/137307](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/137307&sa=D&source=editors&ust=1778600245964865&usg=AOvVaw1j4rQN34TcTSBixaULhv9B) ? + + + * [https://github.com/jdoerfert/llvm-project/commit/56001404d76dde62982ef27ac2d4991d332b8392#diff-de101c82aff66b2bda2d1f53fde3dde7b0d370f14f1ff37b7919ce38531230df](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commit/56001404d76dde62982ef27ac2d4991d332b8392%23diff-de101c82aff66b2bda2d1f53fde3dde7b0d370f14f1ff37b7919ce38531230df&sa=D&source=editors&ust=1778600245965118&usg=AOvVaw1YdD9Kbj999jBJc8KudYWG) + + + * Bug(s) that needs looking into, see [https://github.com/llvm/llvm-project/pull/140786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/140786&sa=D&source=editors&ust=1778600245965267&usg=AOvVaw139uI7BwEccdQRZJd5GFQs) + * Clang use of new GPU loop interface + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_loop](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_loop&sa=D&source=editors&ust=1778600245965447&usg=AOvVaw234t--RgnBtm4CW52QSlL4) + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). Currently avail in downstream: [https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245965973&usg=AOvVaw3_7u9YEPuCuUIlt0aZjcaZ) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245966174&usg=AOvVaw3atZGF7e-4qMIfOX72jJvI) + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * ARB will vote to produce JSON files (for us to use) + + + * Update : ARB has approved for LLVM to use. OpenMP Lang committee needs to approve each release + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * New [3/26]: Updated PR for compound root directive: [https://github.com/llvm/llvm-project/pull/118878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/118878&sa=D&source=editors&ust=1778600245966858&usg=AOvVaw1JCKykmvUdBRwtRoBc7EGz) + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245967086&usg=AOvVaw258Kn2pt-gmdkBWTaQ_Fpv) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-07-16.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-07-16.md new file mode 100644 index 0000000..473fabb --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-07-16.md @@ -0,0 +1,459 @@ +### 2025, July 16 + +Agenda + +New + + * Makes the DeviceRTL a separate runtime like libc + + + * [https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143&sa=D&source=editors&ust=1778600245943333&usg=AOvVaw1QYFNkRgsaX_8UpKeZkeZQ) + * Everybody provide feedback before it is finalized. + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245943511&usg=AOvVaw2AGM734kDefOrnb6lXPKDo) + + + * Discuss 5.2 and 6.0 features + + + * omp_target_is_accessible - may need to be modified in the spec, we can implement 5.2 behavior for now + + + * 5.2: the pointer passed is a valid host pointer + * 6.0: the pointer passed is a pointer + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245943938&usg=AOvVaw1G8p3y0O9gBCSiSpQ8Z7Zg) + * OpenMP version 5.2 as default + + + * Worthwhile to update to 5.2 as default, but needs more thorough review + + + * Make sure all the new features are guarded by a warning + * Updating the version itself implies changing lots of tests + * Catherine with help, Deepak: will do the assessment + + + * Could go straight to 6.0 and not bother with 5.2 at all + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245944480&usg=AOvVaw3iifWbq5a9yw3_wrghY27D) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * WIP: 2 level reductions: [https://github.com/jdoerfert/llvm-project/tree/omp_multi_lvl_red](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/omp_multi_lvl_red&sa=D&source=editors&ust=1778600245944748&usg=AOvVaw2lRtVZJTegmYzEc94liOIH) + * Discuss [https://github.com/llvm/llvm-project/pull/137307](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/137307&sa=D&source=editors&ust=1778600245944874&usg=AOvVaw1wZgm9OaUiMkDv2jVvGTxC) ? + + + * [https://github.com/jdoerfert/llvm-project/commit/56001404d76dde62982ef27ac2d4991d332b8392#diff-de101c82aff66b2bda2d1f53fde3dde7b0d370f14f1ff37b7919ce38531230df](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/commit/56001404d76dde62982ef27ac2d4991d332b8392%23diff-de101c82aff66b2bda2d1f53fde3dde7b0d370f14f1ff37b7919ce38531230df&sa=D&source=editors&ust=1778600245945123&usg=AOvVaw2z1OHT3eQ6bM7QWzcUrxYl) + + + * Bug(s) that needs looking into, see [https://github.com/llvm/llvm-project/pull/140786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/140786&sa=D&source=editors&ust=1778600245945285&usg=AOvVaw3EqOLl-zlKmKwsAhsOOm1n) + * Clang use of new GPU loop interface + + + * [https://github.com/jdoerfert/llvm-project/tree/gpu_loop](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/tree/gpu_loop&sa=D&source=editors&ust=1778600245945525&usg=AOvVaw2g_avuGS7Riwy1lG5mA_Ut) + + + * Sanitizer wish list: + + + * out-of-bounds + * Use-after-free + * Use-after-scope + * Alignment (which alignment?) + * Address space + * Double free()? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). + + + * Upstream PR opened +[https://github.com/llvm/llvm-project/pull/147381](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/147381&sa=D&source=editors&ust=1778600245946104&usg=AOvVaw0bQiFcDucUEl28sO90CMiC) + + + * Please review + * Michael Klemm will contact Intel people for review + + + * Downstream implementation +[https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245946407&usg=AOvVaw16DaNesQYwh4ayIj-NyR-C) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245946586&usg=AOvVaw16GPnz0eVaL4sPAkpZgaZQ) + + + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * [[OFFLOAD][OPENMP] 6.0 compatible interop interface by adurang * Pull Request #143491 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/143491&sa=D&source=editors&ust=1778600245946884&usg=AOvVaw0LQAEUHSU7Jh473KuHbZk-) + + + * Call for review + + + * [https://github.com/llvm/llvm-project/pull/149036](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/149036&sa=D&source=editors&ust=1778600245947041&usg=AOvVaw28ZffNZxgZHPB0hebBizJi) + + + * ATTACH implementation in the runtime + + + * ARB will vote to produce JSON files (for us to use) + + + * Update : ARB has approved for LLVM to use. OpenMP Lang committee needs to approve each release + * Proposed the generate to make it stable for outside consumer + * Krzysztof and Johannes offer to be maintainer of the script + + + * Compound constructs in Flang (and Clang) + + + * New [3/26]: Updated PR for compound root directive: [https://github.com/llvm/llvm-project/pull/118878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/118878&sa=D&source=editors&ust=1778600245947669&usg=AOvVaw2O_xCkvwNzvmiT4YYxoYCM) + * OpenMP spec expose json files in some format that can be used by llvm (see above) + * PR for exporting OpenMP definitions: [https://github.com/OpenMP/spec/pull/3943](https://www.google.com/url?q=https://github.com/OpenMP/spec/pull/3943&sa=D&source=editors&ust=1778600245947905&usg=AOvVaw3RJ7NivPvbc8R91aw1pK11) + * Almost done with sema; now working on directive breakdown. + * We might have to auto-gen tests to tame the combinatorial number of tests required. + * Flang w/ MLIR should be less critical. TBC. + * Clang is more monolithic and thus could more easily break + + + +Previous + + * Nvptx testing results from Michael Kruse. + + + * Nvidia Quadro P600, GP107, sm_61, Pascal generation, CUDA 12.3, WSL2 + * [openmp-offload-cuda-project](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/68&sa=D&source=editors&ust=1778600245948579&usg=AOvVaw0DZiOvPceA3DsI2BI2smBc) (-DLLVM_ENABLE_PROJECTS=openmp): + + + * Link issue since https://github.com/llvm/llvm-project/pull/74520 + * Tries to use lld with gcc-compiled lto objects + * RUNTIMES=openmp disables -flto because CMake test looks for LLVMgold.so + + + * [openmp-offload-cuda-runtime](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/7&sa=D&source=editors&ust=1778600245948940&usg=AOvVaw21MscWpXTEBvQf96vqYzKA) (-DLLVM_ENABLE_RUNTIMES=openmp): 21 failed testsomp_get_num_procs() on the device not supported anymore? ([https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c#inline-9277](https://www.google.com/url?q=https://reviews.llvm.org/rG1f3a28d4e54649d1453eb951f570a8c1958d4a5c%23inline-9277&sa=D&source=editors&ust=1778600245949186&usg=AOvVaw0OqWoPkRK6ieURW7H-kH6f)) + + + * OMP Places [https://www.openmp.org/spec-html/5.1/openmpse62.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.1/openmpse62.html&sa=D&source=editors&ust=1778600245949328&usg=AOvVaw1NFcHcj6sDp9AtbL0u0C9W) + + + * omp_get_place_num_procs(): [https://www.openmp.org/spec-html/5.0/openmpsu134.html](https://www.google.com/url?q=https://www.openmp.org/spec-html/5.0/openmpsu134.html&sa=D&source=editors&ust=1778600245949487&usg=AOvVaw1g_J2gN7q3L1LEDFR9BRjn) + * New offloading command line reference + * [https://openmp.llvm.org/CommandLineArgumentReference.html](https://www.google.com/url?q=https://openmp.llvm.org/CommandLineArgumentReference.html&sa=D&source=editors&ust=1778600245949674&usg=AOvVaw0XowtmSeNzzA4s2A_IHOX2)Target annotations for tuning (min/max workgroup size, etc.) + + + +#pragma omp target teams distribute parallel for ompx_attribute(amdgpu_waves_per_eu(6), amdgpu_flat_work_group_size(64, 256), __launch_bounds__(256, 6)) num_teams(NumTeams) thead_limit(ThreadLimit) + + for (...) + + * Next time: Testing libm-gpu.a, WIP, Anton will talk about it soon: + + + * [timing_histograms (1).pdf](https://www.google.com/url?q=https://drive.google.com/file/d/1ZK9J-iJAFjb7cQb7ghP6xSqMbUukeRXW/view?usp%3Dshare_link&sa=D&source=editors&ust=1778600245950271&usg=AOvVaw3YuLnGnoR_OlLFEDwy_l8p) + + + * [error_plots (1).pdf](https://www.google.com/url?q=https://drive.google.com/file/d/1372FZKRRPTuERCAuJrAls7Q5zI4LsRfj/view?usp%3Dshare_link&sa=D&source=editors&ust=1778600245950383&usg=AOvVaw3pWIfCoJi3Mo9-Rp4-u55X) + * Landed support for the libc RPC in OpenMP and the wrapper headers + + + * [[libc] Add support for creating wrapper headers for offloading in clang](https://www.google.com/url?q=https://reviews.llvm.org/D154036&sa=D&source=editors&ust=1778600245950584&usg=AOvVaw08TE7u9Yo1ZpkcT_7y08Kd) + * [[Libomptarget] Begin implementing support for RPC services](https://www.google.com/url?q=https://reviews.llvm.org/D154312&sa=D&source=editors&ust=1778600245950696&usg=AOvVaw1HjVFV7KVMF2vd_YQkRuiG) + + + * Minimal support for reverse offloading via GPU libc + + + * [[libc] Add basic support for calling host functions from the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D155003&sa=D&source=editors&ust=1778600245950885&usg=AOvVaw1JAguE4K7diNuH5HU0i90z) + + + * What should get in before the LLVM 17 forkRPC implementation in libomptarget [https://reviews.llvm.org/D154312](https://www.google.com/url?q=https://reviews.llvm.org/D154312&sa=D&source=editors&ust=1778600245951041&usg=AOvVaw3IVdNJC2F5TWzapqM9_JZ7) + * [[libc] Add support for creating wrapper headers for offloading in clang](https://www.google.com/url?q=https://reviews.llvm.org/D154036&sa=D&source=editors&ust=1778600245951168&usg=AOvVaw0-bZ_otj-DGX6ATBzRe49C) + * Header proposal + + + * [D153897: [libc][hdr-gen] Add special offloading handling for the GPU targe](https://www.google.com/url?q=https://reviews.llvm.org/D153897&sa=D&source=editors&ust=1778600245951327&usg=AOvVaw3C7DzKYXDFvjk3g5KkmA_Q)t + * Alternative in progress + + + * OpenMP does not apply values to canonical definitions + + + * [[OpenMP] Always apply target declarations to canonical definitions](https://www.google.com/url?q=https://reviews.llvm.org/D153369&sa=D&source=editors&ust=1778600245951593&usg=AOvVaw0k5aGPLbEQvKsta3CTkATS) + * Important for providing headers for libc + + + * Implement as a single header generated by `libc` that both the host and the device include + + + * One downside, `omp declare target to() make offloading entries + + + * Libm work + + + * [D153395: Populating 'libmgpu.a' for math on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D153395&sa=D&source=editors&ust=1778600245951976&usg=AOvVaw2IW4XekkYvAUFmQiIzCjDz). + * [D152603: [libc] Add math functions to AMD/NVPTX libm](https://www.google.com/url?q=https://reviews.llvm.org/D152603&sa=D&source=editors&ust=1778600245952122&usg=AOvVaw0YMfOi8qdDR00KOyobu0Ea) + + + * Work on exporting RPC to OpenMP + * [[libc] Rename and install the RPC server interface](https://www.google.com/url?q=https://reviews.llvm.org/D153040&sa=D&source=editors&ust=1778600245952290&usg=AOvVaw09OQs0S-PQL2lkCbh4NXG3)Initial proposed patch for implementing a libm upstream + + + * [[libc] Begin implementing a 'libmgpu.a' for math on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D152486&sa=D&source=editors&ust=1778600245952464&usg=AOvVaw0kgoLu2ozhC9OAgWMpkj7I) + * The libc maintainers want an implementation in the LLVM libc. Unimplemented functions will temporarily be mapped to vendor functions + + + * GPU/Offloading workshop prior to LLVM Dev: [https://discourse.llvm.org/t/pre-llvm-dev23-gpu-offloading-workshop/71338](https://www.google.com/url?q=https://discourse.llvm.org/t/pre-llvm-dev23-gpu-offloading-workshop/71338&sa=D&source=editors&ust=1778600245952780&usg=AOvVaw0Cx8h589Kx0LIWAnrfSz0u) + * Mapper still not working + + + * [https://github.com/llvm/llvm-project/issues/61636](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/61636&sa=D&source=editors&ust=1778600245952935&usg=AOvVaw3LWoiXdZ5wVRBoGxt6yEA5) + * Tests: [dbd6759](https://www.google.com/url?q=https://github.com/llvm/llvm-project/commit/dbd6759dac52fa91d3321aaf0d9d78fbe3772dd4&sa=D&source=editors&ust=1778600245953035&usg=AOvVaw3SG4f90Vlr064VL6a7YIUm) + + + * [OpenMP Support -- Clang 16.0.0git documentation](https://www.google.com/url?q=https://clang.llvm.org/docs/OpenMPSupport.html%23openmp-5-1-implementation-details&sa=D&source=editors&ust=1778600245953167&usg=AOvVaw0hfYzf6ipz3T_a3lg3Z0ok) Libm for the GPU + + + * Easiest solution is to use the `libc` infrastructure and remap calls to the existing device libs + * E.g. -Xclang -mlink-builtin-bitcode -Xclang libdevice.10.bc + * Can we redistribute NVIDIA's libdevice? + + + * Artem from Google is asking for this and an MLIR project, license seems to suggest so + + + * The answer is "yes" + + + * Exporting the RPC interface from libc + + + * [[libc] Begin implementing a library for the RPC server](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600245953711&usg=AOvVaw0uUKitH1og-EFp14fiwEwj) + * [[libc] Export GPU extensions to `libc` for external use](https://www.google.com/url?q=https://reviews.llvm.org/D152283&sa=D&source=editors&ust=1778600245953821&usg=AOvVaw0GyIHfR8nekJXiOkW-sFie) + + + * Moving the AMDGPU libc build bot to staging + + + * [https://lab.llvm.org/staging/#/builders/247](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/247&sa=D&source=editors&ust=1778600245954013&usg=AOvVaw1SOIOLuDKGeUWjFFN_Uk7n) + + + * Leftover runtime "state" down to 1 element (for simple kernels) + * Lightweight Attributor under review -> Attributor compile time reduction under development + * Flang OpenMP offload is making nice progress (thanks to AMD) + * Implementing the device runtime in a separate project + + + * Some complains about the project / runtimes handling + + + * Remove keep alive functionality in OpenMP [https://reviews.llvm.org/D151324](https://www.google.com/url?q=https://reviews.llvm.org/D151324&sa=D&source=editors&ust=1778600245954530&usg=AOvVaw1t2EqiKKxyom1-saEVvziC) + + + * Used to be required to keep RTL functions alive + * We unconditionally link the library late now which should prevent this from happening + + + * Libm for the GPU + + + * Easiest solution is to use the `libc` infrastructure and remap calls to the existing device libs + * E.g. -Xclang -mlink-builtin-bitcode -Xclang libdevice.10.bc + * Can we redistribute NVIDIA's libdevice? + + + * Artem from Google is asking for this and an MLIR project, license seems to suggest so + + + * Integrating the libc RPC implementation into OpenMP + + + * How to do this? + * Header oly library, but exposes libc internals + * Goals for LLVM 1n7 release? + + + * OpenMP version change + * Bump up GCC requirement for libomp? + * Summary of OpenMP F2F (Deepak) + * LibC Status + + + * [[libc] Enable multiple threads to use RPC on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D148943&sa=D&source=editors&ust=1778600245955557&usg=AOvVaw2E_0imoAKxnE2Sl5jsmmxA) + * [[libc] Support concurrent RPC port access on the GPU](https://www.google.com/url?q=https://reviews.llvm.org/D149598&sa=D&source=editors&ust=1778600245955680&usg=AOvVaw0g1EAioZuvAeU9AnFQ8F3z) + * [[libc] Enable running libc unit tests on AMDGPU](https://www.google.com/url?q=https://reviews.llvm.org/D149517&sa=D&source=editors&ust=1778600245955787&usg=AOvVaw2Arzh8TkkzaKX8JccnzgQW) + * [[libc] Enable running libc unit tests on NVPTX](https://www.google.com/url?q=https://reviews.llvm.org/D149532&sa=D&source=editors&ust=1778600245955889&usg=AOvVaw3U-qPjk_vhyFGLRVy-LPt2) + * Nvidia buildbot: [https://lab.llvm.org/buildbot/#/builders/46](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/46&sa=D&source=editors&ust=1778600245956010&usg=AOvVaw1ZuF6neAp8YlsMRdF4AaM8) + * AMDGPU buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600245956154&usg=AOvVaw3TxfxU_tNkBG3Q2HDWxvzc) + * Presentation [LibC for GPUs](https://www.google.com/url?q=https://docs.google.com/presentation/d/1jQ5uoWtTv-esba-aUJSRxsCKoeha_VOtYO1u2XkeCqc/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600245956283&usg=AOvVaw1Icd3vWvF6s66yRTJ1d2vC) + + + * Reverse offloading proof of concept demo + * [https://github.com/jhuber6/OpenMP-reverse-offloading](https://www.google.com/url?q=https://github.com/jhuber6/OpenMP-reverse-offloading&sa=D&source=editors&ust=1778600245956455&usg=AOvVaw3kY1y_c6fgmwMlsmRDQL1l)Switch current "experimental" AMDGPU OpenMP Runtime buildbot to production and move the current "production" buildbot into staging + + + * Experimental buildbot does make check-openmp, check-clang, check-llvm, check-lld, check-libc + * Production buildbot: [https://lab.llvm.org/buildbot/#/builders/193](https://www.google.com/url?q=https://lab.llvm.org/buildbot/%23/builders/193&sa=D&source=editors&ust=1778600245956784&usg=AOvVaw0QMZl7ZQpv-5grwtunlulm) + * Experimental buildbot: [https://lab.llvm.org/staging/#/builders/200](https://www.google.com/url?q=https://lab.llvm.org/staging/%23/builders/200&sa=D&source=editors&ust=1778600245956909&usg=AOvVaw3ujotuSnvMlCmb_Z-ZtUIA) + + + * * One SPEC HPC C/C++ test is still not working on Frontier, five are running now. + * AMD signal active waiting[ https://reviews.llvm.org/D148808](https://www.google.com/url?q=https://reviews.llvm.org/D148808&sa=D&source=editors&ust=1778600245957149&usg=AOvVaw3PxpGopJWRH2zQcVWN7tOK)How to handle multiple images with conflicting architectures + * [https://reviews.llvm.org/D147756](https://www.google.com/url?q=https://reviews.llvm.org/D147756&sa=D&source=editors&ust=1778600245957287&usg=AOvVaw27MY-kUWmheSUkKCrJ2slj) + * RPC Server library + + + * [https://reviews.llvm.org/D147054](https://www.google.com/url?q=https://reviews.llvm.org/D147054&sa=D&source=editors&ust=1778600245957413&usg=AOvVaw3qVbuvMUTsnKW83oX89R5s) + + + * SPIRV/Intel offloading + + + * WIP for device runtime: [https://reviews.llvm.org/D144893](https://www.google.com/url?q=https://reviews.llvm.org/D144893&sa=D&source=editors&ust=1778600245957577&usg=AOvVaw24-ObhEHdhUtCOxdnA0FGC) + + + * Need help to identify the right intrinsics/builtins (@Intel) + + + * Driver missing + * Plugin missing + + + * Remove old plugins: ~ mid March + * LLVM/OpenMP 16 -- What's new: [OpenMP Offloading in LLVM 16](https://www.google.com/url?q=https://docs.google.com/presentation/d/1ugiN6J1hfk7hIRvuOONzbYsYpVXK0_ukl6EBVxV3cKU/edit?usp%3Dsharing&sa=D&source=editors&ust=1778600245957881&usg=AOvVaw0ZUV1fCqMMotWRErsa3whE) + * Clang OpenMP support: [https://reviews.llvm.org/D141541](https://www.google.com/url?q=https://reviews.llvm.org/D141541&sa=D&source=editors&ust=1778600245958007&usg=AOvVaw0_IRSY1aiVIbQsnEMDt8dZ) + * [https://reviews.llvm.org/D116908](https://www.google.com/url?q=https://reviews.llvm.org/D116908&sa=D&source=editors&ust=1778600245958285&usg=AOvVaw2QmU5WaPOpL5xDWyb5L7lu) + * Libc for GPU + + + * Part of LLVM/libc + + + * String and type functions for now + * libm_gpu.a should be our next target + * Allocators (Shilei) + + + * Multiple needed (pool, bump, …) + + + * Testing is an issue + + + * Direct GPU compilation is a possibility to create standalone tests + + + * GPU libc WIP [https://libc.llvm.org/gpu_mode.html](https://www.google.com/url?q=https://libc.llvm.org/gpu_mode.html&sa=D&source=editors&ust=1778600245958789&usg=AOvVaw3Gms0C926UnzbWQ2ftKIjG) + + + 1. Allocate "all" device memory + 2. Launch -> Write the image, write all "user allocated" memory, inlc. arguments, parameters + 3. Replay -> load image + user allocated memory, launch with args and parameters + + + * [Optimized reduction implementation by Greg](https://www.google.com/url?q=https://drive.google.com/drive/folders/1d2xrH1UYVqKl7ZrRvzR4Q8SA7Ov-BL_s&sa=D&source=editors&ust=1778600245959153&usg=AOvVaw2hswzV5Gbv0Za0nTPpSLju) + + + * [Review D126641](https://www.google.com/url?q=https://reviews.llvm.org/D136641&sa=D&source=editors&ust=1778600245959240&usg=AOvVaw2nnM1I9oPh7PVLRo64MPg_) + + + * Reduction alternative: + + + * [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp#L201](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/red.cpp%23L201&sa=D&source=editors&ust=1778600245959490&usg=AOvVaw3-aRFG0R4qkmcboth4w6zr) + * Reduction impl entry point: [https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp#L2059](https://www.google.com/url?q=https://github.com/jdoerfert/llvm-project/blob/c4e637d2c94959ca493363b921aa226286188eb3/openmp/libomptarget/DeviceRTL/src/Reduction.cpp%23L2059&sa=D&source=editors&ust=1778600245959755&usg=AOvVaw0vLc7DR4P4Eu1-jadvmiTW) + + + + * OpenMP Cluster and MPI plugin [[https://reviews.llvm.org/D136278](https://www.google.com/url?q=https://reviews.llvm.org/D136278&sa=D&source=editors&ust=1778600245959914&usg=AOvVaw3DYw4h9htUcvfekRE7ewH-)] + * Segmentation fault when a constant variable is used in a map clause + + + * Caused by a copy-back from the device + * Review: [https://reviews.llvm.org/D137649](https://www.google.com/url?q=https://reviews.llvm.org/D137649&sa=D&source=editors&ust=1778600245960180&usg=AOvVaw2xFkEptqfcQUHrDyBZlXQj) + + + * [https://reviews.llvm.org/D135162](https://www.google.com/url?q=https://reviews.llvm.org/D135162&sa=D&source=editors&ust=1778600245960283&usg=AOvVaw02KUfMw77FAUl359Ar9hj3) + * Changing register requires + + + * [https://reviews.llvm.org/D133539](https://www.google.com/url?q=https://reviews.llvm.org/D133539&sa=D&source=editors&ust=1778600245960421&usg=AOvVaw1y1l7tANe-HZ7Xq4lZJvMw) + + + * Replaces the `omp_register_requires` call with a global array registered the same way we handle globals / kernels + * Requires breaking backwards compatibility + + + * Could be made mostly backwards compatible, only losing support for unified shared memory in old executables. + + + * Device destructors + + + * By the time the host calls the destructor the plugin has been destructed. + + + * Lifetime extending patch was reverted for AMD so this no longer works + + + * Make the plugins handle it directly + + + * New libomptarget plugin infrastructure + + + * [https://reviews.llvm.org/D134396](https://www.google.com/url?q=https://reviews.llvm.org/D134396&sa=D&source=editors&ust=1778600245961082&usg=AOvVaw0f0ZoroJNoYio4WyDd_IhW) + + + * Number of arguments to parallel on device + + + * [https://github.com/llvm/llvm-project/issues/56389](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56389&sa=D&source=editors&ust=1778600245961266&usg=AOvVaw0396gCjjBjWYg8EHjmjcof) + * -> [https://reviews.llvm.org/D102107](https://www.google.com/url?q=https://reviews.llvm.org/D102107&sa=D&source=editors&ust=1778600245961368&usg=AOvVaw0EKKNSk1I-bbm57sUitHk9) + + + * OMPD (Vignesh) + + + * [https://reviews.llvm.org/D100186](https://www.google.com/url?q=https://reviews.llvm.org/D100186&sa=D&source=editors&ust=1778600245961533&usg=AOvVaw3m7kTdR6R1K-aOFGOq6Kfb) (ompd tests based on gdb plugin) + * (Joachim) Can we enable OMPD_SUPPORT by default, if OMPT_SUPPORT is enabled? + + + * Allocators - managed memory missing on AMD + + + * Does AMD have support? + * if managed means migratable, maybe. Might be platform dependent and involve the plugin setting an environment variable read by HSA. + + + * Dynamic shared memory + + + * [https://openmp.llvm.org//design/Runtimes.html#libomptarget-dynamic-shared](https://www.google.com/url?q=https://openmp.llvm.org//design/Runtimes.html%23libomptarget-dynamic-shared&sa=D&source=editors&ust=1778600245962048&usg=AOvVaw3RzOjk5UG2wD4IXCXHPmpF) + * Add dynamic memory and stream like with <<< >>> in cuda + * [https://reviews.llvm.org/D125252](https://www.google.com/url?q=https://reviews.llvm.org/D125252&sa=D&source=editors&ust=1778600245962220&usg=AOvVaw1LcEoB0Zxok214phqZTXyE) only adds the plugin runtime support + + + * Meta directive + + + * [https://reviews.llvm.org/D122255](https://www.google.com/url?q=https://reviews.llvm.org/D122255&sa=D&source=editors&ust=1778600245962435&usg=AOvVaw3p8q9cei0p737modfgEDUR) + + + * OMPT target patches needing review. Top of stack [⚙ D127372 [OpenMP] [OMPT] [8/8] Added lit tests for OMPT target callbacks (llvm.org)](https://www.google.com/url?q=https://reviews.llvm.org/D127372&sa=D&source=editors&ust=1778600245962616&usg=AOvVaw3fPH_PRMnHxzSYiRkUEYzb) + * _OPENMP (Joachim) + + + * Currently 201811 (= 5.0) + + + +### Open Bugs + + * [https://github.com/llvm/llvm-project/issues/50602](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/50602&sa=D&source=editors&ust=1778600245962901&usg=AOvVaw3kI8Qwxts83zChBdZwDhCS) + * [https://github.com/llvm/llvm-project/issues/53081](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/53081&sa=D&source=editors&ust=1778600245963019&usg=AOvVaw3AmBhIiC6brs-7yGCU5CDF) + * [https://github.com/llvm/llvm-project/issues/55943](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/55943&sa=D&source=editors&ust=1778600245963145&usg=AOvVaw2rCx9So00sfeGCOsHqEdhx) + * [https://github.com/llvm/llvm-project/issues/56406](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues/56406&sa=D&source=editors&ust=1778600245963266&usg=AOvVaw0bGayPeaNdvTNUB8_Vr55w) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-07-30.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-07-30.md new file mode 100644 index 0000000..3637a40 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-07-30.md @@ -0,0 +1,107 @@ +### 2025, July 30 + +Agenda + + + + * Discuss 5.2 and 6.0 features + + + * omp_target_is_accessible - may need to be modified in the spec, we can implement 5.2 behavior for now + + + * 5.2: the pointer passed is a valid host pointer + * 6.0: the pointer passed is a pointer + * Nicole: still working on the implementation. ([#138294](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/138294&sa=D&source=editors&ust=1778600245939382&usg=AOvVaw1siKBubKgVtoDacqLAydB0)) + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245939533&usg=AOvVaw35BOii5QBZ5QN4u15qGWZ4) + * OpenMP version 5.2 as default + + + * Worthwhile to update to 5.2 as default, but needs more thorough review + + + * Make sure all the new features are guarded by a warning + * Updating the version itself implies changing lots of tests + * Catherine with help, Deepak: will do the assessment + + + * Catherine: updated webpage with items that AMD is working on (for 6.0). + * Deepak: still working on this + + + * Could go straight to 6.0 and not bother with 5.2 at all + + + * Not ready + + + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245940245&usg=AOvVaw2Q7Za0gEfbA4pXkyROX9Hp) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * The OpenMPSupport.rst document linked above + * Nicole: when should we be updating this document? Another PR emerged implementing the same feature as one already in progress. + * Open a PR and add mjklemm and/or jhuber as reviewers, open it when the work starts to avoid duplication of effort. + + + * Generic SPMD kernel detection + + + * Previous PR closed [https://github.com/llvm/llvm-project/pull/137307](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/137307&sa=D&source=editors&ust=1778600245940850&usg=AOvVaw1hFvgectsw3vtagCmEccCq) + * Change of approach, new PR: [https://github.com/llvm/llvm-project/pull/150922](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/150922&sa=D&source=editors&ust=1778600245940990&usg=AOvVaw06h6UXwgV2v4GETZGocx0A) + + + * Remove from agenda. + + + * Bug(s) that needs looking into: + + + * any? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). + + + * Upstream PR opened +[https://github.com/llvm/llvm-project/pull/147381](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/147381&sa=D&source=editors&ust=1778600245941363&usg=AOvVaw074y9vs-erZNZ0Uo_xyj3o) + + + * Please review + * Michael Klemm will contact Intel people for review + + + * Downstream implementation +[https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245941633&usg=AOvVaw2spKBW6VWtvVevFm-x-c03) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245941807&usg=AOvVaw2_RQAAufnMR5caEsdHaYGh) + + + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * Call for review: + + + * [[OFFLOAD][OPENMP] 6.0 compatible interop interface by adurang * Pull Request #143491 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/143491&sa=D&source=editors&ust=1778600245942158&usg=AOvVaw2SUpi4m5NbCDqKHr2oiWc4) + * [[Offload] Introduce ATTACH map-type support for pointer attachment. by abhinavgaba * Pull Request #149036 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/149036&sa=D&source=editors&ust=1778600245942346&usg=AOvVaw3TYbVHjeh-FvsZaVAtkqKG) + + + * Makes the DeviceRTL a separate runtime like libc + + + * [https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143&sa=D&source=editors&ust=1778600245942593&usg=AOvVaw3D_Icz6VLp8ubDJZQSfGVS) + * Everybody provide feedback before it is finalized. + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245942768&usg=AOvVaw3WkCN8MlcMCy_MMLGfMhqN) + + + * + + +* * * + +# Previous Meeting diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-08-13.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-08-13.md new file mode 100644 index 0000000..5dc5ac4 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-08-13.md @@ -0,0 +1,112 @@ +### 2025, August 13 + +Agenda + + + + * Discuss 5.2 and 6.0 features + + + * omp_target_is_accessible - may need to be modified in the spec, we can implement 5.2 behavior for now + + + * 5.2: the pointer passed is a valid host pointer + * 6.0: the pointer passed is a pointer + * Nicole: still working on the implementation. ([#138294](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/138294&sa=D&source=editors&ust=1778600245934683&usg=AOvVaw1QICgaMPcpFVrGvLrtcNst)) + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245934841&usg=AOvVaw26G-oMjr5Q56pniPCtxJ4E) + * OpenMP version 5.2 as default + + + * Worthwhile to update to 5.2 as default, but needs more thorough review + + + * Make sure all the new features are guarded by a warning + * Updating the version itself implies changing lots of tests + * Catherine with help, Deepak: will do the assessment + + + * Catherine: updated webpage with items that AMD is working on (for 6.0). + * Deepak: still working on this + + + * Could go straight to 6.0 and not bother with 5.2 at all + + + * Not ready + + + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245935641&usg=AOvVaw1pVUMW34yo43oNlG_GNARr) + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * The OpenMPSupport.rst document linked above + * Nicole: when should we be updating this document? Another PR emerged implementing the same feature as one already in progress. + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Bug(s) that needs looking into: + + + * any? + + + * OMPT upstreaming plans from AMD + + + * First ompTest (unit test library for OMPT events). + + + * Upstream PR opened +[https://github.com/llvm/llvm-project/pull/147381](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/147381&sa=D&source=editors&ust=1778600245936530&usg=AOvVaw0F9Q8fMoM_b32iUaJYahYK) + + + * Got positive feedback so far + * Feel free to chime in if you have any comments + * This is the precursor to JP's downstream work on refactoring the general architecture of OMPT, will be upstreamed when ready + + + * Downstream implementation +[https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest](https://www.google.com/url?q=https://github.com/ROCm/llvm-project/tree/amd-staging/offload/test/ompTest&sa=D&source=editors&ust=1778600245936945&usg=AOvVaw2m6G5e9fwCf0k4ito-VvO2) +Example testsuite: [https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp](https://www.google.com/url?q=https://github.com/ROCm/aomp/blob/aomp-dev/test/smoke-limbo/omptest-device-emi/omptest-device-emi.cpp&sa=D&source=editors&ust=1778600245937153&usg=AOvVaw2wMOMQXyUEQBSzG_y2LgE_) + + + * Second device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + + + * Call for review: + + + * [[Offload] Introduce ATTACH map-type support for pointer attachment. by abhinavgaba * Pull Request #149036 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/149036&sa=D&source=editors&ust=1778600245937521&usg=AOvVaw3y7CEJG5gfovrN8GvYWJpX) + * Joseph: extracting OpenMP-specific parts can happen in a separate PR + * # [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245937757&usg=AOvVaw31kIJDZAQQgnqAGRYvRAwk), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245937820&usg=AOvVaw1uMFunsHGgJxpQlWGn1als), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245937879&usg=AOvVaw0HFn-UPQJcNKVH-mt1yiFQ)) + + + + * Makes the DeviceRTL a separate runtime like libc + + + * [https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143&sa=D&source=editors&ust=1778600245938205&usg=AOvVaw3W1ZE4pzaSemmrPrEPkUWO) + * Everybody provide feedback before it is finalized. + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245938388&usg=AOvVaw2lgfKTIhtvqFssFbiz-X8j) + + + * Move libomptarget on top of liboffload + + + * Alejandro: started looking into this + * Call some functions from liboffload, others from plugins + * Need to link libomptarget statically into liboffload for some time + * Assume that there is a single plugin present for now + * Joseph: turn liboffload into object library + + + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-08-27.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-08-27.md new file mode 100644 index 0000000..259844f --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-08-27.md @@ -0,0 +1,92 @@ +### August 27, 2025 + +Agenda + + + + * Discuss 5.2 and 6.0 features + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245930644&usg=AOvVaw0O7utm0c87iTc2Us_9sf45) + * OpenMP version 5.2 as default + + + * Worthwhile to update to 5.2 as default, but needs more thorough review + + + * Make sure all the new features are guarded by a warning + * Updating the version itself implies changing lots of tests + * Catherine with help, Deepak: will do the assessment + + + * Catherine: updated webpage with items that AMD is working on (for 6.0). + * Deepak: still working on this + + + * Could go straight to 6.0 and not bother with 5.2 at all + + + * Not ready + + + * Older review that made a move from 5.0 to 5.1 [https://reviews.llvm.org/D129635](https://www.google.com/url?q=https://reviews.llvm.org/D129635&sa=D&source=editors&ust=1778600245931371&usg=AOvVaw3P1SC37PKhtTNJsy1VIDVc) + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * The OpenMPSupport.rst document linked above + * Nicole: when should we be updating this document? Another PR emerged implementing the same feature as one already in progress. + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Bug(s) that needs looking into: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245932069&usg=AOvVaw09FaXRGzVMt9TOT0LpjZfk) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245932175&usg=AOvVaw0AJwxBoVWLQzTP70CT0Rbh) + * Any specific bugs to look at? + + + * OMPT upstreaming plans from AMD + + + * Device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + * First OMPT PR has landed: [https://github.com/llvm/llvm-project/pull/154786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/154786&sa=D&source=editors&ust=1778600245932528&usg=AOvVaw2dbbig5n-a_74a83wsJddh) + * Next step: downstream code work to incorporate changes from upstream and work on reducing potential conflicts; refactoring into an abstraction layer. + * Update and request for discussion to follow soon. + + + * Call for review: + + + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245932942&usg=AOvVaw3l23NAgxHXrD9Ijll1WHTa), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245933004&usg=AOvVaw2DR6ayaHsVl6eTM2SJwi2q), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245933061&usg=AOvVaw284ct3hnJ5GqFzubX1s0Y9)) + * [OpenMP][Clang] Use ATTACH map-type for list-items with base-pointers. ([#153683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/153683&sa=D&source=editors&ust=1778600245933212&usg=AOvVaw12NEwbInzhUAYgpzJGwzt-), NFC Subset with utils/helpers: [#155625](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/155625&sa=D&source=editors&ust=1778600245933298&usg=AOvVaw28y9whb1HrV4vuP4U2MWz1)) + + + * Makes the DeviceRTL a separate runtime like libc + + + * [https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143&sa=D&source=editors&ust=1778600245933544&usg=AOvVaw36sGOjsisvWxs43HQrB9TY) + * Everybody provide feedback before it is finalized. + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245933718&usg=AOvVaw3R3b54bDhVySV7WiUd72us) + + + * Move libomptarget on top of liboffload + + + * Alejandro: started looking into this + * Call some functions from liboffload, others from plugins + * Need to link libomptarget statically into liboffload for some time + * Assume that there is a single plugin present for now + * Joseph: turn liboffload into object library + + + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-09-10.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-09-10.md new file mode 100644 index 0000000..12f5564 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-09-10.md @@ -0,0 +1,104 @@ +### September 10, 2025 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245926266&usg=AOvVaw37b4VOPTLvnIv2bZrD6Cbe) + * Nicole: when should we be updating this document? Another PR emerged implementing the same feature as one already in progress. + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Discuss 5.2 and 6.0 features + + + * OpenMP version 5.2 as default + + + * Worthwhile to update to 5.2 as default, but needs more thorough review + + + * Make sure all the new features are guarded by a warning + * Updating the version itself implies changing lots of tests + * Catherine with help, Deepak: will do the assessment + + + * Catherine: updated webpage with items that AMD is working on (for 6.0). + * Deepak: very few 5.2 features are actually complete + * Not ready yet + * Solvve tests could be used for validation + + + * Bug(s) that needs looking into: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245927432&usg=AOvVaw2ZXuDrBgQBPnMxai8YZXJl) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245927548&usg=AOvVaw3EQ6mwmOiPt1eWrz2IpdtX) + * Any specific bugs to look at? + + + * OMPT upstreaming plans from AMD + + + * Device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + * First OMPT PR has landed: [https://github.com/llvm/llvm-project/pull/154786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/154786&sa=D&source=editors&ust=1778600245927942&usg=AOvVaw33V-0BwzOyp7hJGw2YeSHi) + * Next step: downstream code work to incorporate changes from upstream and work on reducing potential conflicts; refactoring into an abstraction layer. + * Update and request for discussion to follow soon. + + + * Call for review: + + + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245928351&usg=AOvVaw2AGK5c1d2lBlMEO02nD9f8), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245928415&usg=AOvVaw30BwibqmVP6R3uP8akbysb), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245928471&usg=AOvVaw3yFylLMXSpiGS3_kmvAQ5K)) + * [OpenMP][Clang] Use ATTACH map-type for list-items with base-pointers. ([#153683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/153683&sa=D&source=editors&ust=1778600245928622&usg=AOvVaw2RcQtTqgUStIGhhlgse8sK), NFC Subset with utils/helpers: [#155625](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/155625&sa=D&source=editors&ust=1778600245928708&usg=AOvVaw052sW-pJrnFkxX8nnKK76x)) + + + * Please test the first PR + * Julian has run some tests and they all passed + * Alexey will review the helper PR + + + * Makes the DeviceRTL a separate runtime like libc + + + * [https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143](https://www.google.com/url?q=https://discourse.llvm.org/t/rfc-llvm-policy-for-top-level-directories-and-language-runtimes/86143&sa=D&source=editors&ust=1778600245929107&usg=AOvVaw3byp3q92rJf_LuWC4bimO5) + * Everybody provide feedback before it is finalized. + * [https://github.com/llvm/llvm-project/pull/136729](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/136729&sa=D&source=editors&ust=1778600245929312&usg=AOvVaw0PLaSPGCvDlBZoPbFOo2Rl) + + + * Need to change cmake used to configure LLVM + * [https://github.com/llvm/llvm-project/blob/main/offload/cmake/caches/Offload.cmake](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/offload/cmake/caches/Offload.cmake&sa=D&source=editors&ust=1778600245929522&usg=AOvVaw3Qn3qKdRZI35RAsdVy83sm) + * Also described in OpenMP documentation + + + * Plans to upstream of Level Zero Plugin (Intel/Alex) + + + * Finalizing plans for upstreaming of level 0 plugin + * What's the best way to review it? It's a large amount of code. + * A PR should be ready in the next few days + + + * Move libomptarget on top of liboffload + + + * Alejandro: started looking into this + * Call some functions from liboffload, others from plugins + * Need to link libomptarget statically into liboffload for some time + * Assume that there is a single plugin present for now + * Joseph: turn liboffload into object library + + + +* * * + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-09-24.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-09-24.md new file mode 100644 index 0000000..3173739 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-09-24.md @@ -0,0 +1,104 @@ +### September 24, 2025 + +Agenda + + + + * October 8 meeting canceled + + + * OpenMP face-to-face meetings + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245922200&usg=AOvVaw1uQl962POiVaYunPO6P0c0) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Discuss feature deprecation + + + * For example, 5.2 deprecated a number of features + * How do we want to handle deprecations? Warning, error? + + + * ARB: Implementation can continue to support it + * Michael: emit warnings stating what to use instead (if known) that can be suppressed or converted to an error + * Catherine: only emit the warning if -fopenmp-version is set to a version in which the feature is deprecated + * Emit a warning even for features that have been removed + + + * Bug(s) that needs looking into: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245923154&usg=AOvVaw2c6SIeP8vStHnj2te5hpZq) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245923267&usg=AOvVaw1hDycjPkbVwHYNGc-ECRG-) + * Any specific bugs to look at? + + + * OMPT upstreaming plans from AMD + + + * Device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + * First OMPT PR has landed: [https://github.com/llvm/llvm-project/pull/154786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/154786&sa=D&source=editors&ust=1778600245923620&usg=AOvVaw3z1gzdVHUUoRgqI4LpYqf5) + * Next step: downstream code work to incorporate changes from upstream and work on reducing potential conflicts; refactoring into an abstraction layer. + * Update and request for discussion to follow soon. + + + * Call for review: + + + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245924016&usg=AOvVaw3UqVLo9CXMN5RKz7lBuIPA), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245924083&usg=AOvVaw2pkDmTnPG_Qu_2SHhChogP), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245924146&usg=AOvVaw3Euv6G9qSyhqSp_IJMF_bB)) + + + * Kevin: dyn_groupprivate has changed in the spec, the PRs need to be updated + + + * [OpenMP][Clang] Use ATTACH map-type for list-items with base-pointers. ([#153683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/153683&sa=D&source=editors&ust=1778600245924378&usg=AOvVaw3q0gflg76gzExmCdruqMV_), NFC Subset with utils/helpers 1: [#155625](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/155625&sa=D&source=editors&ust=1778600245924472&usg=AOvVaw0cescGg-g_MoqhmRDxqCLE), NFC subset 2: [#161294](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/161294&sa=D&source=editors&ust=1778600245924540&usg=AOvVaw1nAy156Pc35bi5a092Rdpt)) + + + * Please test the first PR + * Julian has run some tests and they all passed + * Alexey will review the helper PR (1 merged, 1 remaining) + + + * [[OFFLOAD] Add plugin with support for Intel oneAPI Level Zero by adurang * Pull Request #158900 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/158900&sa=D&source=editors&ust=1778600245924875&usg=AOvVaw3YG14CN3DhtDBRpAYKwrb_) + + + * Plans to upstream of Level Zero Plugin (Intel/Alex) + + + * Finalizing plans for upstreaming of level 0 plugin + * What's the best way to review it? It's a large amount of code. + * A PR should be ready in the next few days + + + * PR: [https://github.com/llvm/llvm-project/pull/158900](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/158900&sa=D&source=editors&ust=1778600245925279&usg=AOvVaw3wNxd2oRKZGEEMyPZFO8MA) + * There may be more changes needed in the future as more code is integrated with this. + + + * Is there an existing public repo with the code? + + + * Move libomptarget on top of liboffload + + + * Alejandro: started looking into this + * Call some functions from liboffload, others from plugins + * Need to link libomptarget statically into liboffload for some time + * Assume that there is a single plugin present for now + * Joseph: turn liboffload into object library + + + +* * * + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-10-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-10-08.md new file mode 100644 index 0000000..5c93170 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-10-08.md @@ -0,0 +1,5 @@ +### October 8, 2025 + +Canceled: OpenMP ARB face-to-face meetings this week + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-10-22.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-10-22.md new file mode 100644 index 0000000..2f5e221 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-10-22.md @@ -0,0 +1,133 @@ +### October 22, 2025 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245916244&usg=AOvVaw3aE44kSRGCF0NL7iCgz55v) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Discuss feature deprecation + + + * Conclusion: support deprecated/removed features, emit a warning when -fopenmp-version is set to a version in which the feature is no longer present (or is deprecated) + + + * Bug(s) that needs looking into: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245916866&usg=AOvVaw3r7TTtLt5Jr1rgv6zG133-) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245916976&usg=AOvVaw0foAizz_zS7U1gsVatlFQ7) + * Any specific bugs to look at? + + + * OMPT upstreaming plans from AMD + + + * First OMPT PR (testing framework) has landed: [https://github.com/llvm/llvm-project/pull/154786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/154786&sa=D&source=editors&ust=1778600245917243&usg=AOvVaw3QMK870ZkXC-dAHV1_0Z-A) + * Device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + * Next step: downstream code work to incorporate changes from upstream and work on reducing potential conflicts; refactoring into an abstraction layer. + + + * Still ongoing + + + * Update and request for discussion to follow soon. + + + * Virtual function calls on target + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245917759&usg=AOvVaw0q9gF0jO-IbTg0yfT90KAz) + * Create indirect call table, do binary search. Assumes Itanium ABI at the moment. + * Supports indirect function calls as well. + + + * Fine-grained debug support (Intel/Alex) + + + * Filter things that get output + * Joseph: two prints, debug and informational. Deprecate LIBOMPTARGET_DEBUG flag in cmake and use NDEBUG instead + * Alex: still want to have different debug configurations, get debug support even when LLVM is build with NDEBUG. + * Joseph: have a flag and use "flag || !NDEBUG" to enable debug prints + * Have a list of keywords to enable debug prints from different parts, keep backward compatibility with "1", use "all" for everything + * Alex: there are also debug levels + * Alex where should this live? There is some data that shouldn't be in a header file + * Joseph: use it for liboffload first. Have it in a header and recompute it in different places at first use. + + + * Call for review: + + + * Virtual function support: [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245918908&usg=AOvVaw1HW4ZM7v1doTUFxPvYSFm-) + * CMake improvement: [https://github.com/llvm/llvm-project/pull/159416](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159416&sa=D&source=editors&ust=1778600245919044&usg=AOvVaw3jw2a2XKWu7DiMCAroa1SL) + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245919180&usg=AOvVaw1Ub0FHENUeUaHogkcqNkmg), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245919240&usg=AOvVaw1lV1MEYaVbvL7cOgYhR42R), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245919297&usg=AOvVaw2lYRba32J9nGkzPWYz8Hma)) + + + * Kevin: dyn_groupprivate has changed in the spec, the PRs need to be updated + + + * [OpenMP][Clang] Use ATTACH map-type for list-items with base-pointers. ([#153683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/153683&sa=D&source=editors&ust=1778600245919519&usg=AOvVaw3-Mpcw5OjZ366VLvnb3kot), NFC Subset with utils/helpers 1: [#155625](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/155625&sa=D&source=editors&ust=1778600245919610&usg=AOvVaw2lmk5TtBMX3ZXj4c4novE9), NFC subset 2: [#161294](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/161294&sa=D&source=editors&ust=1778600245919676&usg=AOvVaw0heMpekbTJH2fiGm3t6q3s)) + + + * Please test the first PR + * Julian has run some tests and they all passed + * Alexey will review the helper PR (1 merged, 1 remaining) + + + * [[OFFLOAD] Add plugin with support for Intel oneAPI Level Zero by adurang * Pull Request #158900 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/158900&sa=D&source=editors&ust=1778600245920025&usg=AOvVaw1WnFuGOlY6RVj7w7M9vEum) + + + * [[OFFLOAD] Add support for indexed per-thread containers](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/164263&sa=D&source=editors&ust=1778600245920149&usg=AOvVaw2VgfUk9bcBNn_MkrmucO5V) + + + * Plans to upstream of Level Zero Plugin (Intel/Alex) + + + * Finalizing plans for upstreaming of level 0 plugin + * What's the best way to review it? It's a large amount of code. + * A PR should be ready in the next few days + + + * PR: [https://github.com/llvm/llvm-project/pull/158900](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/158900&sa=D&source=editors&ust=1778600245920533&usg=AOvVaw3yXlVgOxuZgIzO5MTHCi26) + * There may be more changes needed in the future as more code is integrated with this. + + + * Is there an existing public repo with the code? + + + * Move libomptarget on top of liboffload + + + * Alex: started looking into this + * Call some functions from liboffload, others from plugins + * Need to link libomptarget statically into liboffload for some time + * Assume that there is a single plugin present for now + * Joseph: turn liboffload into object library + * Lots of prototyping has been done so far, many workarounds were needed + + + * Present the summary at the next meeting + + + * Firstprivate behavior on TARGET + + + * firstprivate(ptr) will do present lookup on the value of the pointer. This should happen for a base pointer of a list item on map clause, but not when the pointer is listed on firstprivate. + + + * Is this a deliberate choice? Seems like a bug + + + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-11-05.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-11-05.md new file mode 100644 index 0000000..bf90691 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-11-05.md @@ -0,0 +1,132 @@ +### November 5, 2025 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245909810&usg=AOvVaw11jcQJyWVczQ4-F6xKVuis) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245910220&usg=AOvVaw24KhpDej_N7zC5uQdBw73U) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245910330&usg=AOvVaw3acLdlzzCA3pP4oleRdL7J) + * Any specific bugs to look at? + + + * OMPT upstreaming plans from AMD + + + * First OMPT PR (testing framework) has landed: [https://github.com/llvm/llvm-project/pull/154786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/154786&sa=D&source=editors&ust=1778600245910575&usg=AOvVaw1faNEQ47IWYLRMUK3c1PPg) + * Device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + * Next step: downstream code work to incorporate changes from upstream and work on reducing potential conflicts; refactoring into an abstraction layer. + + + * Still ongoing + + + * Update and request for discussion to follow soon. + + + * Hopefully at the next meeting (Nov 19) + + + * Virtual function calls on target + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245911154&usg=AOvVaw1XioTvhU_VYFqpam57BSp-) + * Create indirect call table, do binary search. Assumes Itanium ABI at the moment. + * Supports indirect function calls as well. + + + * Fine-grained debug support (Intel/Alex) ([https://github.com/llvm/llvm-project/pull/165416](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/165416&sa=D&source=editors&ust=1778600245911449&usg=AOvVaw0PaKTUrvBdBrpWM99CQ6Lx)) + + + * Filter things that get output + * Joseph: two prints, debug and informational. Deprecate LIBOMPTARGET_DEBUG flag in cmake and use NDEBUG instead + * Alex: still want to have different debug configurations, get debug support even when LLVM is build with NDEBUG. + * Joseph: have a flag and use "flag || !NDEBUG" to enable debug prints + * Have a list of keywords to enable debug prints from different parts, keep backward compatibility with "1", use "all" for everything + * Alex: there are also debug levels + * Alex where should this live? There is some data that shouldn't be in a header file + * Joseph: use it for liboffload first. Have it in a header and recompute it in different places at first use. + * Joseph: when adding a new feature it's hard to determine what level to put it under, using tags should be enough + * Alex: disagrees, if a component wants to support levels, there would need to be additional tags for each level (for the same component). + * Joseph: do we really need to have a complicated mechanism for this? + * Alex: users wanted different levels to limit the amount of information + * Joseph: it should be easy for people to write new code that uses this functionality + * Alex: in the absence of levels people tend to print too little debug information + * Michael Klemm: Users say that the debugging experience in LLVM is difficult and complicated. Have a single way to control debugging of OpenMP-related code (not specific to liboffload and libomptarget). In the future it could be extended to libomp. + * Alex: this makes sense, but not clear where/how to implement it + + + * The code would have to live somewhere, there is no code in common with libomp at the moment + + + * + + * Call for review: + + + * Virtual function support: + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245913431&usg=AOvVaw1AkKaafx6bKprrJ42VCLLh) + * [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245913560&usg=AOvVaw1OeMeK8He3r2L31xiJ2qKn) + + + * CMake improvement: [https://github.com/llvm/llvm-project/pull/159416](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159416&sa=D&source=editors&ust=1778600245913690&usg=AOvVaw1zvTPnCPmLYySfrlnrt8o2) + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245913814&usg=AOvVaw1L-fG4-RrrueqnQaYFO80-), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245913868&usg=AOvVaw3sJU6xamM98mJRLN9no0_y), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245913931&usg=AOvVaw0iHzHr8YQqRRqfdpf2lVxT)) + + + * Kevin: dyn_groupprivate has changed in the spec, the PRs need to be updated + + + * [OpenMP][Clang] Use ATTACH map-type for list-items with base-pointers. ([#153683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/153683&sa=D&source=editors&ust=1778600245914157&usg=AOvVaw2TVvGmnuCRym6DeAqwVR7l), NFC Subset with utils/helpers 1: [#155625](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/155625&sa=D&source=editors&ust=1778600245914258&usg=AOvVaw0tVpmDPX3oHsTCxB7apfwv), NFC subset 2: [#161294](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/161294&sa=D&source=editors&ust=1778600245914325&usg=AOvVaw2snwfbA1-3fMgZHXT8WNX_)) + * [[OFFLOAD] Add plugin with support for Intel oneAPI Level Zero by adurang * Pull Request #158900 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/158900&sa=D&source=editors&ust=1778600245914498&usg=AOvVaw0w1h6smD9Ww3pXh7_2-Oyu) + + + * [[OFFLOAD] Add support for indexed per-thread containers](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/164263&sa=D&source=editors&ust=1778600245914613&usg=AOvVaw2XlS7yrGLo8YCL4ii98BXY) + + + * [[OpenMP][clang][HIP][CUDA] fix weak alias emit on device compilation](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/164326&sa=D&source=editors&ust=1778600245914766&usg=AOvVaw1lDbDeixwwPNjSHIJ8PZF8) + + + * Move libomptarget on top of liboffload + + + * Alex: started looking into this + * Call some functions from liboffload, others from plugins + * Need to link libomptarget statically into liboffload for some time + * Assume that there is a single plugin present for now + * Joseph: turn liboffload into object library + * Lots of prototyping has been done so far, many workarounds were needed + + + * Present the summary at the next meeting + + + * Firstprivate behavior on TARGET + + + * firstprivate(ptr) will do present lookup on the value of the pointer. This should happen for a base pointer of a list item on map clause, but not when the pointer is listed on firstprivate. Is this a deliberate choice? Seems like a bug + + + * Someone working on the PR + + + * Presentation by Gregory Fine + + + * Slides: [https://drive.google.com/file/d/1Zdmwjzoyebac9m5E6o__z07oXoZ-KL2s/view?usp=drive_link](https://www.google.com/url?q=https://drive.google.com/file/d/1Zdmwjzoyebac9m5E6o__z07oXoZ-KL2s/view?usp%3Ddrive_link&sa=D&source=editors&ust=1778600245915824&usg=AOvVaw3-mK3DDxxjsiZsiZtZMRvM) diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-12-03.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-12-03.md new file mode 100644 index 0000000..ed59289 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-12-03.md @@ -0,0 +1,152 @@ +### December 3, 2025 + +Agenda (copied from last meeting for now, new stuff in red) + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245902493&usg=AOvVaw357cEjpNpCDH6rr9nYyI4h) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245902901&usg=AOvVaw0tvojzOJ6khEldtR4TE6zv) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245903004&usg=AOvVaw2pcTelVfrZnGSBIsayUKa_) + * Any specific bugs to look at? + + + * Support for Fortran API with adapter routines + + + * Some C/C++ interfaces can no longer be exported with '_' added + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245903509&usg=AOvVaw0ipKosJpoubpSVEIssTfr1)) + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/169909](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169909&sa=D&source=editors&ust=1778600245903691&usg=AOvVaw2iyVkuXLFPifzc1kLLwqfn) + * [https://github.com/llvm/llvm-project/pull/169638](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169638&sa=D&source=editors&ust=1778600245903802&usg=AOvVaw2nWyfEQ-kNuwDroDkU6qcX) + + + * Virtual function calls on target + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245903970&usg=AOvVaw1w7CfpujF9QaZTDgLVucm3) + * Create indirect call table, do binary search. Assumes Itanium ABI at the moment. + * Supports indirect function calls as well. + + + * Fine-grained debug support (Intel/Alex) ([https://github.com/llvm/llvm-project/pull/165416](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/165416&sa=D&source=editors&ust=1778600245904274&usg=AOvVaw1cl9ZdhybpCvcLYr8H0IT8)) + + + * Filter things that get output + * Joseph: two prints, debug and informational. Deprecate LIBOMPTARGET_DEBUG flag in cmake and use NDEBUG instead + * Alex: still want to have different debug configurations, get debug support even when LLVM is build with NDEBUG. + * Joseph: have a flag and use "flag || !NDEBUG" to enable debug prints + * Have a list of keywords to enable debug prints from different parts, keep backward compatibility with "1", use "all" for everything + * Alex: there are also debug levels + * Alex where should this live? There is some data that shouldn't be in a header file + * Joseph: use it for liboffload first. Have it in a header and recompute it in different places at first use. + * Joseph: when adding a new feature it's hard to determine what level to put it under, using tags should be enough + * Alex: disagrees, if a component wants to support levels, there would need to be additional tags for each level (for the same component). + * Joseph: do we really need to have a complicated mechanism for this? + * Alex: users wanted different levels to limit the amount of information + * Joseph: it should be easy for people to write new code that uses this functionality + * Alex: in the absence of levels people tend to print too little debug information + * Michael Klemm: Users say that the debugging experience in LLVM is difficult and complicated. Have a single way to control debugging of OpenMP-related code (not specific to liboffload and libomptarget). In the future it could be extended to libomp. + * Alex: this makes sense, but not clear where/how to implement it + + + * The code would have to live somewhere, there is no code in common with libomp at the moment + + + * Consensus has been reached, now implementing the changes. + * Need help with adopting plugins to use the new messages (e.g. AMD plugin). + * + + * Call for review: + + + * Virtual function support: + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245906459&usg=AOvVaw3CBPNK0kovvqr4BAhYSh6W) + * [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245906596&usg=AOvVaw3YYGJZwhdFWu1YEUXKi2iJ) + + + * CMake improvement: [https://github.com/llvm/llvm-project/pull/159416](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159416&sa=D&source=editors&ust=1778600245906730&usg=AOvVaw3WLCgaMyBIWlSkYViWm2Gw) + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245906854&usg=AOvVaw1fNMwhKfARL5o2evodPkZR), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245906918&usg=AOvVaw2R20vmEZa3w2K8-oP1a-Hx), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245906977&usg=AOvVaw1dnDBpYmW-A5L6-eZSK-nK)) + + + * Kevin: Updated to latest OpenMP spec + + + * [OpenMP][Clang] Use ATTACH map-type for list-items with base-pointers. ([#153683](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/153683&sa=D&source=editors&ust=1778600245907172&usg=AOvVaw1_N9mW8J2Ll88VVCEvuHVs), NFC Subset with utils/helpers 1: [#155625](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/155625&sa=D&source=editors&ust=1778600245907271&usg=AOvVaw0xnirprys63VvyA_ZqvW_C), NFC subset 2: [#161294](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/161294&sa=D&source=editors&ust=1778600245907339&usg=AOvVaw1QTZeF8dR7gkNVVx8k4Yjn)) + * [[OFFLOAD] Add plugin with support for Intel oneAPI Level Zero by adurang * Pull Request #158900 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/158900&sa=D&source=editors&ust=1778600245907509&usg=AOvVaw0utXwMNeZZJjkQFZS-Ijb_) + * [OpenMP] Preserve the original address when use_device_ptr/addr lookup fails. ([#169438](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169438&sa=D&source=editors&ust=1778600245907649&usg=AOvVaw1xZ-tpU_pd2vC6b-tmfel2)) + + + * Move libomptarget on top of liboffload + + + * Alex: started looking into this + * Call some functions from liboffload, others from plugins + * Need to link libomptarget statically into liboffload for some time + * Assume that there is a single plugin present for now + * Joseph: turn liboffload into object library + * Lots of prototyping has been done so far, many workarounds were needed + + + * Present the summary at the next meeting + + + * Firstprivate behavior on TARGET + + + * firstprivate(ptr) will do present lookup on the value of the pointer. This should happen for a base pointer of a list item on map clause, but not when the pointer is listed on firstprivate. Is this a deliberate choice? Seems like a bug + + + * Someone working on the PR + + + * Presentation by Gregory Fine + + + * Slides: [https://drive.google.com/file/d/1Zdmwjzoyebac9m5E6o__z07oXoZ-KL2s/view?usp=drive_link](https://www.google.com/url?q=https://drive.google.com/file/d/1Zdmwjzoyebac9m5E6o__z07oXoZ-KL2s/view?usp%3Ddrive_link&sa=D&source=editors&ust=1778600245908672&usg=AOvVaw2lCwkhf_OqM2S44tEN3bpn) + + + * OMPT upstreaming plans from AMD + + + * First OMPT PR (testing framework) has landed: [https://github.com/llvm/llvm-project/pull/154786](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/154786&sa=D&source=editors&ust=1778600245908915&usg=AOvVaw3JIV7AAXZ8vn-E9QVShfxh) + * Device tracing support. Likely have a little presentation to this group to collect feedback before opening PRs + * Next step: downstream code work to incorporate changes from upstream and work on reducing potential conflicts; refactoring into an abstraction layer. + + + * Still ongoing + + + * Update and request for discussion to follow soon. + + + * Hopefully at the next meeting (Nov 19) + + + * + + +Meeting canceled due to SC25. + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2025-12-17.md b/openmp-wg/meeting-minutes/openmp-minutes-2025-12-17.md new file mode 100644 index 0000000..2979d10 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2025-12-17.md @@ -0,0 +1,128 @@ +### December 17, 2025 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245895751&usg=AOvVaw3y5egUo61wHA_M8QwQ1ryb) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245896166&usg=AOvVaw2w9-VgXbe8iJDlBtlgXw8J) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245896274&usg=AOvVaw2g93X7OUACgKx0l4Y6C2yI) + * Any specific bugs to look at? + + + * Support for Fortran API with adapter routines + + + * Deferred to early 2026 + * Michael Klemm to follow up with Intel OpenMP runtime devs. + * Some C/C++ interfaces can no longer be exported with '_' added + + + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245896902&usg=AOvVaw1klOtrWEUi79tLK-QxKcjM)) + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/169909](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169909&sa=D&source=editors&ust=1778600245897086&usg=AOvVaw1-hlAq816yQJbIC5dzzaLd) + * [https://github.com/llvm/llvm-project/pull/169638](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169638&sa=D&source=editors&ust=1778600245897208&usg=AOvVaw1PHP8stmO7gxh1oj5rnPTU) + * [https://github.com/llvm/llvm-project/pull/171515](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171515&sa=D&source=editors&ust=1778600245897327&usg=AOvVaw0kjkc2QklvSVe9SU8jH4r7) + + + * ADDED: offload ToolChain fall back to host's builtin modules + + + * Removing standalone/LLVM_ENABLE_PROJECTS build modes + + + * [https://github.com/llvm/llvm-project/pull/170693](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170693&sa=D&source=editors&ust=1778600245897582&usg=AOvVaw3g3y9MaueLGf_i_I1-LzUr) + * [https://github.com/llvm/llvm-project/pull/152189](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152189&sa=D&source=editors&ust=1778600245897701&usg=AOvVaw2PhDNUxv4EVGRkaERIIZEq) + * [https://github.com/llvm/llvm-project/pull/149878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/149878&sa=D&source=editors&ust=1778600245897814&usg=AOvVaw0FeGa14uAwabFC9gv0iavF) + * [https://github.com/llvm/llvm-project/pull/162904](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/162904&sa=D&source=editors&ust=1778600245897924&usg=AOvVaw1QuzrKu_YnDmkWhSy8a1U0) + * + + * Virtual function calls on target + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245898124&usg=AOvVaw2ycBXhbSJZBN41l7OxIYcw) + * Create indirect call table, do binary search. Assumes Itanium ABI at the moment. + * Supports indirect function calls as well. + * One more PR coming (for codegen): [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245898467&usg=AOvVaw3l3hvMJWgL5yLQ6ogOP2rU) + + + * Fine-grained debug support (Intel/Alex) ([https://github.com/llvm/llvm-project/pull/165416](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/165416&sa=D&source=editors&ust=1778600245898624&usg=AOvVaw3Qa7sTGDOVfzvM8X-cAIYl)) + + + * Filter things that get output + * Joseph: two prints, debug and informational. Deprecate LIBOMPTARGET_DEBUG flag in cmake and use NDEBUG instead + * Alex: still want to have different debug configurations, get debug support even when LLVM is build with NDEBUG. + * Joseph: have a flag and use "flag || !NDEBUG" to enable debug prints + * Have a list of keywords to enable debug prints from different parts, keep backward compatibility with "1", use "all" for everything + * Alex: there are also debug levels + * Alex where should this live? There is some data that shouldn't be in a header file + * Joseph: use it for liboffload first. Have it in a header and recompute it in different places at first use. + * Joseph: when adding a new feature it's hard to determine what level to put it under, using tags should be enough + * Alex: disagrees, if a component wants to support levels, there would need to be additional tags for each level (for the same component). + * Joseph: do we really need to have a complicated mechanism for this? + * Alex: users wanted different levels to limit the amount of information + * Joseph: it should be easy for people to write new code that uses this functionality + * Alex: in the absence of levels people tend to print too little debug information + * Michael Klemm: Users say that the debugging experience in LLVM is difficult and complicated. Have a single way to control debugging of OpenMP-related code (not specific to liboffload and libomptarget). In the future it could be extended to libomp. + * Alex: this makes sense, but not clear where/how to implement it + + + * The code would have to live somewhere, there is no code in common with libomp at the moment + + + * Consensus has been reached, now implementing the changes. + * Need help with adopting plugins to use the new messages (e.g. AMD plugin). + * + + * Call for review: + + + * Virtual function support: + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245900702&usg=AOvVaw0GxaaXEylFb7Y96PL5Dwy0) + * [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245900829&usg=AOvVaw2XzkL-4ZCOtFIb1t98FaLb) + + + * CMake improvement: [https://github.com/llvm/llvm-project/pull/159416](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159416&sa=D&source=editors&ust=1778600245900972&usg=AOvVaw1kxefz3KFM0q0gbLuqLq8_) + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245901103&usg=AOvVaw3nyGF863ryMP4ESdl-G5SH), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245901184&usg=AOvVaw3uzundU-yY7BRoOleTh7CP), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245901245&usg=AOvVaw2DaoqWjDZTAFLiFGWQj-E6)) + + + * Kevin: Performance degradation detected, needs few fixes + + + * [OpenMP][Offload] Add a buffer layer to debug messaging ([https://github.com/llvm/llvm-project/pull/172446](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/172446&sa=D&source=editors&ust=1778600245901493&usg=AOvVaw0Gxb-3rHZnyQPM3BrUmFPF)) + * [[OFFLOAD] Add plugin with support for Intel oneAPI Level Zero by adurang * Pull Request #158900 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/158900&sa=D&source=editors&ust=1778600245901664&usg=AOvVaw0YheQiMsSrGGtufEC62jiI) + * [https://github.com/llvm/llvm-project/pull/171201](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171201&sa=D&source=editors&ust=1778600245901781&usg=AOvVaw1zmhLCsUEPSdwhnfmDkRMs) + + + * Should this wait until the follow-up PR is ready? + * Kevin: Delayed until next LLVM branch + + + * OMPT upstreaming plans from AMD + + + * AMD is working on an updated timeline for further PRs to be published. + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2026-01-14.md b/openmp-wg/meeting-minutes/openmp-minutes-2026-01-14.md new file mode 100644 index 0000000..4ad78ef --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2026-01-14.md @@ -0,0 +1,124 @@ +### January 14, 2026 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245890015&usg=AOvVaw34Yn8aRfXlYuwMKdC14lcv) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245890431&usg=AOvVaw2X628eeXndSxAfHJ_tuC13) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245890535&usg=AOvVaw3OuYlA4OywsW6SAEqdxqum) + * Any specific bugs to look at? + + + * Support for Fortran API with adapter routines + + + * Deferred to early 2026 + * Michael Klemm to follow up with Intel OpenMP runtime devs. + * Some C/C++ interfaces can no longer be exported with '_' added + + + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245891202&usg=AOvVaw0-N-AF-ZLtsEXhZRR7Taav)) + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/169909](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169909&sa=D&source=editors&ust=1778600245891374&usg=AOvVaw3pbt1-DRAyz22UnXk5PGYh) + * [https://github.com/llvm/llvm-project/pull/169638](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169638&sa=D&source=editors&ust=1778600245891488&usg=AOvVaw2UgSVN-LX540Ut9pznKZGp) + * [https://github.com/llvm/llvm-project/pull/171515](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171515&sa=D&source=editors&ust=1778600245891598&usg=AOvVaw00WLgfpP_vv9e7OT9jiJ61) + + + * ADDED: offload ToolChain fall back to host's builtin modules + + + * https://github.com/llvm/llvm-project/pull/171610 + + + * Make the change first, then refactor in a separate PR + + + * Removing standalone/LLVM_ENABLE_PROJECTS build modes + + + * [https://github.com/llvm/llvm-project/pull/170693](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170693&sa=D&source=editors&ust=1778600245892003&usg=AOvVaw00_Od56xttl9LXYaBMBzOf) + * [https://github.com/llvm/llvm-project/pull/152189](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152189&sa=D&source=editors&ust=1778600245892116&usg=AOvVaw1_CmUc3jpin-rs8ohneWnc) + * [https://github.com/llvm/llvm-project/pull/149878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/149878&sa=D&source=editors&ust=1778600245892231&usg=AOvVaw22mT8C91CRk3z7bixHz0Jc) + * [https://github.com/llvm/llvm-project/pull/162904](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/162904&sa=D&source=editors&ust=1778600245892346&usg=AOvVaw2IxZoSznJJLtz2q3x_7sHv) + + + * Previous patches broke the documentation build for [llvm.org](https://www.google.com/url?q=http://llvm.org&sa=D&source=editors&ust=1778600245892483&usg=AOvVaw368iNRCDAkHqyHcF8Iol2W) + * Removing "standalone build" creates the impression that the build will always require LLVM to be built as well, which is not true. + + + * Code style for LLVM OpenMP project: + + + * About 5% in new LLVM coding style + * Remainder in old KMP coding style + * Which way should we be going? + * ~100kloc, written in C++, but not using any C++ features that require linking C++ runtime + + + * Virtual function calls on target + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245893084&usg=AOvVaw0a_9Sxf0r18cZHI248Row2) + * Create indirect call table, do binary search. Assumes Itanium ABI at the moment. + * Supports indirect function calls as well. + * One more PR coming (for codegen): [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245893396&usg=AOvVaw1FqC8x3p0S03EnDhjG-yFG) + * + + * Call for review: + + + * Virtual function support: + + + * [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245893619&usg=AOvVaw0RNs9ONPMuqRQ5IGTSgYOS) + + + * CMake improvement: [https://github.com/llvm/llvm-project/pull/159416](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159416&sa=D&source=editors&ust=1778600245893756&usg=AOvVaw3ugxomCr-UwIwS91672g7n) + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245893882&usg=AOvVaw1PB6mrJ6Q_avhq0A4dGWSK), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245893942&usg=AOvVaw3rMpS_G6OBJ88QcutGWU8a), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245893997&usg=AOvVaw0dQsq30_fdFPPoLjGR2ETv)) + + + * Kevin: Performance degradation detected, needs few fixes + + + * [OpenMP][Offload] Add a buffer layer to debug messaging ([https://github.com/llvm/llvm-project/pull/172446](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/172446&sa=D&source=editors&ust=1778600245894249&usg=AOvVaw3d5jT6LakHbI-p0QVzesYa)) + * [OpenMP][Offload] Translate Info types to Debug types when debug enabled ([https://github.com/llvm/llvm-project/pull/175599](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/175599&sa=D&source=editors&ust=1778600245894436&usg=AOvVaw3eC-7ZKc7ZgLktlKYJ6VVx)) + * [OpenMP] Preserve the original address when use_device_ptr/addr lookup fails. ([#174659](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/174659&sa=D&source=editors&ust=1778600245894589&usg=AOvVaw1r2WYDpOwYUzwrZ_sfbXiY)) + + + * \+ the stack for use_device_ptr(fb_nullify/preserve): [#169603](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169603&sa=D&source=editors&ust=1778600245894758&usg=AOvVaw1IlF5OOJvQHDIPc36GC9vH), [#170578](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170578&sa=D&source=editors&ust=1778600245894817&usg=AOvVaw1HuD6cKRv4Y8UlmY1Tb8OQ), [#173930](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/173930&sa=D&source=editors&ust=1778600245894875&usg=AOvVaw2nhVKGCjbfBfJ7SLZnNMSY), [#173931](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/173931&sa=D&source=editors&ust=1778600245894933&usg=AOvVaw20nKVsxlQ_AV9vOdlkXJSP) + + + * [https://github.com/llvm/llvm-project/pull/171201](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171201&sa=D&source=editors&ust=1778600245895047&usg=AOvVaw1oU_9tno7HdNcrsVxjW6Tn) + + + * Should this wait until the follow-up PR is ready? + * Kevin: Delayed until next LLVM branch + + + * OMPT upstreaming plans from AMD + + + * AMD is working on an updated timeline for further PRs to be published. + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2026-01-28.md b/openmp-wg/meeting-minutes/openmp-minutes-2026-01-28.md new file mode 100644 index 0000000..e7ca9b3 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2026-01-28.md @@ -0,0 +1,119 @@ +### January 28, 2026 + +Agenda + + + + * February 11 meeting canceled due to a conflict with Barcelona F2F. + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245884711&usg=AOvVaw238HwWGP6X3cEAFr3AZTGv) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245885140&usg=AOvVaw3Emn04vDxDzsC_fi5afuD6) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245885250&usg=AOvVaw13AOsLWf_Fcp91KljzZb_r) + * Any specific bugs to look at? + + + * Support for Fortran API with adapter routines + + + * Deferred to early 2026 + * Michael Klemm to follow up with Intel OpenMP runtime devs. + * Some C/C++ interfaces can no longer be exported with '_' added + + + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245885865&usg=AOvVaw3wOhKRPzbeHiQYEmlWGDuV)) + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/169909](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169909&sa=D&source=editors&ust=1778600245886039&usg=AOvVaw24uRhYe8y0tGmFDvME2uAm) + * [https://github.com/llvm/llvm-project/pull/169638](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169638&sa=D&source=editors&ust=1778600245886154&usg=AOvVaw0pCxO7daootzHyHq7HPjO3) + * [https://github.com/llvm/llvm-project/pull/171515](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171515&sa=D&source=editors&ust=1778600245886273&usg=AOvVaw2baEs3OxKNhT6qPBedKvhN) + + + * ADDED: offload ToolChain fall back to host's builtin modules + + + * Extracted smaller PRs at reviewer request: + + + * [https://github.com/llvm/llvm-project/pull/171610](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171610&sa=D&source=editors&ust=1778600245886513&usg=AOvVaw1UCjpHjWz-h8xU0R1aOqEc) + * [https://github.com/llvm/llvm-project/pull/177953](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/177953&sa=D&source=editors&ust=1778600245886644&usg=AOvVaw3possvW4x_JcPnOvo2mCjh) + + + * Removing standalone/LLVM_ENABLE_PROJECTS build modes + + + * [https://github.com/llvm/llvm-project/pull/170693](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170693&sa=D&source=editors&ust=1778600245886826&usg=AOvVaw14CHo3EXT017W9xaXPfQ3h) + * [https://github.com/llvm/llvm-project/pull/152189](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152189&sa=D&source=editors&ust=1778600245886936&usg=AOvVaw2AwmojNGWhkcXKAZlCgs8K) + * [https://github.com/llvm/llvm-project/pull/149878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/149878&sa=D&source=editors&ust=1778600245887043&usg=AOvVaw1w_PywenCyObNdzTmWb1dq) + * [https://github.com/llvm/llvm-project/pull/162904](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/162904&sa=D&source=editors&ust=1778600245887164&usg=AOvVaw0wgbyH7of5UNn-81_FZcYF) + + + * Previous patches broke the documentation build for [llvm.org](https://www.google.com/url?q=http://llvm.org&sa=D&source=editors&ust=1778600245887279&usg=AOvVaw0k81KlGxaI0TyNiEJjvPMf) + * Removing "standalone build" creates the impression that the build will always require LLVM to be built as well, which is not true. + + + * [https://github.com/llvm/llvm-zorg/pull/699](https://www.google.com/url?q=https://github.com/llvm/llvm-zorg/pull/699&sa=D&source=editors&ust=1778600245887514&usg=AOvVaw0TFphM1Z70Up-PV3vEDufr) ([docs][openmp] Switch to LLVM_ENABLE_RUNTIMES build) + * [https://github.com/llvm/llvm-project/pull/176948](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176948&sa=D&source=editors&ust=1778600245887667&usg=AOvVaw0A0nMn0oK3PSap-J79hqIl) ([runtimes] Share doxygen handling with LLVM) + * [https://github.com/llvm/llvm-zorg/pull/716](https://www.google.com/url?q=https://github.com/llvm/llvm-zorg/pull/716&sa=D&source=editors&ust=1778600245887805&usg=AOvVaw37woOkeCO9jWYcjhp6UXd9) (rejected by maintainer) + * [https://github.com/llvm/llvm-project/pull/178298](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/178298&sa=D&source=editors&ust=1778600245887932&usg=AOvVaw0FvEMK_HqTn1H5KbikyhIW) ([openmp] Build doxygen in bootstrapping builds) + + + * Code style for LLVM OpenMP project: + + + * About 5% in new LLVM coding style + * Remainder in old KMP coding style + * Which way should we be going? + * ~100kloc, written in C++, but not using any C++ features that require linking C++ runtime + * Joseph: remain consistent with what's already there, change the "new style" code back into the old style. + + + * Virtual function calls on target + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245888543&usg=AOvVaw06TjR3oaZDPWxZpBgxroqL) (merged) + * Create indirect call table, do binary search. Assumes Itanium ABI at the moment. + * Supports indirect function calls as well. + * One more PR coming (for codegen): [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245888845&usg=AOvVaw3TW5dQTDsM2LuyvC-ck5GN) + * + + * Call for review: + + + * Virtual function support: + + + * [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245889059&usg=AOvVaw1J1yEVy2ZtBzFAux2IYOlq) + + + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245889195&usg=AOvVaw3YgxB-Th8hGulmlRfg6k8v), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245889256&usg=AOvVaw3V1EQXkLTxdamPDLnW3Sjp), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245889316&usg=AOvVaw2Fn4IDbymtWom_TQXEPahp)) + + + * Kevin: Performance degradation detected, needs few fixes + + + * OMPT upstreaming plans from AMD + + + * AMD plans to provide an update to this group on Feb 25th, 2026. + + + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2026-02-25.md b/openmp-wg/meeting-minutes/openmp-minutes-2026-02-25.md new file mode 100644 index 0000000..ee43358 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2026-02-25.md @@ -0,0 +1,140 @@ +### February 25, 2026 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245878397&usg=AOvVaw1m0rnu5Pa5qbNWLuOg-XRQ) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * OMPT upstreaming plans from AMD + + + * AMD plans to provide an update to this group on Feb 25th, 2026. + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245878931&usg=AOvVaw0hsGzvpHgwgFVPYAubkYk4) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245879035&usg=AOvVaw0_KaQrQOHFm7ul1Y3sGBMx) + * [OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aopenmp&sa=D&source=editors&ust=1778600245879133&usg=AOvVaw1AZqBXYq5RMxv0WzxMEUCy) + * Any specific bugs to look at? + + + * Support for Fortran API with adapter routines + + + * Deferred to early 2026 + * Michael Klemm to follow up with Intel OpenMP runtime devs. + * Some C/C++ interfaces can no longer be exported with '_' added + + + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245879758&usg=AOvVaw2aqKemeoN3QrleTNVB56dY)) + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/169909](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169909&sa=D&source=editors&ust=1778600245879957&usg=AOvVaw2tk1PKMS_FPIF830h6bkkj) (merged) + * [https://github.com/llvm/llvm-project/pull/169638](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169638&sa=D&source=editors&ust=1778600245880135&usg=AOvVaw3oRmr7oZ96NY5pH_q_qVBT) (merged) + * [https://github.com/llvm/llvm-project/pull/171515](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171515&sa=D&source=editors&ust=1778600245880268&usg=AOvVaw3eTHI9lTJNvV_Tgjk2Er2h) + + + * ADDED: offload ToolChain fall back to host's builtin modules + + + * Extracted smaller PRs at reviewer request: + + + * [https://github.com/llvm/llvm-project/pull/171610](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171610&sa=D&source=editors&ust=1778600245880514&usg=AOvVaw3m7Z4QwPFeM1wapsrVCxj5) + * [https://github.com/llvm/llvm-project/pull/177953](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/177953&sa=D&source=editors&ust=1778600245880636&usg=AOvVaw09LIHauCte_TMGbo2dAhmR) + + + * Removing standalone/LLVM_ENABLE_PROJECTS build modes + + + * [https://github.com/llvm/llvm-project/pull/170693](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170693&sa=D&source=editors&ust=1778600245880830&usg=AOvVaw2WRP_XYAjly2D0Ejvq_6II) + * [https://github.com/llvm/llvm-project/pull/152189](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152189&sa=D&source=editors&ust=1778600245880941&usg=AOvVaw3R792kkEqaCZ53jsdCfZnr) (merged) + * [https://github.com/llvm/llvm-project/pull/149878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/149878&sa=D&source=editors&ust=1778600245881067&usg=AOvVaw05jy9V_8Gx64b3IouWdhyE) (merged) + * [https://github.com/llvm/llvm-project/pull/162904](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/162904&sa=D&source=editors&ust=1778600245881217&usg=AOvVaw2Lwxg9iRgl_uJ_aiEE4gfk) (closed) + + + * Previous patches broke the documentation build for [llvm.org](https://www.google.com/url?q=http://llvm.org&sa=D&source=editors&ust=1778600245881361&usg=AOvVaw2Sl4dtmhEBPyauRrQ1lrVA) + * Removing "standalone build" creates the impression that the build will always require LLVM to be built as well, which is not true. + + + * [https://github.com/llvm/llvm-zorg/pull/699](https://www.google.com/url?q=https://github.com/llvm/llvm-zorg/pull/699&sa=D&source=editors&ust=1778600245881603&usg=AOvVaw1McN-wXJy_ikxHDI9L_k-6) (merged) + + + * ([docs][openmp] Switch to LLVM_ENABLE_RUNTIMES build) + + + * [https://github.com/llvm/llvm-project/pull/176948](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176948&sa=D&source=editors&ust=1778600245881804&usg=AOvVaw00iEZtGHSfIbL2GKRk5FrQ) (merged) + + + * ([runtimes] Share doxygen handling with LLVM) + + + * [https://github.com/llvm/llvm-zorg/pull/716](https://www.google.com/url?q=https://github.com/llvm/llvm-zorg/pull/716&sa=D&source=editors&ust=1778600245882020&usg=AOvVaw2i51QAL5QAvs8KtCCs778s) (closed) + + + * (rejected by maintainer) + + + * [https://github.com/llvm/llvm-project/pull/178298](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/178298&sa=D&source=editors&ust=1778600245882217&usg=AOvVaw0lr29HxUacIm-le51Iujrf) (merged) + + + * ([openmp] Build doxygen in bootstrapping builds) + + + * Virtual function calls on target + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245882468&usg=AOvVaw2hSi8fTw5hhcnWlGUpyl8f) (merged) + * Create indirect call table, do binary search. Assumes Itanium ABI at the moment. + * Supports indirect function calls as well. + * One more PR coming (for codegen): [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245882761&usg=AOvVaw1QIbFutiiaNYmi--03TXLD) + + + * Modern libomp development + + + * [[libomp] Add kmp_str_ref (ADT 1/2) by ro-i * Pull Request #176162 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176162&sa=D&source=editors&ust=1778600245882944&usg=AOvVaw3oMWxbb2AbAwPk6p7a_FaK) + * [[libomp] Add kmp_vector (ADT 2/2) by ro-i * Pull Request #176163 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176163&sa=D&source=editors&ust=1778600245883085&usg=AOvVaw1AzbWUSYVIMnjr0VVBdUwt) + * libomp is C++-ish, but should not link against the C++ stdlib + * Most C++ stdlib features (e.g. std::vector) cannot be used + * LLVM features, such as llvm::StringRef or llvm::SmallVector, cannot be used + * -> introduce Advanced Data Types for libomp (currently kmp_str_ref and kmp_vector) to improve the development situation and make new features, such as [[libomp] OpenMP 6.0: Add device trait parser by ro-i * Pull Request #176164 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176164&sa=D&source=editors&ust=1778600245883611&usg=AOvVaw163CimdRRoW3VIqKUBM7aK), more streamlined and less annoying to review + + + * Call for review: + + + * Virtual function support: + + + * [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245883858&usg=AOvVaw3jl_spuV9l_WQTh1QKb6kU) + + + * [OpenMP][Offload] Add support for dyn_groupprivate clause ([#152651](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152651&sa=D&source=editors&ust=1778600245883986&usg=AOvVaw1-X70Jbp4998koUHGp0jSi), [#152830](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152830&sa=D&source=editors&ust=1778600245884041&usg=AOvVaw0QpXDNv04TN9D8HXc1jm2Y), [#152831](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152831&sa=D&source=editors&ust=1778600245884096&usg=AOvVaw1RnYGvc8Zg_mqHSsbBv5rZ)) + + + * Kevin: Fix approved by lang committee; PR update coming soon + + + +* * * + + * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2026-03-11.md b/openmp-wg/meeting-minutes/openmp-minutes-2026-03-11.md new file mode 100644 index 0000000..1acf5e4 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2026-03-11.md @@ -0,0 +1,145 @@ +### March 11, 2026 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245871900&usg=AOvVaw0N4jUo4VUsTOrhRRGn6uRF) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245872326&usg=AOvVaw1FjazUAeU4nhX22ZqgtLnl) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245872440&usg=AOvVaw1RQ_PNwVHB7O_eMfZpAQ1M) + * [OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aopenmp&sa=D&source=editors&ust=1778600245872541&usg=AOvVaw2u1FiJgI_WQUUOQc6IGNt7) + * Any specific bugs to look at? + + + * Support for Fortran API with adapter routines + + + * Deferred to early 2026 + * Michael Klemm to follow up with Intel OpenMP runtime devs. + * Some C/C++ interfaces catn no longer be exported with '_' added + + + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245873212&usg=AOvVaw2nP90HCoLtM1QrbXldYwPc)) + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/169909](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169909&sa=D&source=editors&ust=1778600245873386&usg=AOvVaw1SJKBhvcmw4ppso40pyWPY) (merged) + * [https://github.com/llvm/llvm-project/pull/169638](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/169638&sa=D&source=editors&ust=1778600245873510&usg=AOvVaw3dnk6Ki6oZvLACj-YM_qgm) (merged) + * [https://github.com/llvm/llvm-project/pull/171515](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171515&sa=D&source=editors&ust=1778600245873648&usg=AOvVaw0GiBh2S0iC0w-PQar6QHtq) + + + * ADDED: offload ToolChain fall back to host's builtin modules + + + * Extracted smaller PRs at reviewer request: + + + * [https://github.com/llvm/llvm-project/pull/171610](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171610&sa=D&source=editors&ust=1778600245873892&usg=AOvVaw31Z-1b9gTrokH3r0EdRfrQ) + * [https://github.com/llvm/llvm-project/pull/177953](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/177953&sa=D&source=editors&ust=1778600245874021&usg=AOvVaw2p4GHzaf-CIH4xiG2t0Phg) + + + * Removing standalone/LLVM_ENABLE_PROJECTS build modes + + + * [https://github.com/llvm/llvm-project/pull/170693](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170693&sa=D&source=editors&ust=1778600245874223&usg=AOvVaw0-Y7D4f_JDYW-ptjQWEFjk) + + + * Talk about splitting this into openmp and offload + + + * [https://github.com/llvm/llvm-project/pull/152189](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/152189&sa=D&source=editors&ust=1778600245874441&usg=AOvVaw0n9oP2ntjxUu51uoNGqtt3) (merged) + * [https://github.com/llvm/llvm-project/pull/149878](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/149878&sa=D&source=editors&ust=1778600245874570&usg=AOvVaw1W89hT4xWBaEAAdh-l1qT3) (merged) + * [https://github.com/llvm/llvm-project/pull/162904](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/162904&sa=D&source=editors&ust=1778600245874723&usg=AOvVaw14Myl0ZgnLJvOQyaJFqJ6B) (closed) + + + * Previous patches broke the documentation build for [llvm.org](https://www.google.com/url?q=http://llvm.org&sa=D&source=editors&ust=1778600245874868&usg=AOvVaw0suQLlB6jHzO639zzcQAJl) + * Removing "standalone build" creates the impression that the build will always require LLVM to be built as well, which is not true. + + + * [https://github.com/llvm/llvm-zorg/pull/699](https://www.google.com/url?q=https://github.com/llvm/llvm-zorg/pull/699&sa=D&source=editors&ust=1778600245875125&usg=AOvVaw0V0uuudCMA9E9bNfVV70n8) (merged) + + + * ([docs][openmp] Switch to LLVM_ENABLE_RUNTIMES build) + + + * [https://github.com/llvm/llvm-project/pull/176948](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176948&sa=D&source=editors&ust=1778600245875347&usg=AOvVaw2z-cAWjfnaX0YMGJ5LUa-B) (merged) + + + * ([runtimes] Share doxygen handling with LLVM) + + + * [https://github.com/llvm/llvm-zorg/pull/716](https://www.google.com/url?q=https://github.com/llvm/llvm-zorg/pull/716&sa=D&source=editors&ust=1778600245875541&usg=AOvVaw3jeiQOWzyLYCs3p0mSIaOU) (closed) + + + * (rejected by maintainer) + + + * [https://github.com/llvm/llvm-project/pull/178298](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/178298&sa=D&source=editors&ust=1778600245875717&usg=AOvVaw3PUYYmasjOKNyUfBTkVYRa) (merged) + + + * ([openmp] Build doxygen in bootstrapping builds) + + + * Virtual function calls on target + + + * [https://github.com/llvm/llvm-project/pull/159856](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159856&sa=D&source=editors&ust=1778600245875973&usg=AOvVaw0_nItxd8CCgUdPVD6uzzW3) (merged) + * Create indirect call table, do binary search. Assumes Itanium ABI at the moment. + * Supports indirect function calls as well. + * One more PR coming (for codegen): [https://github.com/llvm/llvm-project/pull/159857](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/159857&sa=D&source=editors&ust=1778600245876273&usg=AOvVaw3ZR65aDjlUOPugo3dfKZen) (merged) + + + * Modern libomp development + + + * [[libomp] Add kmp_str_ref (ADT 1/2) by ro-i * Pull Request #176162 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176162&sa=D&source=editors&ust=1778600245876490&usg=AOvVaw11xJnQUcjR7UtUHoByHwE5) + * [[libomp] Add kmp_vector (ADT 2/2) by ro-i * Pull Request #176163 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176163&sa=D&source=editors&ust=1778600245876635&usg=AOvVaw0VZx9QJ7LJyd_pupDXtZrn) + * libomp is C++-ish, but should not link against the C++ stdlib + * Most C++ stdlib features (e.g. std::vector) cannot be used + * LLVM features, such as llvm::StringRef or llvm::SmallVector, cannot be used + * -> introduce Advanced Data Types for libomp (currently kmp_str_ref and kmp_vector) to improve the development situation and make new features, such as [[libomp] OpenMP 6.0: Add device trait parser by ro-i * Pull Request #176164 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176164&sa=D&source=editors&ust=1778600245877181&usg=AOvVaw19oSSVPMbgqrgxCtq2TsT1), more streamlined and less annoying to review + + + * OMPT presentation: + + + * Requesting feedback + * Questions/requests: + + + * Could multiple profilers be supported? + * Could profilers be selected at runtime instead of build time? + + + * Out of scope for the current effort. May be implemented later. + * There is currently only one profiler, which is enabled via #ifdef in the source code. + + + * How will the current implementation be affected when libomptarget is implemented on top of liboffload? + * Could there be filtering mechanisms (e.g. to only trace interactions between the host and the device)? + + + * The preference of the community is for the work to be done upstream + + + * Call for review: + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2026-03-25.md b/openmp-wg/meeting-minutes/openmp-minutes-2026-03-25.md new file mode 100644 index 0000000..7318380 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2026-03-25.md @@ -0,0 +1,115 @@ +### March 25, 2026 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245866221&usg=AOvVaw2chMb0H4QKkYmak0az-ZiP) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245866646&usg=AOvVaw1dxA3AlAC7-esZjCEVa1Da) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245866759&usg=AOvVaw1c8fRqzCjEY7IkTyLWYeID) + * [OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aopenmp&sa=D&source=editors&ust=1778600245866850&usg=AOvVaw1IwvBiNOwBWfFH-GXSYoE_) + * Any specific bugs to look at? + + + * Move (Flang) OpenMP extensions from OpenMPSupport.md to OpenMP-extensions.md. + + + * PR: [https://github.com/llvm/llvm-project/pull/186981](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/186981&sa=D&source=editors&ust=1778600245867148&usg=AOvVaw1Bh2y9bLp2hX0IK4iIPLFn) + + + * PR [https://github.com/llvm/llvm-project/pull/188434](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/188434&sa=D&source=editors&ust=1778600245867275&usg=AOvVaw0bCrct6sv69T93rl6gyTnv) to fix "broken" -W options for OpenMP. + + + * RFC: [https://discourse.llvm.org/t/openmp-misspelling-of-wopen-mp/90196](https://www.google.com/url?q=https://discourse.llvm.org/t/openmp-misspelling-of-wopen-mp/90196&sa=D&source=editors&ust=1778600245867482&usg=AOvVaw3pCX13kC4G_s7JR0m0F4By) + + + * Support for Fortran API with adapter routines + + + * Deferred to early 2026 + * Michael Klemm to follow up with Intel OpenMP runtime devs. + * Some C/C++ interfaces can no longer be exported with '_' added + + + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245868066&usg=AOvVaw3G2kKisINwbBJWDk0QGN32)) + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/171515](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171515&sa=D&source=editors&ust=1778600245868276&usg=AOvVaw1qgbMY_0pgJ1KPj1SCGYM4) + + + * ADDED: offload ToolChain fall back to host's builtin modules + + + * Extracted smaller PRs at reviewer request: + + + * [https://github.com/llvm/llvm-project/pull/171610](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171610&sa=D&source=editors&ust=1778600245868526&usg=AOvVaw0GjSCf5WH2fV97jIs3RzsF) (approved under condition that @petrhosek also approves) + * [https://github.com/llvm/llvm-project/pull/177953](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/177953&sa=D&source=editors&ust=1778600245868712&usg=AOvVaw0WXsH5z-tgZLEXerGZ-vH4) (approved) + * [https://github.com/llvm/llvm-project/pull/187868](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/187868&sa=D&source=editors&ust=1778600245868834&usg=AOvVaw3bN7aWajjW_ehDmU2QzJko) (approved) + + + * Modern libomp development + + + * Runtime needs to parse context-selectors, for that using certain C++/LLVM runtime utilities can help. + * [[libomp] Add kmp_str_ref (ADT 1/2) by ro-i * Pull Request #176162 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176162&sa=D&source=editors&ust=1778600245869174&usg=AOvVaw09tbyuY3wWrPJlF9sPbhNB) + * [[libomp] Add kmp_vector (ADT 2/2) by ro-i * Pull Request #176163 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176163&sa=D&source=editors&ust=1778600245869326&usg=AOvVaw3U8T8lwaJApRo_xSmkdIUP) + * libomp is C++-ish, but should not link against the C++ stdlib + * Most C++ stdlib features (e.g. std::vector) cannot be used + * LLVM features, such as llvm::StringRef or llvm::SmallVector, cannot be used (because they can use C++ runtime features internally) + * -> introduce Advanced Data Types for libomp (currently kmp_str_ref and kmp_vector) to improve the development situation and make new features, such as [[libomp] OpenMP 6.0: Add device trait parser by ro-i * Pull Request #176164 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176164&sa=D&source=editors&ust=1778600245869894&usg=AOvVaw2n5LT2iCbwAh1NTXt8oLEb), more streamlined and less annoying to review + * Joachim: Sanitizers have a similar restriction, they supply their own implementations of certain data structures. + * Michael: Same for flang-rt. + * Abhinav: liboffload uses llvm::SmallVector, why libomp can't? + * Joachim: liboffload is only usable with clang, libomp can be used with a variety of compilers. + * Michael: Using liboffload with flang is also sub-optimal. + * Alex: Why does it matter that C++RT would be required? We could statically link the C++RT if ABI compatibility is the issue + * Joachim: maybe we could still use C++RT but with all names inside of some namespace to avoid mismatches with names from different C++RT implementations. + * Michael: libc contains copies of libc++ standard headers to be independent from the actual C++ implementation. + + + * OMPT presentation: + + + * Requesting feedback + * Questions/requests: + + + * Could multiple profilers be supported? + * Could profilers be selected at runtime instead of build time? + + + * Out of scope for the current effort. May be implemented later. + * There is currently only one profiler, which is enabled via #ifdef in the source code. + + + * How will the current implementation be affected when libomptarget is implemented on top of liboffload? + * Could there be filtering mechanisms (e.g. to only trace interactions between the host and the device)? + + + * The preference of the community is for the work to be done upstream + + + +Call for review: + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2026-04-08.md b/openmp-wg/meeting-minutes/openmp-minutes-2026-04-08.md new file mode 100644 index 0000000..3670106 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2026-04-08.md @@ -0,0 +1,99 @@ +### April 8, 2026 + +Agenda + + + + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245860622&usg=AOvVaw0zAnkwPVGmhmQmnD7YHld2) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245861049&usg=AOvVaw1Gaq4_d2Qb983MV_Ic-zPV) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245861161&usg=AOvVaw0h7ounMRC-7qYn6NHi5JeI) + * [OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aopenmp&sa=D&source=editors&ust=1778600245861257&usg=AOvVaw3b3qxZTZ5lTOy2tsMKq8ra) + * Any specific bugs to look at? + + + * Move (Flang) OpenMP extensions from OpenMPSupport.md to OpenMP-extensions.md. + + + * PR: [https://github.com/llvm/llvm-project/pull/186981](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/186981&sa=D&source=editors&ust=1778600245861524&usg=AOvVaw0vdCENtNNC_rgPDPWrV0qi) + + + * PR [https://github.com/llvm/llvm-project/pull/188434](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/188434&sa=D&source=editors&ust=1778600245861675&usg=AOvVaw1wJG1kZF7ERVhW9X8wWZHv) to fix "broken" -W options for OpenMP. + + + * RFC: [https://discourse.llvm.org/t/openmp-misspelling-of-wopen-mp/90196](https://www.google.com/url?q=https://discourse.llvm.org/t/openmp-misspelling-of-wopen-mp/90196&sa=D&source=editors&ust=1778600245861880&usg=AOvVaw1o2oqJeL3XS4bWBdUtz-3M) + * Will remain open until the end of April for visibility. + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/171515](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171515&sa=D&source=editors&ust=1778600245862130&usg=AOvVaw3iwWWqEFKfSJtRDSPGEJs7) + + + * ADDED: offload ToolChain fall back to host's builtin modules + + + * Extracted smaller PRs at reviewer request: + + + * [https://github.com/llvm/llvm-project/pull/171610](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171610&sa=D&source=editors&ust=1778600245862382&usg=AOvVaw0OmqyOqRozj70vj8Q3A7_u) (approved under condition that @petrhosek also approves) + * [https://github.com/llvm/llvm-project/pull/177953](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/177953&sa=D&source=editors&ust=1778600245862546&usg=AOvVaw0tcLroq9DQM23ybxEIDEXW) (merged) + * [https://github.com/llvm/llvm-project/pull/187868](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/187868&sa=D&source=editors&ust=1778600245862660&usg=AOvVaw2bsIL92Yxaja9v1U4B5iB5) (merged) + + + * Modern libomp development + + + * New (2026-04-08): [Meta RFC: ADTs without C++ runtime dependency - LLVM Project - LLVM Discussion Forums](https://www.google.com/url?q=https://discourse.llvm.org/t/meta-rfc-adts-without-c-runtime-dependency/90317&sa=D&source=editors&ust=1778600245862903&usg=AOvVaw3tyq31ILOiAe81-AZKlk_l) + * Runtime needs to parse context-selectors, for that using certain C++/LLVM runtime utilities can help. + * [[libomp] Add kmp_str_ref (ADT 1/2) by ro-i * Pull Request #176162 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176162&sa=D&source=editors&ust=1778600245863174&usg=AOvVaw0F0LhVpLgHnHcHihVnslqm) + * [[libomp] Add kmp_vector (ADT 2/2) by ro-i * Pull Request #176163 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176163&sa=D&source=editors&ust=1778600245863332&usg=AOvVaw04U7xlQO2NiEmHzJVQyWNN) + * libomp is C++-ish, but should not link against the C++ stdlib + * Most C++ stdlib features (e.g. std::vector) cannot be used + * LLVM features, such as llvm::StringRef or llvm::SmallVector, cannot be used (because they can use C++ runtime features internally) + * -> introduce Advanced Data Types for libomp (currently kmp_str_ref and kmp_vector) to improve the development situation and make new features, such as [[libomp] OpenMP 6.0: Add device trait parser by ro-i * Pull Request #176164 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176164&sa=D&source=editors&ust=1778600245863895&usg=AOvVaw0gywTRG3zAUZeInQ2mGv_8), more streamlined and less annoying to review + * Joachim: Sanitizers have a similar restriction, they supply their own implementations of certain data structures. + * Michael: Same for flang-rt. + * Abhinav: liboffload uses llvm::SmallVector, why libomp can't? + * Joachim: liboffload is only usable with clang, libomp can be used with a variety of compilers. + * Michael: Using liboffload with flang is also sub-optimal. + * Alex: Why does it matter that C++RT would be required? We could statically link the C++RT if ABI compatibility is the issue + * Joachim: maybe we could still use C++RT but with all names inside of some namespace to avoid mismatches with names from different C++RT implementations. + * Michael: libc contains copies of libc++ standard headers to be independent from the actual C++ implementation. + * For now: proceed with the PRs as an interim solution until the common runtime discussion is finalized + + + * Call for review: + * Support for Fortran API with adapter routines + + + * Deferred to early 2026 + * Michael Klemm to follow up with Intel OpenMP runtime devs. + * Some C/C++ interfaces can no longer be exported with '_' added + + + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245865548&usg=AOvVaw04IaHqiEesDhiRAJts9Q-s)) + + + * Michael is testing this with different OSs. + + + * In old-school Fortran, where nothing is declared, the compiler will mangle RT names in ways that are incompatible with this implementation. This is a blocker, since there is still a lot of code that follows that. + +* * * diff --git a/openmp-wg/meeting-minutes/openmp-minutes-2026-04-22.md b/openmp-wg/meeting-minutes/openmp-minutes-2026-04-22.md new file mode 100644 index 0000000..5c83304 --- /dev/null +++ b/openmp-wg/meeting-minutes/openmp-minutes-2026-04-22.md @@ -0,0 +1,104 @@ +### April 22, 2026 + +Agenda + + + + * May 6 meeting canceled due to OpenMP F2F. + * Where are we right now regarding documents, such as what features are supported and what are not? + + + * [https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst](https://www.google.com/url?q=https://github.com/llvm/llvm-project/blob/main/clang/docs/OpenMPSupport.rst&sa=D&source=editors&ust=1778600245854053&usg=AOvVaw3TBV6umOdXlRwhfM5Co7DB) + * Open a PR and add mjklemm and/or jhuber6 and/or kparzysz as reviewers, open it when the work starts to avoid duplication of effort. + + + * If you have commit access, you can make the change yourself. + + + * Github will auto-merge PRs that pass CI (and are approved?) + + + * Issues: + + + * [Clang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aclang%253Aopenmp&sa=D&source=editors&ust=1778600245854509&usg=AOvVaw0wlrBCwgoCAp1UHhibMrui) + * [Flang OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aflang%253Aopenmp&sa=D&source=editors&ust=1778600245854620&usg=AOvVaw1wT9kEvpYBZEjjFATHPmqd) + * [OpenMP issues](https://www.google.com/url?q=https://github.com/llvm/llvm-project/issues?q%3Dis%253Aissue%2520state%253Aopen%2520label%253Aopenmp&sa=D&source=editors&ust=1778600245854712&usg=AOvVaw2mOa9f5NBlRquLtaSNyhrr) + * Any specific bugs to look at? + + + * Move (Flang) OpenMP extensions from OpenMPSupport.md to OpenMP-extensions.md. + + + * PR: [https://github.com/llvm/llvm-project/pull/186981](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/186981&sa=D&source=editors&ust=1778600245855018&usg=AOvVaw1xE2d9q6SIJRq3moFuCGWv) \- merged + + + * PR [https://github.com/llvm/llvm-project/pull/188434](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/188434&sa=D&source=editors&ust=1778600245855185&usg=AOvVaw0lcQKe0zvQbw_FDXqvFe6f) to fix "broken" -W options for OpenMP. + + + * RFC: [https://discourse.llvm.org/t/openmp-misspelling-of-wopen-mp/90196](https://www.google.com/url?q=https://discourse.llvm.org/t/openmp-misspelling-of-wopen-mp/90196&sa=D&source=editors&ust=1778600245855380&usg=AOvVaw0Tb8oLq2g72a_zKs0SCEoX) + * Will remain open until the end of April for visibility. + + + * Changes for building Flang omp_lib.mod + + + * [https://github.com/llvm/llvm-project/pull/171515](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171515&sa=D&source=editors&ust=1778600245855627&usg=AOvVaw2JL0lEhOvCfJeKd9yoo3nH) + + + * ADDED: offload ToolChain fall back to host's builtin modules + + + * Extracted smaller PRs at reviewer request: + + + * [https://github.com/llvm/llvm-project/pull/171610](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/171610&sa=D&source=editors&ust=1778600245855876&usg=AOvVaw1kIp89uV7P8mNjLzcEwrkj) (merged) + * [https://github.com/llvm/llvm-project/pull/177953](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/177953&sa=D&source=editors&ust=1778600245856002&usg=AOvVaw2IH6VXA0TuOoP7iDOdZpCp) (merged) + * [https://github.com/llvm/llvm-project/pull/187868](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/187868&sa=D&source=editors&ust=1778600245856126&usg=AOvVaw1dDQRm5vWeXUZOXPhFiHBs) (merged) + + + * More progress has been made. Michael dealing with the fallout due to cmake's expectations. + * Discourse post about #include "omp_lib.h" not working anymore due to a difference in paths. + + + * Modern libomp development + + + * New (2026-04-08): [Meta RFC: ADTs without C++ runtime dependency - LLVM Project - LLVM Discussion Forums](https://www.google.com/url?q=https://discourse.llvm.org/t/meta-rfc-adts-without-c-runtime-dependency/90317&sa=D&source=editors&ust=1778600245856555&usg=AOvVaw2bWJ-XoqeXLtjJmorbYN5i) + * Runtime needs to parse context-selectors, for that using certain C++/LLVM runtime utilities can help. + * [[libomp] Add kmp_str_ref (ADT 1/2) by ro-i * Pull Request #176162 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176162&sa=D&source=editors&ust=1778600245857464&usg=AOvVaw3aZgE8DLb6eUE-0-wx3u9U) + * [[libomp] Add kmp_vector (ADT 2/2) by ro-i * Pull Request #176163 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176163&sa=D&source=editors&ust=1778600245857642&usg=AOvVaw3eHADrubcz-EQ-qgJjGi9N) + * libomp is C++-ish, but should not link against the C++ stdlib + * Most C++ stdlib features (e.g. std::vector) cannot be used + * LLVM features, such as llvm::StringRef or llvm::SmallVector, cannot be used (because they can use C++ runtime features internally) + * -> introduce Advanced Data Types for libomp (currently kmp_str_ref and kmp_vector) to improve the development situation and make new features, such as [[libomp] OpenMP 6.0: Add device trait parser by ro-i * Pull Request #176164 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/176164&sa=D&source=editors&ust=1778600245858276&usg=AOvVaw2VsGF0b1Chfd6PGAsZJOCU), more streamlined and less annoying to review + * Joachim: Sanitizers have a similar restriction, they supply their own implementations of certain data structures. + * Michael: Same for flang-rt. + * Abhinav: liboffload uses llvm::SmallVector, why libomp can't? + * Joachim: liboffload is only usable with clang, libomp can be used with a variety of compilers. + * Michael: Using liboffload with flang is also sub-optimal. + * Alex: Why does it matter that C++RT would be required? We could statically link the C++RT if ABI compatibility is the issue + * Joachim: maybe we could still use C++RT but with all names inside of some namespace to avoid mismatches with names from different C++RT implementations. + * Michael: libc contains copies of libc++ standard headers to be independent from the actual C++ implementation. + * For now: proceed with the PRs as an interim solution until the common runtime discussion is finalized + + + * Call for review: + * Support for Fortran API with adapter routines + + + * Deferred to early 2026 + * Michael Klemm to follow up with Intel OpenMP runtime devs. + * Some C/C++ interfaces can no longer be exported with '_' added + + + * Fortran adapter layer might be needed for future OpenMP API routines + * Current example: omp_get_device_from_uid() and omp_get_uid_from_device() (see [[OpenMP] Add Fortran support for omp_* functions needing adapters by ro-i * Pull Request #170374 * llvm/llvm-project](https://www.google.com/url?q=https://github.com/llvm/llvm-project/pull/170374&sa=D&source=editors&ust=1778600245859923&usg=AOvVaw3c9MesQDorNxLCQlvxs50H)) + + + * Michael is testing this with different OSs. + + + * In old-school Fortran, where nothing is declared, the compiler will mangle RT names in ways that are incompatible with this implementation. This is a blocker, since there is still a lot of code that follows that. + +* * *