Skip to content

Commit f63d6da

Browse files
author
Sergey Oblomov
committed
OSHMEM/AMO: added missing C11 macro datatypes
- added signed datatypes for atomic_add calls - added unsigned datatypes for atomic put/inc/get/fetch calls - fixed incorrect SHMEM_CTX_DEFAULT macro, added external declaration of oshmem_ctx_default variable Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
1 parent f2e6d78 commit f63d6da

25 files changed

+1629
-369
lines changed

oshmem/include/pshmem.h

Lines changed: 516 additions & 156 deletions
Large diffs are not rendered by default.

oshmem/include/shmem.h.in

Lines changed: 499 additions & 137 deletions
Large diffs are not rendered by default.

oshmem/shmem/c/profile/defines.h

Lines changed: 255 additions & 75 deletions
Large diffs are not rendered by default.

oshmem/shmem/c/shmem_add.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,15 @@
6363
#pragma weak shmem_ctx_int_atomic_add = pshmem_ctx_int_atomic_add
6464
#pragma weak shmem_ctx_long_atomic_add = pshmem_ctx_long_atomic_add
6565
#pragma weak shmem_ctx_longlong_atomic_add = pshmem_ctx_longlong_atomic_add
66+
#pragma weak shmem_ctx_uint_atomic_add = pshmem_ctx_uint_atomic_add
67+
#pragma weak shmem_ctx_ulong_atomic_add = pshmem_ctx_ulong_atomic_add
68+
#pragma weak shmem_ctx_ulonglong_atomic_add = pshmem_ctx_ulonglong_atomic_add
6669
#pragma weak shmem_int_atomic_add = pshmem_int_atomic_add
6770
#pragma weak shmem_long_atomic_add = pshmem_long_atomic_add
6871
#pragma weak shmem_longlong_atomic_add = pshmem_longlong_atomic_add
72+
#pragma weak shmem_uint_atomic_add = pshmem_uint_atomic_add
73+
#pragma weak shmem_ulong_atomic_add = pshmem_ulong_atomic_add
74+
#pragma weak shmem_ulonglong_atomic_add = pshmem_ulonglong_atomic_add
6975
#pragma weak shmem_int_add = pshmem_int_add
7076
#pragma weak shmem_long_add = pshmem_long_add
7177
#pragma weak shmem_longlong_add = pshmem_longlong_add
@@ -74,12 +80,18 @@
7480
#include "oshmem/shmem/c/profile/defines.h"
7581
#endif
7682

83+
SHMEM_CTX_TYPE_ATOMIC_ADD(_uint, unsigned int, shmem)
84+
SHMEM_CTX_TYPE_ATOMIC_ADD(_ulong, unsigned long, shmem)
85+
SHMEM_CTX_TYPE_ATOMIC_ADD(_ulonglong, unsigned long long, shmem)
7786
SHMEM_CTX_TYPE_ATOMIC_ADD(_int, int, shmem)
7887
SHMEM_CTX_TYPE_ATOMIC_ADD(_long, long, shmem)
7988
SHMEM_CTX_TYPE_ATOMIC_ADD(_longlong, long long, shmem)
8089
SHMEM_TYPE_ATOMIC_ADD(_int, int, shmem)
8190
SHMEM_TYPE_ATOMIC_ADD(_long, long, shmem)
8291
SHMEM_TYPE_ATOMIC_ADD(_longlong, long long, shmem)
92+
SHMEM_TYPE_ATOMIC_ADD(_uint, unsigned int, shmem)
93+
SHMEM_TYPE_ATOMIC_ADD(_ulong, unsigned long, shmem)
94+
SHMEM_TYPE_ATOMIC_ADD(_ulonglong, unsigned long long, shmem)
8395

8496
/* deprecated APIs */
8597
#define SHMEM_TYPE_ADD(type_name, type, prefix) \

oshmem/shmem/c/shmem_and.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,15 @@
2525
*/
2626
#if OSHMEM_PROFILING
2727
#include "oshmem/include/pshmem.h"
28+
#pragma weak shmem_int_atomic_and = pshmem_int_atomic_and
29+
#pragma weak shmem_long_atomic_and = pshmem_long_atomic_and
30+
#pragma weak shmem_longlong_atomic_and = pshmem_longlong_atomic_and
2831
#pragma weak shmem_uint_atomic_and = pshmem_uint_atomic_and
2932
#pragma weak shmem_ulong_atomic_and = pshmem_ulong_atomic_and
3033
#pragma weak shmem_ulonglong_atomic_and = pshmem_ulonglong_atomic_and
34+
#pragma weak shmem_ctx_int_atomic_and = pshmem_ctx_int_atomic_and
35+
#pragma weak shmem_ctx_long_atomic_and = pshmem_ctx_long_atomic_and
36+
#pragma weak shmem_ctx_longlong_atomic_and = pshmem_ctx_longlong_atomic_and
3137
#pragma weak shmem_ctx_uint_atomic_and = pshmem_ctx_uint_atomic_and
3238
#pragma weak shmem_ctx_ulong_atomic_and = pshmem_ctx_ulong_atomic_and
3339
#pragma weak shmem_ctx_ulonglong_atomic_and = pshmem_ctx_ulonglong_atomic_and
@@ -38,9 +44,15 @@
3844
#include "oshmem/shmem/c/profile/defines.h"
3945
#endif
4046

