<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/openmp/runtime/src/kmp_dispatch.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[OpenMP][OMPT] Indicate loop schedule for worksharing-loop events (#97429)</title>
<updated>2024-07-03T07:33:19+00:00</updated>
<author>
<name>Joachim</name>
<email>jenke@itc.rwth-aachen.de</email>
</author>
<published>2024-07-03T07:33:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a707d0883b5ab9de6a0a864df614ef14909a4de1'/>
<id>a707d0883b5ab9de6a0a864df614ef14909a4de1</id>
<content type='text'>
Use more specific values from `ompt_work_t` to allow the tool identify
the schedule of a worksharing-loop. With this patch, the runtime will
report the schedule chosen by the runtime rather than necessarily the
schedule literally requested by the clause.
E.g., for guided + just one iteration per thread, the runtime would
choose and report static.

Fixes issue #63904</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use more specific values from `ompt_work_t` to allow the tool identify
the schedule of a worksharing-loop. With this patch, the runtime will
report the schedule chosen by the runtime rather than necessarily the
schedule literally requested by the clause.
E.g., for guided + just one iteration per thread, the runtime would
choose and report static.

Fixes issue #63904</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP][offload] Fix dynamic schedule tracking (#97065)</title>
<updated>2024-07-01T14:23:11+00:00</updated>
<author>
<name>Gheorghe-Teodor Bercea</name>
<email>doru.bercea@amd.com</email>
</author>
<published>2024-07-01T14:23:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1a478a69bc4f2781c14fd045c202838786fb9062'/>
<id>1a478a69bc4f2781c14fd045c202838786fb9062</id>
<content type='text'>
This patch fixes the dynamic schedule tracking.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes the dynamic schedule tracking.</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Use a memory fence before incrementing the dispatch buffer index (#87995)</title>
<updated>2024-04-16T17:13:49+00:00</updated>
<author>
<name>Xing Xue</name>
<email>xingxue@outlook.com</email>
</author>
<published>2024-04-16T17:13:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=454d4496970f665200b5b300578894d78405b6ca'/>
<id>454d4496970f665200b5b300578894d78405b6ca</id>
<content type='text'>
This patch uses a memory fence in function `__kmp_dispatch_next()` to
flush pending memory write invalidates before incrementing the
`volatile` variable `buffer_index` to fix intermittent time-outs of
OpenMP runtime LIT test cases `env/kmp_set_dispatch_buf.c` and
`worksharing/for/kmp_set_dispatch_buf.c`, noting that the same is needed
for incrementing `buffer_index` in function `__kmpc_next_section()`
(line 2600 of `kmp_dispatch.cpp`).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch uses a memory fence in function `__kmp_dispatch_next()` to
flush pending memory write invalidates before incrementing the
`volatile` variable `buffer_index` to fix intermittent time-outs of
OpenMP runtime LIT test cases `env/kmp_set_dispatch_buf.c` and
`worksharing/for/kmp_set_dispatch_buf.c`, noting that the same is needed
for incrementing `buffer_index` in function `__kmpc_next_section()`
(line 2600 of `kmp_dispatch.cpp`).</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Add skewed iteration distribution on hybrid systems (#69946)</title>
<updated>2023-11-08T16:19:37+00:00</updated>
<author>
<name>Jonathan Peyton</name>
<email>jonathan.l.peyton@intel.com</email>
</author>
<published>2023-11-08T16:19:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5cc603cb2244bb46683e4ce801fdf224aa2d1636'/>
<id>5cc603cb2244bb46683e4ce801fdf224aa2d1636</id>
<content type='text'>
This commit adds skewed distribution of iterations in
nonmonotonic:dynamic schedule (static steal) for hybrid systems when
thread affinity is assigned. Currently, it distributes the iterations at
60:40 ratio. Consider this loop with dynamic schedule type,
for (int i = 0; i &lt; 100; ++i). In a hybrid system with 20 hardware
threads (16 CORE and 4 ATOM core), 88 iterations will be assigned to
performance cores and 12 iterations will be assigned to efficient cores.
Each thread with CORE core will process 5 iterations + extras and with
ATOM core will process 3 iterations.

Differential Revision: https://reviews.llvm.org/D152955</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit adds skewed distribution of iterations in
nonmonotonic:dynamic schedule (static steal) for hybrid systems when
thread affinity is assigned. Currently, it distributes the iterations at
60:40 ratio. Consider this loop with dynamic schedule type,
for (int i = 0; i &lt; 100; ++i). In a hybrid system with 20 hardware
threads (16 CORE and 4 ATOM core), 88 iterations will be assigned to
performance cores and 12 iterations will be assigned to efficient cores.
Each thread with CORE core will process 5 iterations + extras and with
ATOM core will process 3 iterations.

Differential Revision: https://reviews.llvm.org/D152955</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP][libomp] Fix stats-gathering for new MSVC sections API</title>
<updated>2023-01-18T17:59:12+00:00</updated>
<author>
<name>Jonathan Peyton</name>
<email>jonathan.l.peyton@intel.com</email>
</author>
<published>2022-12-12T19:25:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f31192253541ef7325a2d90319031a52a638ea78'/>
<id>f31192253541ef7325a2d90319031a52a638ea78</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D139867
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential Revision: https://reviews.llvm.org/D139867
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Fix dynamic schedule assertion failure on AArch64</title>
<updated>2023-01-12T20:43:54+00:00</updated>
<author>
<name>Nawrin Sultana</name>
<email>nawrin.sultana@intel.com</email>
</author>
<published>2022-12-05T23:17:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c17e40ba52f3946baec60c3b5feb182e6b3faefe'/>
<id>c17e40ba52f3946baec60c3b5feb182e6b3faefe</id>
<content type='text'>
This patch fixes assertion failure in dynamic schedule with 8 byte induction
variable. It uses acquire load instead of relaxed to ensure that steal_lock
pointer is not NULL.

Differential Revision: https://reviews.llvm.org/D139373
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes assertion failure in dynamic schedule with 8 byte induction
variable. It uses acquire load instead of relaxed to ensure that steal_lock
pointer is not NULL.

Differential Revision: https://reviews.llvm.org/D139373
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Fix warnings about unused expressions when OMPT_LOOP_DISPATCH is a no-op. NFC.</title>
<updated>2022-08-02T08:16:23+00:00</updated>
<author>
<name>Martin Storsjö</name>
<email>martin@martin.st</email>
</author>
<published>2022-08-02T08:15:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3f25ad335b4ef882cd4e336f9d9ac1606220f572'/>
<id>3f25ad335b4ef882cd4e336f9d9ac1606220f572</id>
<content type='text'>
This fixes warnings like these:

../runtime/src/kmp_dispatch.cpp:2159:24: warning: left operand of comma operator has no effect [-Wunused-value]
    OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr-&gt;u.p.st, status);
                       ^~~~~
../runtime/src/kmp_dispatch.cpp:2159:31: warning: left operand of comma operator has no effect [-Wunused-value]
    OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr-&gt;u.p.st, status);
                              ^~~~~
../runtime/src/kmp_dispatch.cpp:2159:46: warning: left operand of comma operator has no effect [-Wunused-value]
    OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr-&gt;u.p.st, status);
                                     ~~~~~~~ ^~
