Fixes to the indexed reduce function for the cpu, opencl and cuda back ends #3658
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
These back ends were incorrectly assuming a linear array when finding the max/min value and its index. This causes an issue with a sub-array.
Description
In the case of the cuda and opencl back end this was just for the cpu-fallback methods which are used when the total number of elements in the array is less than or equal to 4096. There was no issue with the oneapi back end because it does not have this fall-back method. The fix for the cuda and opencl back ends was to only use the fall-back method for linear arrays. This is to avoid doing a complex sub-array copy operation from device to host memory.
Changes to Users
af_imax_all / af_imin_all functions now works for sub-arrays
Checklist