47+
OSHMEM_TYPE_OP(int, int, shmem, and)
48+
OSHMEM_TYPE_OP(long, long, shmem, and)
49+
OSHMEM_TYPE_OP(longlong, long long, shmem, and)
4150
OSHMEM_TYPE_OP(uint, unsigned int, shmem, and)
4251
OSHMEM_TYPE_OP(ulong, unsigned long, shmem, and)
4352
OSHMEM_TYPE_OP(ulonglong, unsigned long long, shmem, and)
53+
OSHMEM_CTX_TYPE_OP(int, int, shmem, and)
54+
OSHMEM_CTX_TYPE_OP(long, long, shmem, and)
55+
OSHMEM_CTX_TYPE_OP(longlong, long long, shmem, and)
4456
OSHMEM_CTX_TYPE_OP(uint, unsigned int, shmem, and)
4557
OSHMEM_CTX_TYPE_OP(ulong, unsigned long, shmem, and)
4658
OSHMEM_CTX_TYPE_OP(ulonglong, unsigned long long, shmem, and)

oshmem/shmem/c/shmem_cswap.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,18 @@
6565

6666
#if OSHMEM_PROFILING
6767
#include "oshmem/include/pshmem.h"
68+
#pragma weak shmem_ctx_uint_atomic_compare_swap = pshmem_ctx_uint_atomic_compare_swap
69+
#pragma weak shmem_ctx_ulong_atomic_compare_swap = pshmem_ctx_ulong_atomic_compare_swap
70+
#pragma weak shmem_ctx_ulonglong_atomic_compare_swap = pshmem_ctx_ulonglong_atomic_compare_swap
6871
#pragma weak shmem_ctx_int_atomic_compare_swap = pshmem_ctx_int_atomic_compare_swap
6972
#pragma weak shmem_ctx_long_atomic_compare_swap = pshmem_ctx_long_atomic_compare_swap
7073
#pragma weak shmem_ctx_longlong_atomic_compare_swap = pshmem_ctx_longlong_atomic_compare_swap
7174
#pragma weak shmem_int_atomic_compare_swap = pshmem_int_atomic_compare_swap
7275
#pragma weak shmem_long_atomic_compare_swap = pshmem_long_atomic_compare_swap
7376
#pragma weak shmem_longlong_atomic_compare_swap = pshmem_longlong_atomic_compare_swap
77+
#pragma weak shmem_uint_atomic_compare_swap = pshmem_uint_atomic_compare_swap
78+
#pragma weak shmem_ulong_atomic_compare_swap = pshmem_ulong_atomic_compare_swap
79+
#pragma weak shmem_ulonglong_atomic_compare_swap = pshmem_ulonglong_atomic_compare_swap
7480
#pragma weak shmem_int_cswap = pshmem_int_cswap
7581
#pragma weak shmem_long_cswap = pshmem_long_cswap
7682
#pragma weak shmem_longlong_cswap = pshmem_longlong_cswap
@@ -82,9 +88,15 @@
8288
SHMEM_CTX_TYPE_ATOMIC_COMPARE_SWAP(_int, int, shmem)
8389
SHMEM_CTX_TYPE_ATOMIC_COMPARE_SWAP(_long, long, shmem)
8490
SHMEM_CTX_TYPE_ATOMIC_COMPARE_SWAP(_longlong, long long, shmem)
91+
SHMEM_CTX_TYPE_ATOMIC_COMPARE_SWAP(_uint, unsigned int, shmem)
92+
SHMEM_CTX_TYPE_ATOMIC_COMPARE_SWAP(_ulong, unsigned long, shmem)
93+
SHMEM_CTX_TYPE_ATOMIC_COMPARE_SWAP(_ulonglong, unsigned long long, shmem)
8594
SHMEM_TYPE_ATOMIC_COMPARE_SWAP(_int, int, shmem)
8695
SHMEM_TYPE_ATOMIC_COMPARE_SWAP(_long, long, shmem)
8796
SHMEM_TYPE_ATOMIC_COMPARE_SWAP(_longlong, long long, shmem)
97+
SHMEM_TYPE_ATOMIC_COMPARE_SWAP(_uint, unsigned int, shmem)
98+
SHMEM_TYPE_ATOMIC_COMPARE_SWAP(_ulong, unsigned long, shmem)
99+
SHMEM_TYPE_ATOMIC_COMPARE_SWAP(_ulonglong, unsigned long long, shmem)
88100

