[SERVER-30870] Add FTS Fast Byte Vector Optimization for aarch64 Created: 29/Aug/17  Updated: 30/Oct/23  Resolved: 07/May/18

Status: Closed
Project: Core Server
Component/s: Text Search
Affects Version/s: 3.5.12
Fix Version/s: 4.0.0-rc0

Type: Improvement Priority: Major - P3
Reporter: Praveen Arkeri Assignee: Mark Benvenuto
Resolution: Fixed Votes: 0
Labels: Feature
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-19936 Performance pass on unicode-aware tex... Closed
related to WT-3851 Optimize wt_compare* routines with NE... Closed
related to WT-4008 Add ARM NEON support for row search o... Closed
is related to SERVER-30896 Add ARM NEON support for row search ... Closed
Backwards Compatibility: Fully Compatible
Sprint: Platforms 2018-05-21
Participants:

 Description   

Unicode FTS Fast Byte Vector optimization which uses vector instructions to manipulate sequence of bytes to improve performance is available for x86_64 and ppc64 but missing for aarch64.
Ref : https://github.com/mongodb/mongo/blob/master/src/mongo/db/fts/unicode/byte_vector.h#L30

Request to port Fast Byte vector optimization for aarch64 using Neon-intrinsics.



 Comments   
Comment by Githook User [ 07/May/18 ]

Author:

{'email': 'daniel.stewart@linaro.org', 'name': 'Daniel Stewart', 'username': 'stewart-daniel'}

Message: SERVER-30870 Enable Unicode Fast Byte Vector Optimization for arm64

closes #1222
Branch: master
https://github.com/mongodb/mongo/commit/b1dbe3e36e9bc3f4a8f0533f7d5faee5baaa5f97

Comment by Andrew Morrow (Inactive) [ 28/Feb/18 ]

A GitHub PR is preferred, discussion can happen there. Please make sure you have signed the MongoDB CLA: https://www.mongodb.com/legal/contributor-agreement. Thanks!

Comment by Daniel Stewart [ 28/Feb/18 ]

An implementation for AArch64 has been done by a colleague. Should I submit a pull request or post it here for comments?

Comment by Mathias Stearn [ 17/Oct/17 ]

The main whole-system benchmark I used was taken from SERVER-21690, along with the text indexing components of our sys-perf and mongo-perf benchmark suites. Additionally, I copied the text (just the text, not the HTML) from a wikipedia page that is fairly long in at least English (almost all ascii), German (a mix of ascii and non-ascii) and Japanese (almost no ascii), and ran that through `mongo::unicode::caseFoldAndStripDiacritcs()`. That microbenchmark was never checked in and was mostly used to ensure that the optimizations still worked well will a mix of ascii and non-ascii, and didn't measurably pessimize non-ascii languages.

Comment by Praveen Arkeri [ 16/Oct/17 ]

Any idea which benchmark was used to evaluate performance impact of Fast Byte Vector optimization?

Generated at Thu Feb 08 04:25:17 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.