<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/llvm.git/openmp/runtime/src/kmp_settings.cpp, branch EmptyLineAfterFunctionDefinition</title>
<subtitle>github.com: llvm/llvm-project.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/'/>
<entry>
<title>[OpenMP][libomp] Improve Windows Processor Group handling within topology</title>
<updated>2021-11-17T22:29:01+00:00</updated>
<author>
<name>Peyton, Jonathan L</name>
<email>jonathan.l.peyton@intel.com</email>
</author>
<published>2021-10-21T21:28:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=286094af9bc0cfc89d00d8d645e8eaca3d78cd91'/>
<id>286094af9bc0cfc89d00d8d645e8eaca3d78cd91</id>
<content type='text'>
The current implementation of Windows Processor Groups has
a separate topology method to handle them. This patch deprecates
that specific method and uses the regular CPUID topology
method by default and inserts the Windows Processor Group objects
in the topology manually.

Notes:
* The preference for processor groups is lowered to a value less than
  socket so that the user will see sockets in the KMP_AFFINITY=verbose
  output instead of processor groups when sockets=processor groups.
* The topology's capacity is modified to handle additional topology layers
  without the need for reallocation.
* If a user asks for a granularity setting that is "above" the processor
  group layer, then the granularity is adjusted "down" to the processor
  group since this is the coarsest layer available for threads.

Differential Revision: https://reviews.llvm.org/D112273
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current implementation of Windows Processor Groups has
a separate topology method to handle them. This patch deprecates
that specific method and uses the regular CPUID topology
method by default and inserts the Windows Processor Group objects
in the topology manually.

Notes:
* The preference for processor groups is lowered to a value less than
  socket so that the user will see sockets in the KMP_AFFINITY=verbose
  output instead of processor groups when sockets=processor groups.
* The topology's capacity is modified to handle additional topology layers
  without the need for reallocation.
* If a user asks for a granularity setting that is "above" the processor
  group layer, then the granularity is adjusted "down" to the processor
  group since this is the coarsest layer available for threads.

Differential Revision: https://reviews.llvm.org/D112273
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] libomp: Fix handling of barrier pattern environment variables</title>
<updated>2021-11-08T12:01:26+00:00</updated>
<author>
<name>@t-msn</name>
<email>misono.tomohiro@fujitsu.com</email>
</author>
<published>2021-11-08T12:01:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=0808d956c43e10646bc3f79ef5f9ccf12fc829f3'/>
<id>0808d956c43e10646bc3f79ef5f9ccf12fc829f3</id>
<content type='text'>
It is better to set all barrier patterns to use "dist" when at least
one environment variable specifies "dist". Otherwise if only one
environment is set to "dist" and others left blank inadvertently,
it would result in mixing dist barrier with default hyper barrier
pattern.

Differential Revision: https://reviews.llvm.org/D112597
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is better to set all barrier patterns to use "dist" when at least
one environment variable specifies "dist". Otherwise if only one
environment is set to "dist" and others left blank inadvertently,
it would result in mixing dist barrier with default hyper barrier
pattern.

Differential Revision: https://reviews.llvm.org/D112597
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP][host runtime] Add support for teams affinity</title>
<updated>2021-10-14T21:30:28+00:00</updated>
<author>
<name>Peyton, Jonathan L</name>
<email>jonathan.l.peyton@intel.com</email>
</author>
<published>2021-09-15T17:52:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=50b68a3d030543daf97794d68682cc698964ca26'/>
<id>50b68a3d030543daf97794d68682cc698964ca26</id>
<content type='text'>
This patch implements teams affinity on the host.
The default is spread. A user can specify either spread, close, or
primary using KMP_TEAMS_PROC_BIND environment variable. Unlike
OMP_PROC_BIND, KMP_TEAMS_PROC_BIND is only a single value and is not a
list of values. The values follow the same semantics under the OpenMP
specification for parallel regions except T is the number of teams in
a league instead of the number of threads in a parallel region.

Differential Revision: https://reviews.llvm.org/D109921
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch implements teams affinity on the host.
The default is spread. A user can specify either spread, close, or
primary using KMP_TEAMS_PROC_BIND environment variable. Unlike
OMP_PROC_BIND, KMP_TEAMS_PROC_BIND is only a single value and is not a
list of values. The values follow the same semantics under the OpenMP
specification for parallel regions except T is the number of teams in
a league instead of the number of threads in a parallel region.

