8000 Vectorize CompactProtocol write on aarch64 by Nicoshev · Pull Request #9605 · facebook/hhvm · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Vectorize CompactProtocol write on aa 8000 rch64 #9605

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Nicoshev
Copy link
Contributor

Summary:
Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt 38.38ns 26.05M
CompactProtocol_write_BigListByte 18.40us 54.33K
CompactProtocol_write_BigListShort 19.30us 51.82K
CompactProtocol_write_BigListInt 19.96us 50.11K
CompactProtocol_write_BigListBigInt 26.54us 37.68K
CompactProtocol_write_BigListFloat 18.54us 53.92K
CompactProtocol_write_BigListDouble 18.79us 53.22K

after:

CompactProtocol_write_SmallListInt 31.65ns 31.60M
CompactProtocol_write_BigListByte 223.77ns 4.47M
CompactProtocol_write_BigListShort 8.19us 122.04K
CompactProtocol_write_BigListInt 9.19us 108.81K
CompactProtocol_write_BigListBigInt 11.40us 87.73K
CompactProtocol_write_BigListFloat 830.74ns 1.20M
CompactProtocol_write_BigListDouble 1.55us 645.79K

Differential Revision: D72810122

@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 23, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 23, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 23, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Perf
8000
ormance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          8.19us   122.04K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          7.18us   139.31K
CompactProtocol_write_BigListInt                            9.19us   108.81K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev pushed a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 24, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 28, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 28, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
@Nicoshev Nicoshev force-pushed the export-D72810122 branch 2 times, most recently from 47f128c to 428c0f1 Compare April 30, 2025 17:39
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D72810122

Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev pushed a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev pushed a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev pushed a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request Apr 30, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request May 5, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev pushed a commit to Nicoshev/hhvm that referenced this pull request May 5, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request May 5, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev pushed a commit to Nicoshev/hhvm that referenced this pull request May 5, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request May 5, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request May 9, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request May 9, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev pushed a commit to Nicoshev/hhvm that referenced this pull request May 9, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122

Reviewed By: vitaut
Nicoshev added a commit to Nicoshev/hhvm that referenced this pull request May 12, 2025
Summary:

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Reviewed By: vitaut

Differential Revision: D72810122
Nicoshev pushed a commit to Nicoshev/hhvm that referenced this pull request May 12, 2025
Summary:
Pull Request resolved: facebook#9605

Vectorize CompactProtocol's list writing on aarch64.

Maybe new code should be placed in a different file instead.

Performance gains varies by type:

before:

CompactProtocol_write_SmallListInt                         38.38ns    26.05M
CompactProtocol_write_BigListByte                          18.40us    54.33K
CompactProtocol_write_BigListShort                         19.30us    51.82K
CompactProtocol_write_BigListInt                           19.96us    50.11K
CompactProtocol_write_BigListBigInt                        26.54us    37.68K
CompactProtocol_write_BigListFloat                         18.54us    53.92K
CompactProtocol_write_BigListDouble                        18.79us    53.22K

after:

CompactProtocol_write_SmallListInt                         31.65ns    31.60M
CompactProtocol_write_BigListByte                         223.77ns     4.47M
CompactProtocol_write_BigListShort                          6.58us   152.07K
CompactProtocol_write_BigListInt                            8.26us   121.06K
CompactProtocol_write_BigListBigInt                        11.40us    87.73K
CompactProtocol_write_BigListFloat                        830.74ns     1.20M
CompactProtocol_write_BigListDouble                         1.55us   645.79K

Differential Revision: D72810122

Reviewed By: vitaut
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0