rmuir commented on PR #13572:
URL: https://github.com/apache/lucene/pull/13572#issuecomment-2261866107

   Attached is a patch to get x86 support working.
   
   It makes some changes to the build: specifically the java code statically 
picks the best MethodHandle (SVE, Neon, Generic), and its able to compile 
Generic on any architecture/compiler (e.g. x86). I added necessary guards to 
the arm SVE/Neon code for this to work.
   
   Changes were necessary to dodge performance traps with MethodHandle or use 
wrong compiler flags. But I think it makes the build more straightforward: it 
builds native as you expect,  if you want to use different compiler set `CC` 
env vars etc differently. 
   
   Just with generic C code I see a good lift on avx-256 skylake:
   ```
   Benchmark                                   (size)   Mode  Cnt   Score   
Error   Units
   VectorUtilBenchmark.binaryDotProductVector     768  thrpt   15  10.019 ± 
0.080  ops/us
   VectorUtilBenchmark.dot8s                      768  thrpt   15  17.492 ± 
0.359  ops/us
   ```
   
   Next step is to add x86 intrinsics  (e.g. VNNI) and try to max out the 
hardware.
   
   
[x86.patch.txt](https://github.com/user-attachments/files/16449392/x86.patch.txt)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to