-
Notifications
You must be signed in to change notification settings - Fork 501
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce sve function for matrix multiplication (#3348)
Summary: Add inlined SVE assembly routine, used to multiply matrixes with one column within FBgemmFP16 function. The function is compatible with CPUs having any register resize. By design, it will always load memory in 128-bits chunks. Only SVE is required, no need for SVE2. Some benchmarks: case m=1: ARM baseline: 9.1 Gflops ARM SVE: 17.5 Gflops => Over 92% performance uplift case m=2: ARM baseline: 16.4 Gflops ARM SVE: 29.2 Gflops => Over 78% performance uplift case m=3: ARM baseline: 21 Gflops ARM SVE: 40 Gflops => Over 90% performance uplift case m=4: ARM baseline: 24.8 Gflops ARM SVE: 47.5 Gflops => Over 91% performance uplift case m=5: ARM baseline: 27.3 Gflops ARM SVE: 52.5 Gflops => Over 92% performance uplift case m=6: ARM baseline: 29.3 Gflops ARM SVE: 56 Gflops => Over 91% performance uplift When the benchmark is let run, for m>=100 the optimized version converges at 58GFlops Reviewed By: jianyuh Differential Revision: D65720003
- Loading branch information
1 parent
8812a95
commit e146b8d
Showing
10 changed files
with
2,665 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.