89101
/* deprecated APIs */
90102
#define SHMEM_TYPE_CSWAP(type_name, type, prefix) \

oshmem/shmem/c/shmem_fadd.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,15 @@
6767
#pragma weak shmem_ctx_int_atomic_fetch_add = pshmem_ctx_int_atomic_fetch_add
6868
#pragma weak shmem_ctx_long_atomic_fetch_add = pshmem_ctx_long_atomic_fetch_add
6969
#pragma weak shmem_ctx_longlong_atomic_fetch_add = pshmem_ctx_longlong_atomic_fetch_add
70+
#pragma weak shmem_ctx_uint_atomic_fetch_add = pshmem_ctx_uint_atomic_fetch_add
71+
#pragma weak shmem_ctx_ulong_atomic_fetch_add = pshmem_ctx_ulong_atomic_fetch_add
72+
#pragma weak shmem_ctx_ulonglong_atomic_fetch_add = pshmem_ctx_ulonglong_atomic_fetch_add
7073
#pragma weak shmem_int_atomic_fetch_add = pshmem_int_atomic_fetch_add
7174
#pragma weak shmem_long_atomic_fetch_add = pshmem_long_atomic_fetch_add
7275
#pragma weak shmem_longlong_atomic_fetch_add = pshmem_longlong_atomic_fetch_add
76+
#pragma weak shmem_uint_atomic_fetch_add = pshmem_uint_atomic_fetch_add
77+
#pragma weak shmem_ulong_atomic_fetch_add = pshmem_ulong_atomic_fetch_add
78+
#pragma weak shmem_ulonglong_atomic_fetch_add = pshmem_ulonglong_atomic_fetch_add
7379
#pragma weak shmem_int_fadd = pshmem_int_fadd
7480
#pragma weak shmem_long_fadd = pshmem_long_fadd
7581
#pragma weak shmem_longlong_fadd = pshmem_longlong_fadd
@@ -81,9 +87,15 @@
8187
SHMEM_CTX_TYPE_ATOMIC_FETCH_ADD(_int, int, shmem)
8288
SHMEM_CTX_TYPE_ATOMIC_FETCH_ADD(_long, long, shmem)
8389
SHMEM_CTX_TYPE_ATOMIC_FETCH_ADD(_longlong, long long, shmem)
90+
SHMEM_CTX_TYPE_ATOMIC_FETCH_ADD(_uint, unsigned int, shmem)
91+
SHMEM_CTX_TYPE_ATOMIC_FETCH_ADD(_ulong, unsigned long, shmem)
92+
SHMEM_CTX_TYPE_ATOMIC_FETCH_ADD(_ulonglong, unsigned long long, shmem)
8493
SHMEM_TYPE_ATOMIC_FETCH_ADD(_int, int, shmem)
8594
SHMEM_TYPE_ATOMIC_FETCH_ADD(_long, long, shmem)
8695
SHMEM_TYPE_ATOMIC_FETCH_ADD(_longlong, long long, shmem)
96+
SHMEM_TYPE_ATOMIC_FETCH_ADD(_uint, unsigned int, shmem)
97+
SHMEM_TYPE_ATOMIC_FETCH_ADD(_ulong, unsigned long, shmem)
98+
SHMEM_TYPE_ATOMIC_FETCH_ADD(_ulonglong, unsigned long long, shmem)
8799

88100
/* deprecated APIs */
89101
#define SHMEM_TYPE_FADD(type_name, type, prefix) \

