Skip to content

Commit a76a2c5

Browse files
jchlandamdtoguchi
authored andcommitted
[SYCL][LIBCLC] Fix identity values for (sub)group collectives min/max (intel#10639)
Use `+/-` `inf` for `minimum` and `maximum` respectively. See: https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#table.identities for details.
1 parent a3dfca6 commit a76a2c5

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

libclc/amdgcn-amdhsa/libspirv/group/collectives.cl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ __CLC_SUBGROUP_COLLECTIVE(SMin, __CLC_MIN, int, i, INT_MAX)
135135
__CLC_SUBGROUP_COLLECTIVE(UMin, __CLC_MIN, uint, j, UINT_MAX)
136136
__CLC_SUBGROUP_COLLECTIVE(SMin, __CLC_MIN, long, l, LONG_MAX)
137137
__CLC_SUBGROUP_COLLECTIVE(UMin, __CLC_MIN, ulong, m, ULONG_MAX)
138-
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, float, f, FLT_MAX)
139-
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, double, d, DBL_MAX)
138+
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, float, f, INFINITY)
139+
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, double, d, INFINITY)
140140

141141
__CLC_SUBGROUP_COLLECTIVE(SMax, __CLC_MAX, char, a, CHAR_MIN)
142142
__CLC_SUBGROUP_COLLECTIVE(UMax, __CLC_MAX, uchar, h, 0)
@@ -146,8 +146,8 @@ __CLC_SUBGROUP_COLLECTIVE(SMax, __CLC_MAX, int, i, INT_MIN)
146146
__CLC_SUBGROUP_COLLECTIVE(UMax, __CLC_MAX, uint, j, 0)
147147
__CLC_SUBGROUP_COLLECTIVE(SMax, __CLC_MAX, long, l, LONG_MIN)
148148
__CLC_SUBGROUP_COLLECTIVE(UMax, __CLC_MAX, ulong, m, 0)
149-
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, float, f, -FLT_MAX)
150-
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, double, d, -DBL_MAX)
149+
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, float, f, -INFINITY)
150+
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, double, d, -INFINITY)
151151

152152
__CLC_SUBGROUP_COLLECTIVE(All, __CLC_AND, bool, a, true)
153153
__CLC_SUBGROUP_COLLECTIVE(Any, __CLC_OR, bool, a, true)
@@ -253,8 +253,8 @@ __CLC_GROUP_COLLECTIVE(SMin, __CLC_MIN, int, INT_MAX)
253253
__CLC_GROUP_COLLECTIVE(UMin, __CLC_MIN, uint, UINT_MAX)
254254
__CLC_GROUP_COLLECTIVE(SMin, __CLC_MIN, long, LONG_MAX)
255255
__CLC_GROUP_COLLECTIVE(UMin, __CLC_MIN, ulong, ULONG_MAX)
256-
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, float, FLT_MAX)
257-
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, double, DBL_MAX)
256+
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, float, INFINITY)
257+
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, double, INFINITY)
258258

259259
__CLC_GROUP_COLLECTIVE(SMax, __CLC_MAX, char, CHAR_MIN)
260260
__CLC_GROUP_COLLECTIVE(UMax, __CLC_MAX, uchar, 0)
@@ -264,8 +264,8 @@ __CLC_GROUP_COLLECTIVE(SMax, __CLC_MAX, int, INT_MIN)
264264
__CLC_GROUP_COLLECTIVE(UMax, __CLC_MAX, uint, 0)
265265
__CLC_GROUP_COLLECTIVE(SMax, __CLC_MAX, long, LONG_MIN)
266266
__CLC_GROUP_COLLECTIVE(UMax, __CLC_MAX, ulong, 0)
267-
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, float, -FLT_MAX)
268-
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, double, -DBL_MAX)
267+
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, float, -INFINITY)
268+
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, double, -INFINITY)
269269

270270
#undef __CLC_GROUP_COLLECTIVE_4
271271
#undef __CLC_GROUP_COLLECTIVE_5

