Proposal: Add build-selectable SVE2-256 architecture support
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- cpp
- Domain
- build-system, performance
Research direction
Start by reading the existing SVE2-128 implementation under include/sonic/internal/arch and review how architecture selection is exposed through the build. Then inspect the existing benchmark testdata and benchmark results. Done would be an accepted build-selectable SVE2-256 implementation covering serialization and deserialization, with benchmark evaluation against the stated NEON baseline.
Written by the indexing model from the issue text.
Description
The repository currently contains an SVE2-128 implementation under
include/sonic/internal/arch.
SVE2-256 is commonly used on Kunpeng950. Adding a separate SVE2-256
implementation would allow the code to take advantage of the wider vector
width and higher data-parallel throughput while continuing to use SVE2
instructions.
The implementation would be selected through a build option. The change is
approximately 1,200 lines and includes optimizations for
both serialization and deserialization.
In preliminary testing with Clang 16 and the existing benchmark testdata,
compared with the NEON build on the same Kunpeng950 system:
- Deserialization shows about 13%+ average CPU-time reduction, up to 35%.
- Serialization shows about 4% average CPU-time reduction, up to 15%.
Could you please confirm:
- Is adding a separate SVE2-256 architecture directory acceptable?
- Is the existing testdata sufficient for benchmark evaluation?
- Is the NEON build on the same Kunpeng950 system an acceptable baseline?
- Dominant language
- C++
- Stars
- 977
- Forks
- 129
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from bytedance/sonic-cpp
-
请问下,下个release版本有规划了吗Open
Difficulty 5/5 Over a week Newbie friendliness 1/100
-
对 parseImpl 进行优化Open
Difficulty 3/5 1-2 days Newbie friendliness 45/100
-
sonic 能在 mac 上测试吗Open
Difficulty 4/5 3-5 days Newbie friendliness 25/100
-
U64toa 单元测试用例不通过Open
Difficulty 3/5 1-2 days Newbie friendliness 55/100
-
支持AVX-512的浮点数打印算法Open
Difficulty 5/5 Over a week Newbie friendliness 25/100
All issues in bytedance/sonic-cpp
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
lldb
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
llvm/llvm-project#229592 · 11 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 3 days
-
Difficulty 1/5 Under an hour Newbie friendliness 94/100
llvm/offload-test-suite#1560 ·
Maintainers usually reply within 1 day
-
agent:Windows bug MEDIUM performance tooling
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day