oshmem/shmem/c/shmem_fand.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,15 @@
2727
*/
2828
#if OSHMEM_PROFILING
2929
#include "oshmem/include/pshmem.h"
30+
#pragma weak shmem_int_atomic_fetch_and = pshmem_int_atomic_fetch_and
31+
#pragma weak shmem_long_atomic_fetch_and = pshmem_long_atomic_fetch_and
32+
#pragma weak shmem_longlong_atomic_fetch_and = pshmem_longlong_atomic_fetch_and
3033
#pragma weak shmem_uint_atomic_fetch_and = pshmem_uint_atomic_fetch_and
3134
#pragma weak shmem_ulong_atomic_fetch_and = pshmem_ulong_atomic_fetch_and
3235
#pragma weak shmem_ulonglong_atomic_fetch_and = pshmem_ulonglong_atomic_fetch_and
36+
#pragma weak shmem_ctx_int_atomic_fetch_and = pshmem_ctx_int_atomic_fetch_and
37+
#pragma weak shmem_ctx_long_atomic_fetch_and = pshmem_ctx_long_atomic_fetch_and
38+
#pragma weak shmem_ctx_longlong_atomic_fetch_and = pshmem_ctx_longlong_atomic_fetch_and
3339
#pragma weak shmem_ctx_uint_atomic_fetch_and = pshmem_ctx_uint_atomic_fetch_and
3440
#pragma weak shmem_ctx_ulong_atomic_fetch_and = pshmem_ctx_ulong_atomic_fetch_and
3541
#pragma weak shmem_ctx_ulonglong_atomic_fetch_and = pshmem_ctx_ulonglong_atomic_fetch_and
@@ -42,9 +48,15 @@
4248

4349
unsigned int shmem_uint_atomic_fand(unsigned int *target, unsigned int value, int pe);
4450

51+
OSHMEM_TYPE_FOP(int, int, shmem, and)
52+
OSHMEM_TYPE_FOP(long, long, shmem, and)
53+
OSHMEM_TYPE_FOP(longlong, long long, shmem, and)
4554
OSHMEM_TYPE_FOP(uint, unsigned int, shmem, and)
4655
OSHMEM_TYPE_FOP(ulong, unsigned long, shmem, and)
4756
OSHMEM_TYPE_FOP(ulonglong, unsigned long long, shmem, and)
57+
OSHMEM_CTX_TYPE_FOP(int, int, shmem, and)
58+
OSHMEM_CTX_TYPE_FOP(long, long, shmem, and)
59+
OSHMEM_CTX_TYPE_FOP(longlong, long long, shmem, and)
4860
OSHMEM_CTX_TYPE_FOP(uint, unsigned int, shmem, and)
4961
OSHMEM_CTX_TYPE_FOP(ulong, unsigned long, shmem, and)
5062
OSHMEM_CTX_TYPE_FOP(ulonglong, unsigned long long, shmem, and)

oshmem/shmem/c/shmem_fetch.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,17 @@
6868
#pragma weak shmem_ctx_int_atomic_fetch = pshmem_ctx_int_atomic_fetch
6969
#pragma weak shmem_ctx_long_atomic_fetch = pshmem_ctx_long_atomic_fetch
7070
#pragma weak shmem_ctx_longlong_atomic_fetch = pshmem_ctx_longlong_atomic_fetch
71+
#pragma weak shmem_ctx_uint_atomic_fetch = pshmem_ctx_uint_atomic_fetch
72+
#pragma weak shmem_ctx_ulong_atomic_fetch = pshmem_ctx_ulong_atomic_fetch
73+
#pragma weak shmem_ctx_ulonglong_atomic_fetch = pshmem_ctx_ulonglong_atomic_fetch
7174
#pragma weak shmem_ctx_double_atomic_fetch = pshmem_ctx_double_atomic_fetch
7275
#pragma weak shmem_ctx_float_atomic_fetch = pshmem_ctx_float_atomic_fetch
7376
#pragma weak shmem_int_atomic_fetch = pshmem_int_atomic_fetch
7477
#pragma weak shmem_long_atomic_fetch = pshmem_long_atomic_fetch
7578
#pragma weak shmem_longlong_atomic_fetch = pshmem_longlong_atomic_fetch
79+
#pragma weak shmem_uint_atomic_fetch = pshmem_uint_atomic_fetch
80+
#pragma weak shmem_ulong_atomic_fetch = pshmem_ulong_atomic_fetch
81+
#pragma weak shmem_ulonglong_atomic_fetch = pshmem_ulonglong_atomic_fetch
7682
#pragma weak shmem_double_atomic_fetch = pshmem_double_atomic_fetch
7783
#pragma weak shmem_float_atomic_fetch = pshmem_float_atomic_fetch
7884
#pragma weak shmem_int_fetch = pshmem_int_fetch
@@ -88,11 +94,17 @@
8894
SHMEM_CTX_TYPE_ATOMIC_FETCH(_int, int, shmem)
8995
SHMEM_CTX_TYPE_ATOMIC_FETCH(_long, long, shmem)
9096
SHMEM_CTX_TYPE_ATOMIC_FETCH(_longlong, long long, shmem)
97+
SHMEM_CTX_TYPE_ATOMIC_FETCH(_uint, unsigned int, shmem)
98+
SHMEM_CTX_TYPE_ATOMIC_FETCH(_ulong, unsigned long, shmem)
99+
SHMEM_CTX_TYPE_ATOMIC_FETCH(_ulonglong, unsigned long long, shmem)
91100
SHMEM_CTX_TYPE_ATOMIC_FETCH(_double, double, shmem)
92101
SHMEM_CTX_TYPE_ATOMIC_FETCH(_float, float, shmem)
93102
SHMEM_TYPE_ATOMIC_FETCH(_int, int, shmem)
94103
SHMEM_TYPE_ATOMIC_FETCH(_long, long, shmem)
95104
SHMEM_TYPE_ATOMIC_FETCH(_longlong, long long, shmem)
105+
SHMEM_TYPE_ATOMIC_FETCH(_uint, unsigned int, shmem)
106+
SHMEM_TYPE_ATOMIC_FETCH(_ulong, unsigned long, shmem)
107+
SHMEM_TYPE_ATOMIC_FETCH(_ulonglong, unsigned long long, shmem)
96108
SHMEM_TYPE_ATOMIC_FETCH(_double, double, shmem)
97109
SHMEM_TYPE_ATOMIC_FETCH(_float, float, shmem)
98110

