[Openmp-commits] [PATCH] D55026: Task Affinity API
Terry Wilmarth via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Wed Nov 28 13:55:11 PST 2018
tlwilmar created this revision.
tlwilmar added reviewers: AndreyChurbanov, jlpeyton, jklinkenberg.
tlwilmar added a project: OpenMP.
This patch adds __kmpc_omp_reg_task_with_affinity to register affinity information for tasks. For now, the affinity information is not used, and the function always succeeds. This also adds the kmp_task_affinity_info_t structure to store the task affinity information.
Repository:
rOMP OpenMP
https://reviews.llvm.org/D55026
Files:
runtime/src/dllexports
runtime/src/kmp.h
runtime/src/kmp_tasking.cpp
Index: runtime/src/kmp_tasking.cpp
===================================================================
--- runtime/src/kmp_tasking.cpp
+++ runtime/src/kmp_tasking.cpp
@@ -1392,6 +1392,28 @@
return retval;
}
+#if OMP_50_ENABLED
+/*!
+ at ingroup TASKING
+ at param loc_ref location of the original task directive
+ at param gtid Global Thread ID of encountering thread
+ at param new_task task thunk allocated by __kmpc_omp_task_alloc() for the ''new
+task''
+ at param naffins Number of affinity items
+ at param affin_list List of affinity items
+ at return Returns non-zero if registering affinity information was not successful.
+ Returns 0 if registration was successful
+This entry registers the affinity information attached to a task with the task
+thunk structure kmp_taskdata_t.
+*/
+kmp_int32
+__kmpc_omp_reg_task_with_affinity(ident_t *loc_ref, kmp_int32 gtid,
+ kmp_task_t *new_task, kmp_int32 naffins,
+ kmp_task_affinity_info_t *affin_list) {
+ return 0;
+}
+#endif
+
// __kmp_invoke_task: invoke the specified task
//
// gtid: global thread ID of caller
Index: runtime/src/kmp.h
===================================================================
--- runtime/src/kmp.h
+++ runtime/src/kmp.h
@@ -2222,6 +2222,18 @@
#endif
} kmp_dephash_t;
+#if OMP_50_ENABLED
+typedef struct kmp_task_affinity_info {
+ kmp_intptr_t base_addr;
+ size_t len;
+ struct {
+ bool flag1 : 1;
+ bool flag2 : 1;
+ kmp_int32 reserved : 30;
+ } flags;
+} kmp_task_affinity_info_t;
+#endif
+
#endif
#ifdef BUILD_TIED_TASK_STACK
@@ -3783,6 +3795,9 @@
#if OMP_50_ENABLED
KMP_EXPORT void *__kmpc_task_reduction_init(int gtid, int num_data, void *data);
KMP_EXPORT void *__kmpc_task_reduction_get_th_data(int gtid, void *tg, void *d);
+KMP_EXPORT kmp_int32 __kmpc_omp_reg_task_with_affinity(
+ ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *new_task, kmp_int32 naffins,
+ kmp_task_affinity_info_t *affin_list);
#endif
#endif
Index: runtime/src/dllexports
===================================================================
--- runtime/src/dllexports
+++ runtime/src/dllexports
@@ -405,6 +405,7 @@
__kmpc_task_reduction_get_th_data 269
# USED FOR 4.5 __kmpc_critical_with_hint 270
__kmpc_get_target_offload 271
+ __kmpc_omp_reg_task_with_affinity 272
%endif
%endif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55026.175761.patch
Type: text/x-patch
Size: 2379 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20181128/947d7c98/attachment.bin>
More information about the Openmp-commits
mailing list