Repository navigation
Optimize System.Text.ASCIIUtility for arm64 using cross-platform intrinsics #41292
Description
Activity
- addeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Aug 24, 2020 - removeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Aug 24, 2020 - addedCost:SWork that requires one engineer up to 1 weekWork that requires one engineer up to 1 week
on Jan 15, 2021 8 remaining items
- addedCost:MWork that requires one engineer up to 2 weeksWork that requires one engineer up to 2 weeksand removedCost:SWork that requires one engineer up to 1 weekWork that requires one engineer up to 1 week
on Feb 23, 2022 Could you please assign this to @SwapnilGaikwad
- ghost addedin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is merged
on Jun 1, 2022 - ghost removedin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is merged
on Jun 30, 2022 @kunalspathak with the attached change is this now addressed for all architectures, or should this remain open?
System.Text.ASCIIUtility.GetIndexOfFirstNonAsciiChar() is done for Arm64/X64.
Expecting a pull request for System.Text.ASCIIUtility.NarrowUtf16ToAscii() to be raised late this week/early next week.
System.Text.ASCIIUtility.GetIndexOfFirstNonAsciiChar() is done for Arm64/X64.
Expecting a pull request for System.Text.ASCIIUtility.NarrowUtf16ToAscii() to be raised late this week/early next week.
It's other way round.
NarrowUtf16ToAscii()is complete andSystem.Text.ASCIIUtility.GetIndexOfFirstNonAsciiChar()is not yet complete.It's other way round. NarrowUtf16ToAscii() is complete and System.Text.ASCIIUtility.GetIndexOfFirstNonAsciiChar() is not yet complete.
Oops, yes :)
- ghost addedin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is merged
on Jul 5, 2022 - ghost removedin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is merged
on Jul 7, 2022 - ghost locked as resolved and limited conversation to collaborators
on Aug 7, 2022
This item tracks the remaining System.Text.ASCIIUtility methods that can be optimized for ARM64 using intrinsics. Many were completed in 5.0.0 with #35034, but two methods remain. Both of them had prior attempts to apply ARM64 intrinsics, but the efforts were not completed.
Update for .NET 7
Now that we have cross-platform intrinsics APIs (#49397), these optimizations should be completed using those APIs instead of adding ARM64-specific intrinsics code paths. The effort could optionally include first measuring performance of these methods with the ARM64-specific intrinsics in place, and then measuring the performance of these methods with the cross-platform intrinsics.
We previously attempted to implement these optimizations during .NET 5, but the draft PRs linked above were closed because they were introducing unexpected regressions. Therefore, the effort on these optimizations must include investigation of those pitfalls and finding an approach that simultaneously optimizes the code for ARM64 and avoids regressions elsewhere.
Example use of the new cross-platform intrinsics: #63722