Differential Revision: https://reviews.llvm.org/D109921
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] libomp: fix warning on comparison of integer expressions of different signedness</title>
<updated>2021-10-13T17:11:47+00:00</updated>
<author>
<name>AndreyChurbanov</name>
<email>andrey.churbanov@intel.com</email>
</author>
<published>2021-10-13T17:11:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=5e58b63b28695e4174a1c6ee57867f8aaff2b21d'/>
<id>5e58b63b28695e4174a1c6ee57867f8aaff2b21d</id>
<content type='text'>
Replaced macro with global variable of correspondent type.

Differential Revision: https://reviews.llvm.org/D111562
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replaced macro with global variable of correspondent type.

Differential Revision: https://reviews.llvm.org/D111562
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP][host runtime] Introduce kmp_cpuinfo_flags_t to replace integer flags</title>
<updated>2021-10-01T16:08:39+00:00</updated>
<author>
<name>Peyton, Jonathan L</name>
<email>jonathan.l.peyton@intel.com</email>
</author>
<published>2021-09-20T18:24:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=343b9e8590db6bc815df3a3fec5bb25c23261476'/>
<id>343b9e8590db6bc815df3a3fec5bb25c23261476</id>
<content type='text'>
Store CPUID support flags as bits instead of using entire integers.

Differential Revision: https://reviews.llvm.org/D110091
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Store CPUID support flags as bits instead of using entire integers.

Differential Revision: https://reviews.llvm.org/D110091
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Fix the usage of sscanf on MinGW</title>
<updated>2021-08-17T18:36:09+00:00</updated>
<author>
<name>Martin Storsjö</name>
<email>martin@martin.st</email>
</author>
<published>2021-08-17T10:15:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=f5616a981c60c619393c92d6180f128e934a36c9'/>
<id>f5616a981c60c619393c92d6180f128e934a36c9</id>
<content type='text'>
KMP_SSCANF only evaluates to sscanf_s within
    #if KMP_OS_WINDOWS &amp;&amp; KMP_MSVC_COMPAT
so we need to pass the sscanf_s specific parameters within a similar
condition.

Differential Revision: https://reviews.llvm.org/D108196
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
KMP_SSCANF only evaluates to sscanf_s within
    #if KMP_OS_WINDOWS &amp;&amp; KMP_MSVC_COMPAT
so we need to pass the sscanf_s specific parameters within a similar
condition.

Differential Revision: https://reviews.llvm.org/D108196
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Add a few small fixes</title>
<updated>2021-08-16T15:02:49+00:00</updated>
<author>
<name>Peyton, Jonathan L</name>
<email>jonathan.l.peyton@intel.com</email>
</author>
<published>2021-06-28T21:27:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=b4a1f441d90c5cb324efe45170614957ab666382'/>
<id>b4a1f441d90c5cb324efe45170614957ab666382</id>
<content type='text'>
* Add comment to help ensure new construct data are added in two places
* Check for division by zero in the loop worksharing code
* Check for syntax errors in parrange parsing

Differential Revision: https://reviews.llvm.org/D105929
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add comment to help ensure new construct data are added in two places
* Check for division by zero in the loop worksharing code
* Check for syntax errors in parrange parsing

Differential Revision: https://reviews.llvm.org/D105929
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Fix incorrect parameters to sscanf_s call</title>
<updated>2021-08-16T14:59:21+00:00</updated>
<author>
<name>Peyton, Jonathan L</name>
<email>jonathan.l.peyton@intel.com</email>
</author>
<published>2021-07-13T19:42:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=6eeb4c1f3203566599c12a5f2b147c6c5a92ee1d'/>
<id>6eeb4c1f3203566599c12a5f2b147c6c5a92ee1d</id>
<content type='text'>
On Windows, the documentation states that when using sscanf_s,
each %c and %s specifier must also have additional size parameter.
This patch adds the size parameter in the one place where %c is
used.

Differential Revision: https://reviews.llvm.org/D105931
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On Windows, the documentation states that when using sscanf_s,
each %c and %s specifier must also have additional size parameter.
This patch adds the size parameter in the one place where %c is
used.

Differential Revision: https://reviews.llvm.org/D105931
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] libomp: Add new experimental barrier: two-level distributed barrier</title>
<updated>2021-07-29T19:09:26+00:00</updated>
<author>
<name>Terry Wilmarth</name>
<email>terry.l.wilmarth@intel.com</email>
</author>
<published>2021-07-15T15:28:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=d8e4cb912180ce0a35d31b616e6f4c0c3d64abb7'/>
<id>d8e4cb912180ce0a35d31b616e6f4c0c3d64abb7</id>
<content type='text'>
Two-level distributed barrier is a new experimental barrier designed
for Intel hardware that has better performance in some cases than the
default hyper barrier.