../runtime/src/kmp_dispatch.cpp:2159:50: warning: expression result unused [-Wunused-value]
    OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr-&gt;u.p.st, status);
                                                 ^~~~~~
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes warnings like these:

../runtime/src/kmp_dispatch.cpp:2159:24: warning: left operand of comma operator has no effect [-Wunused-value]
    OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr-&gt;u.p.st, status);
                       ^~~~~
../runtime/src/kmp_dispatch.cpp:2159:31: warning: left operand of comma operator has no effect [-Wunused-value]
    OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr-&gt;u.p.st, status);
                              ^~~~~
../runtime/src/kmp_dispatch.cpp:2159:46: warning: left operand of comma operator has no effect [-Wunused-value]
    OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr-&gt;u.p.st, status);
                                     ~~~~~~~ ^~
../runtime/src/kmp_dispatch.cpp:2159:50: warning: expression result unused [-Wunused-value]
    OMPT_LOOP_DISPATCH(*p_lb, *p_ub, pr-&gt;u.p.st, status);
                                                 ^~~~~~
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] add 4 custom APIs supporting MSVC OMP codegen</title>
<updated>2022-07-05T22:26:18+00:00</updated>
<author>
<name>Vadim Paretsky</name>
<email>vadim.paretsky@intel.com</email>
</author>
<published>2022-07-05T22:20:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=43d5c4d5394e522be87a9a1dfda24f5ce0e3a855'/>
<id>43d5c4d5394e522be87a9a1dfda24f5ce0e3a855</id>
<content type='text'>
This check-in adds 4 APIs to support MSVC, specifically:

