Skip to content

Commit a6447ca

Browse files
[SYCL][libclc] Fix identity for multiplication (intel#4337)
This resolves intel#4336 issue which is a bug related to 0 being used as the identity in the CUDA back-end. Signed-off-by: Michel Migdal [email protected]
1 parent ef6e054 commit a6447ca

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

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

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -211,17 +211,17 @@ __CLC_SUBGROUP_COLLECTIVE(FAdd, __CLC_ADD, half, 0)
211211
__CLC_SUBGROUP_COLLECTIVE(FAdd, __CLC_ADD, float, 0)
212212
__CLC_SUBGROUP_COLLECTIVE(FAdd, __CLC_ADD, double, 0)
213213

214-
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, char, 0)
215-
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, uchar, 0)
216-
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, short, 0)
217-
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, ushort, 0)
218-
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, int, 0)
219-
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, uint, 0)
220-
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, long, 0)
221-
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, ulong, 0)
222-
__CLC_SUBGROUP_COLLECTIVE(FMul, __CLC_MUL, half, 0)
223-
__CLC_SUBGROUP_COLLECTIVE(FMul, __CLC_MUL, float, 0)
224-
__CLC_SUBGROUP_COLLECTIVE(FMul, __CLC_MUL, double, 0)
214+
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, char, 1)
215+
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, uchar, 1)
216+
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, short, 1)
217+
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, ushort, 1)
218+
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, int, 1)
219+
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, uint, 1)
220+
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, long, 1)
221+
__CLC_SUBGROUP_COLLECTIVE(IMul, __CLC_MUL, ulong, 1)
222+
__CLC_SUBGROUP_COLLECTIVE(FMul, __CLC_MUL, half, 1)
223+
__CLC_SUBGROUP_COLLECTIVE(FMul, __CLC_MUL, float, 1)
224+
__CLC_SUBGROUP_COLLECTIVE(FMul, __CLC_MUL, double, 1)
225225

226226
__CLC_SUBGROUP_COLLECTIVE(SMin, __CLC_MIN, char, CHAR_MAX)
227227
__CLC_SUBGROUP_COLLECTIVE(UMin, __CLC_MIN, uchar, UCHAR_MAX)
@@ -332,17 +332,17 @@ __CLC_GROUP_COLLECTIVE(FAdd, __CLC_ADD, float, 0)
332332
__CLC_GROUP_COLLECTIVE(FAdd, __CLC_ADD, double, 0)
333333

334334
// There is no Mul group op in SPIR-V, use non-uniform variant instead.
335-
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, char, 0)
336-
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, uchar, 0)
337-
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, short, 0)
338-
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, ushort, 0)
339-
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, int, 0)
340-
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, uint, 0)
341-
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, long, 0)
342-
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, ulong, 0)
343-
__CLC_GROUP_COLLECTIVE(NonUniformFMul, FMul, __CLC_MUL, half, 0)
344-
__CLC_GROUP_COLLECTIVE(NonUniformFMul, FMul, __CLC_MUL, float, 0)
345-
__CLC_GROUP_COLLECTIVE(NonUniformFMul, FMul, __CLC_MUL, double, 0)
335+
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, char, 1)
336+
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, uchar, 1)
337+
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, short, 1)
338+
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, ushort, 1)
339+
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, int, 1)
340+
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, uint, 1)
341+
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, long, 1)
342+
__CLC_GROUP_COLLECTIVE(NonUniformIMul, IMul, __CLC_MUL, ulong, 1)
343+
__CLC_GROUP_COLLECTIVE(NonUniformFMul, FMul, __CLC_MUL, half, 1)
344+
__CLC_GROUP_COLLECTIVE(NonUniformFMul, FMul, __CLC_MUL, float, 1)
345+
__CLC_GROUP_COLLECTIVE(NonUniformFMul, FMul, __CLC_MUL, double, 1)
346346

347347
__CLC_GROUP_COLLECTIVE(SMin, __CLC_MIN, char, CHAR_MAX)
348348
__CLC_GROUP_COLLECTIVE(UMin, __CLC_MIN, uchar, UCHAR_MAX)

0 commit comments

Comments
 (0)