This barrier is designed to handle fine granularity parallelism where
barriers are used frequently with little compute and memory access
between barriers. There is no need to use it for codes with few
barriers and large granularity compute, or memory intensive
applications, as little difference will be seen between this barrier
and the default hyper barrier. This barrier is designed to work
optimally with a fixed number of threads, and has a significant setup
time, so should NOT be used in situations where the number of threads
in a team is varied frequently.

The two-level distributed barrier is off by default -- hyper barrier
is used by default. To use this barrier, you must set all barrier
patterns to use this type, because it will not work with other barrier
patterns. Thus, to turn it on, the following settings are required:

KMP_FORKJOIN_BARRIER_PATTERN=dist,dist
KMP_PLAIN_BARRIER_PATTERN=dist,dist
KMP_REDUCTION_BARRIER_PATTERN=dist,dist

Branching factors (set with KMP_FORKJOIN_BARRIER, KMP_PLAIN_BARRIER,
and KMP_REDUCTION_BARRIER) are ignored by the two-level distributed
barrier.

Patch fixed for ITTNotify disabled builds and non-x86 builds

Co-authored-by: Jonathan Peyton &lt;jonathan.l.peyton@intel.com&gt;
Co-authored-by: Vladislav Vinogradov &lt;vlad.vinogradov@intel.com&gt;

Differential Revision: https://reviews.llvm.org/D103121
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Two-level distributed barrier is a new experimental barrier designed
for Intel hardware that has better performance in some cases than the
default hyper barrier.

This barrier is designed to handle fine granularity parallelism where
barriers are used frequently with little compute and memory access
between barriers. There is no need to use it for codes with few
barriers and large granularity compute, or memory intensive
applications, as little difference will be seen between this barrier
and the default hyper barrier. This barrier is designed to work
optimally with a fixed number of threads, and has a significant setup
time, so should NOT be used in situations where the number of threads
in a team is varied frequently.

The two-level distributed barrier is off by default -- hyper barrier
is used by default. To use this barrier, you must set all barrier
patterns to use this type, because it will not work with other barrier
patterns. Thus, to turn it on, the following settings are required:

KMP_FORKJOIN_BARRIER_PATTERN=dist,dist
KMP_PLAIN_BARRIER_PATTERN=dist,dist
KMP_REDUCTION_BARRIER_PATTERN=dist,dist

Branching factors (set with KMP_FORKJOIN_BARRIER, KMP_PLAIN_BARRIER,
and KMP_REDUCTION_BARRIER) are ignored by the two-level distributed
barrier.

Patch fixed for ITTNotify disabled builds and non-x86 builds

Co-authored-by: Jonathan Peyton &lt;jonathan.l.peyton@intel.com&gt;
Co-authored-by: Vladislav Vinogradov &lt;vlad.vinogradov@intel.com&gt;

Differential Revision: https://reviews.llvm.org/D103121
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[OpenMP] Add Two-level Distributed Barrier"</title>
<updated>2021-06-29T14:38:27+00:00</updated>
<author>
<name>Johannes Doerfert</name>
<email>johannes@jdoerfert.de</email>
</author>
<published>2021-06-29T14:34:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=4eb90e893f82314def571f7129dfd88bd098208b'/>
<id>4eb90e893f82314def571f7129dfd88bd098208b</id>
<content type='text'>
This reverts commit 25073a4ecfc9b2e3cb76776185e63bfdb094cd98.

This breaks non-x86 OpenMP builds for a while now. Until a solution is
ready to be upstreamed we revert the feature and unblock those builds.
See:
  https://reviews.llvm.org/rG25073a4ecfc9b2e3cb76776185e63bfdb094cd98#1005821
and
  https://reviews.llvm.org/rG25073a4ecfc9b2e3cb76776185e63bfdb094cd98#1005821

The currently proposed fix (D104788) seems not to be ready yet:
  https://reviews.llvm.org/D104788#2841928
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 25073a4ecfc9b2e3cb76776185e63bfdb094cd98.

This breaks non-x86 OpenMP builds for a while now. Until a solution is
ready to be upstreamed we revert the feature and unblock those builds.
See:
  https://reviews.llvm.org/rG25073a4ecfc9b2e3cb76776185e63bfdb094cd98#1005821
and
  https://reviews.llvm.org/rG25073a4ecfc9b2e3cb76776185e63bfdb094cd98#1005821

The currently proposed fix (D104788) seems not to be ready yet:
  https://reviews.llvm.org/D104788#2841928
</pre>
</div>
</content>
</entry>
</feed>
