-
Notifications
You must be signed in to change notification settings - Fork 37
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
Utf8 valid arm64 neon #87
base: main
Are you sure you want to change the base?
Conversation
Atlantis commands can't be run on fork pull requests. To enable, set --allow-fork-prs or, to disable this message, set --silence-fork-pr-errors |
|
Atlantis commands can't be run on fork pull requests. To enable, set --allow-fork-prs or, to disable this message, set --silence-fork-pr-errors |
|
This is fantastic! Unfortunately I don't have permissions to merge on this repository anymore, but maybe @kevinburkesegment can give a hand? |
@achille-roussel |
The project is published under MIT license, so your contributions to it will be licensed the same way, there are no other actions needed on your end. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@AndreyyTs thanks so much for the contribution! Yep, we don't really need much for an additional license here, though we should probably adopt using an SPDX comment in each file.
I've left a few minor comments, but overall this looks great!
Atlantis commands can't be run on fork pull requests. To enable, set --allow-fork-prs or, to disable this message, set --silence-fork-pr-errors |
|
e34f163
to
53e0bdb
Compare
Atlantis commands can't be run on fork pull requests. To enable, set --allow-fork-prs or, to disable this message, set --silence-fork-pr-errors |
|
@kalamay |
Atlantis commands can't be run on fork pull requests. To enable, set --allow-fork-prs or, to disable this message, set --silence-fork-pr-errors |
|
Hi @AndreyyTs, I'm trying to set aside some time to figure out why this is impacting our builds on the |
@kalamay Hi, did you manage to watch it? |
So I've dug into a bit more, and it looks like the issue is with the use of go version 1.18 as a minimum version. It seems to lack definitions for some of the NEON instructions you are using. In this case, the first instruction that is unrecognized looks to be You can see a few more details here: https://github.com/segmentio/asm/actions/runs/11741614998/job/33625198406?pr=87 There's generally two ways around this. We can bump up the minimum version, but we need to figure out which version to target. This also needs to be considered, as this does then have downstream affects on minimum versions. Do you have an idea what version you were using when developing this? The second way around this is to directly encode the instructions as binary instead of using assembly mnemonics. For example, I've does this in our base64 here: https://github.com/segmentio/asm/blob/main/base64/encode_arm64.s#L59 |
@kalamay |
Successfully implemented ARM optimization analogous to AVX2 vectorization, following the methodology outlined in the research paper (arxiv.org/pdf/2010.03090)
Benchmark Results
Environment
Results Table