oshmem/shmem/c/shmem_finc.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,15 @@
6868
#pragma weak shmem_ctx_int_atomic_fetch_inc = pshmem_ctx_int_atomic_fetch_inc
6969
#pragma weak shmem_ctx_long_atomic_fetch_inc = pshmem_ctx_long_atomic_fetch_inc
7070
#pragma weak shmem_ctx_longlong_atomic_fetch_inc = pshmem_ctx_longlong_atomic_fetch_inc
71+
#pragma weak shmem_ctx_uint_atomic_fetch_inc = pshmem_ctx_uint_atomic_fetch_inc
72+
#pragma weak shmem_ctx_ulong_atomic_fetch_inc = pshmem_ctx_ulong_atomic_fetch_inc
73+
#pragma weak shmem_ctx_ulonglong_atomic_fetch_inc = pshmem_ctx_ulonglong_atomic_fetch_inc
7174
#pragma weak shmem_int_atomic_fetch_inc = pshmem_int_atomic_fetch_inc
7275
#pragma weak shmem_long_atomic_fetch_inc = pshmem_long_atomic_fetch_inc
7376
#pragma weak shmem_longlong_atomic_fetch_inc = pshmem_longlong_atomic_fetch_inc
77+
#pragma weak shmem_uint_atomic_fetch_inc = pshmem_uint_atomic_fetch_inc
78+
#pragma weak shmem_ulong_atomic_fetch_inc = pshmem_ulong_atomic_fetch_inc
79+
#pragma weak shmem_ulonglong_atomic_fetch_inc = pshmem_ulonglong_atomic_fetch_inc
7480
#pragma weak shmem_int_finc = pshmem_int_finc
7581
#pragma weak shmem_long_finc = pshmem_long_finc
7682
#pragma weak shmem_longlong_finc = pshmem_longlong_finc
@@ -82,9 +88,15 @@
8288
SHMEM_CTX_TYPE_ATOMIC_FETCH_INC(_int, int, shmem)
8389
SHMEM_CTX_TYPE_ATOMIC_FETCH_INC(_long, long, shmem)
8490
SHMEM_CTX_TYPE_ATOMIC_FETCH_INC(_longlong, long long, shmem)
91+
SHMEM_CTX_TYPE_ATOMIC_FETCH_INC(_uint, unsigned int, shmem)
92+
SHMEM_CTX_TYPE_ATOMIC_FETCH_INC(_ulong, unsigned long, shmem)
93+
SHMEM_CTX_TYPE_ATOMIC_FETCH_INC(_ulonglong, unsigned long long, shmem)
8594
SHMEM_TYPE_ATOMIC_FETCH_INC(_int, int, shmem)
8695
SHMEM_TYPE_ATOMIC_FETCH_INC(_long, long, shmem)
8796
SHMEM_TYPE_ATOMIC_FETCH_INC(_longlong, long long, shmem)
97+
SHMEM_TYPE_ATOMIC_FETCH_INC(_uint, unsigned int, shmem)
98+
SHMEM_TYPE_ATOMIC_FETCH_INC(_ulong, unsigned long, shmem)
99+
SHMEM_TYPE_ATOMIC_FETCH_INC(_ulonglong, unsigned long long, shmem)
88100

89101
/* deprecated APIs */
90102
#define SHMEM_TYPE_FINC(type_name, type, prefix) \

0 commit comments

Comments
 (0)