libclc/ptx-nvidiacl/libspirv/group/collectives.cl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,9 @@ __CLC_SUBGROUP_COLLECTIVE_REDUX(SMin, __CLC_MIN, min, int, INT_MAX)
382382
__CLC_SUBGROUP_COLLECTIVE_REDUX(UMin, __CLC_MIN, umin, uint, UINT_MAX)
383383
__CLC_SUBGROUP_COLLECTIVE(SMin, __CLC_MIN, long, LONG_MAX)
384384
__CLC_SUBGROUP_COLLECTIVE(UMin, __CLC_MIN, ulong, ULONG_MAX)
385-
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, half, HALF_MAX)
386-
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, float, FLT_MAX)
387-
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, double, DBL_MAX)
385+
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, half, INFINITY)
386+
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, float, INFINITY)
387+
__CLC_SUBGROUP_COLLECTIVE(FMin, __CLC_MIN, double, INFINITY)
388388

389389
__CLC_SUBGROUP_COLLECTIVE(SMax, __CLC_MAX, char, CHAR_MIN)
390390
__CLC_SUBGROUP_COLLECTIVE(UMax, __CLC_MAX, uchar, 0)
@@ -394,9 +394,9 @@ __CLC_SUBGROUP_COLLECTIVE_REDUX(SMax, __CLC_MAX, max, int, INT_MIN)
394394
__CLC_SUBGROUP_COLLECTIVE_REDUX(UMax, __CLC_MAX, umax, uint, 0)
395395
__CLC_SUBGROUP_COLLECTIVE(SMax, __CLC_MAX, long, LONG_MIN)
396396
__CLC_SUBGROUP_COLLECTIVE(UMax, __CLC_MAX, ulong, 0)
397-
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, half, -HALF_MAX)
398-
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, float, -FLT_MAX)
399-
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, double, -DBL_MAX)
397+
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, half, -INFINITY)
398+
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, float, -INFINITY)
399+
__CLC_SUBGROUP_COLLECTIVE(FMax, __CLC_MAX, double, -INFINITY)
400400

401401
__CLC_SUBGROUP_COLLECTIVE_REDUX(BitwiseAndKHR, __CLC_AND, and, uchar, ~0)
402402
__CLC_SUBGROUP_COLLECTIVE_REDUX(BitwiseOrKHR, __CLC_OR, or, uchar, 0)
@@ -553,9 +553,9 @@ __CLC_GROUP_COLLECTIVE(SMin, __CLC_MIN, int, INT_MAX)
553553
__CLC_GROUP_COLLECTIVE(UMin, __CLC_MIN, uint, UINT_MAX)
554554
__CLC_GROUP_COLLECTIVE(SMin, __CLC_MIN, long, LONG_MAX)
555555
__CLC_GROUP_COLLECTIVE(UMin, __CLC_MIN, ulong, ULONG_MAX)
556-
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, half, HALF_MAX)
557-
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, float, FLT_MAX)
558-
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, double, DBL_MAX)
556+
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, half, INFINITY)
557+
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, float, INFINITY)
558+
__CLC_GROUP_COLLECTIVE(FMin, __CLC_MIN, double, INFINITY)
559559

560560
__CLC_GROUP_COLLECTIVE(SMax, __CLC_MAX, char, CHAR_MIN)
561561
__CLC_GROUP_COLLECTIVE(UMax, __CLC_MAX, uchar, 0)
@@ -565,9 +565,9 @@ __CLC_GROUP_COLLECTIVE(SMax, __CLC_MAX, int, INT_MIN)
565565
__CLC_GROUP_COLLECTIVE(UMax, __CLC_MAX, uint, 0)
566566
__CLC_GROUP_COLLECTIVE(SMax, __CLC_MAX, long, LONG_MIN)
567567
__CLC_GROUP_COLLECTIVE(UMax, __CLC_MAX, ulong, 0)
568-
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, half, -HALF_MAX)
569-
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, float, -FLT_MAX)
570-
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, double, -DBL_MAX)
568+
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, half, -INFINITY)
569+
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, float, -INFINITY)
570+
__CLC_GROUP_COLLECTIVE(FMax, __CLC_MAX, double, -INFINITY)
571571

572572
__CLC_GROUP_COLLECTIVE(BitwiseAndKHR, __CLC_AND, uchar, ~0)
573573
__CLC_GROUP_COLLECTIVE(BitwiseOrKHR, __CLC_OR, uchar, 0)

0 commit comments

Comments
 (0)