* 3 APIs (__kmpc_sections_init, __kmpc_next_section,
   __kmpc_end_sections) to support the dynamic scheduling of OMP sections.
* 1 API (__kmpc_copyprivate_light, a light-weight version of
  __kmpc_copyrprivate) to support the OMP single copyprivate clause.

Differential Revision: https://reviews.llvm.org/D128403
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This check-in adds 4 APIs to support MSVC, specifically:

* 3 APIs (__kmpc_sections_init, __kmpc_next_section,
   __kmpc_end_sections) to support the dynamic scheduling of OMP sections.
* 1 API (__kmpc_copyprivate_light, a light-weight version of
  __kmpc_copyrprivate) to support the OMP single copyprivate clause.

Differential Revision: https://reviews.llvm.org/D128403
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Add support for ompt_callback_dispatch</title>
<updated>2022-04-06T13:01:02+00:00</updated>
<author>
<name>Hansang Bae</name>
<email>hansang.bae@intel.com</email>
</author>
<published>2022-03-20T21:03:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e4ac11beb7362732396feab1ff257a76484e9d33'/>
<id>e4ac11beb7362732396feab1ff257a76484e9d33</id>
<content type='text'>
This change adds support for ompt_callback_dispatch with the new
dispatch chunk type introduced in 5.2. Definitions of the new
ompt_work_loop types were also added in the header file.

Differential Revision: https://reviews.llvm.org/D122107
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change adds support for ompt_callback_dispatch with the new
dispatch chunk type introduced in 5.2. Definitions of the new
ompt_work_loop types were also added in the header file.

Differential Revision: https://reviews.llvm.org/D122107
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Add use of TPAUSE</title>
<updated>2022-01-18T16:14:32+00:00</updated>
<author>
<name>Terry Wilmarth</name>
<email>terry.l.wilmarth@intel.com</email>
</author>
<published>2021-12-14T21:04:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2e02579a76cf4ea3acdc0e076f53ff9cb15fa38f'/>
<id>2e02579a76cf4ea3acdc0e076f53ff9cb15fa38f</id>
<content type='text'>
Add use of TPAUSE (from WAITPKG) to the runtime for Intel hardware,
with an envirable to turn it on in a particular C-state.  Always uses
TPAUSE if it is selected and enabled by Intel hardware and presence of
WAITPKG, and if not, falls back to old way of checking
__kmp_use_yield, etc.

Differential Revision: https://reviews.llvm.org/D115758
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add use of TPAUSE (from WAITPKG) to the runtime for Intel hardware,
with an envirable to turn it on in a particular C-state.  Always uses
TPAUSE if it is selected and enabled by Intel hardware and presence of
WAITPKG, and if not, falls back to old way of checking
__kmp_use_yield, etc.

Differential Revision: https://reviews.llvm.org/D115758
</pre>
</div>
</content>
</entry>
</feed>
