-
Notifications
You must be signed in to change notification settings - Fork 1.6k
[WTF] Integrate simdutf #9990
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
[WTF] Integrate simdutf #9990
Conversation
EWS run on previous version of this PR (hash 3b63f52) |
3b63f52
to
8c6f873
Compare
EWS run on previous version of this PR (hash 8c6f873) |
8c6f873
to
2eade91
Compare
EWS run on previous version of this PR (hash 2eade91) |
The transformation from 8-bit to 16-bit strings isn't very complicated; I'm surprised we couldn't just write the routine in vector assembly ourself. Is this really worth a 3rd party dependency? Maybe I'm misunderstanding the motivation? |
Making it the fastest is challenging, https://arxiv.org/pdf/2109.10433.pdf, and so far this is successfully making it super fast in all the architectures we care. |
2eade91
to
e291c42
Compare
EWS run on previous version of this PR (hash e291c42) |
e291c42
to
010daa5
Compare
EWS run on previous version of this PR (hash 010daa5) |
010daa5
to
37450d0
Compare
EWS run on previous version of this PR (hash 37450d0) |
@Constellation I recommend bumping the version. See https://github.com/simdutf/simdutf/releases
You definitively can do that (write the routine in vector assembly ourself). And some systems did just that... like Oracle GraalVM. However, the Our research on the topic:
We shall have more in the future. |
The adoption of the simdutf library by the popular Node.js JavaScript runtime lead to a significant
|
37450d0
to
94a723b
Compare
EWS run on previous version of this PR (hash 94a723b) |
94a723b
to
630ec5a
Compare
EWS run on previous version of this PR (hash 630ec5a) |
630ec5a
to
b0d4a0e
Compare
EWS run on previous version of this PR (hash b0d4a0e) |
b0d4a0e
to
78bec03
Compare
EWS run on previous version of this PR (hash 78bec03) |
EWS run on previous version of this PR (hash da09830) |
da09830
to
326e102
Compare
EWS run on previous version of this PR (hash 326e102) |
326e102
to
8ed317b
Compare
EWS run on previous version of this PR (hash 8ed317b) |
8ed317b
to
ce9b189
Compare
EWS run on previous version of this PR (hash ce9b189) |
ce9b189
to
b514250
Compare
EWS run on previous version of this PR (hash b514250) |
It is largely depending on ICU's implementation. |
b514250
to
6664728
Compare
EWS run on current version of this PR (hash 6664728) |
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.
rs=me
https://bugs.webkit.org/show_bug.cgi?id=250112 rdar://104145576 Reviewed by Michael Saboff. Add simdutf for faster base64 processing for new Base64 features in ECMAScript. Once it implements replacement character handling, we can also consider using it for UTF-8 / UTF-16 conversion too. Apple OSS Approval: OSS-13396 * Source/WTF/WTF.xcodeproj/project.pbxproj: * Source/WTF/wtf/CMakeLists.txt: * Source/WTF/wtf/simdutf/LICENSE-simdutf.txt: Added. * Source/WTF/wtf/simdutf/simdutf.cpp: Added. (_mm512_set_epi8): (simdutf::implementation::supported_by_runtime_system const): (simdutf::get_available_implementations): (simdutf::get_active_implementation): (simdutf::match_system): (simdutf::to_string): (simdutf::BOM::check_bom): (simdutf::BOM::bom_byte_size): (simdutf::result::result): * Source/WTF/wtf/simdutf/simdutf.h: Added. (simdutf::internal::detect_supported_architectures): (simdutf::internal::cpuid): (simdutf::implementation::name const): (simdutf::implementation::description const): (simdutf::implementation::required_instruction_sets const): (simdutf::implementation::implementation): (simdutf::internal::available_implementation_list::available_implementation_list): (simdutf::internal::atomic_ptr::atomic_ptr): (simdutf::internal::atomic_ptr::operator const T* const): (simdutf::internal::atomic_ptr::operator* const): (simdutf::internal::atomic_ptr::operator-> const): (simdutf::internal::atomic_ptr::operator T*): (simdutf::internal::atomic_ptr::operator*): (simdutf::internal::atomic_ptr::operator->): (simdutf::internal::atomic_ptr::operator=): Canonical link: https://commits.webkit.org/281011@main
6664728
to
68eced0
Compare
Committed 281011@main (68eced0): https://commits.webkit.org/281011@main Reviewed commits have been landed. Closing PR #9990 and removing active labels. |
68eced0
6664728
🛠 wincairo🧪 wpe-wk2🧪 wincairo-tests🧪 ios-wk2🧪 api-mac🧪 api-wpe🧪 ios-wk2-wpt🧪 mac-wk1🛠 🧪 jsc🧪 api-ios🧪 mac-wk2🧪 mac-AS-debug-wk2🧪 gtk-wk2🛠 tv🧪 jsc-armv7-tests🛠 tv-sim🛠 watch🛠 watch-sim