[ 
https://issues.apache.org/jira/browse/LUCENE-10128?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17422218#comment-17422218
 ] 

Robert Muir commented on LUCENE-10128:
--------------------------------------

yeah i probably used the wrong terminology. I wasn't sure how much of this was 
expected or not. please feel free to adjust issue title/description!

At the same time, indexing 4KB wikipedia docs with vectors is now 10x slower 
than indexing them without vectors. So I'm hoping we can improve some of the 
code here to make this stuff less painful.

> increased HNSW beam with causes large indexing perf regression
> --------------------------------------------------------------
>
>                 Key: LUCENE-10128
>                 URL: https://issues.apache.org/jira/browse/LUCENE-10128
>             Project: Lucene - Core
>          Issue Type: Task
>            Reporter: Robert Muir
>            Priority: Major
>         Attachments: 
> LUCENE-10128_remove_sparse_fixed_bitset_reflection.patch, 
> Screen_Shot_2021-09-28_at_09.10.15.png
>
>
> Just opening a ticket in case there is anything we could/should do about it. 
> Looking at Mike's nightly benchmarks, I see a large (like 4x) drop in 
> indexing perf with vectors after LUCENE-10109.
> There's some new stuff in the top CPU offenders:
> {noformat}
> PERCENT       CPU SAMPLES   STACK
> 19.93%        821395        org.apache.lucene.util.VectorUtil#dotProduct()
> 13.80%        568786        org.apache.lucene.util.LongHeap#downHeap()
> 11.06%        455711        
> org.apache.lucene.codecs.KnnVectorsWriter$VectorValuesMerger$MergerRandomAccess#vectorValue()
> 9.84%         405678        org.apache.lucene.util.LongHeap#upHeap()
> 6.72%         276931        java.util.concurrent.atomic.AtomicLong#get()
> 5.30%         218564        org.apache.lucene.util.LongHeap$2#lessThan()
> 2.69%         110872        java.util.Arrays#binarySearch0()
> 2.58%         106294        org.apache.lucene.util.hnsw.HnswGraph#search()
> 1.90%         78254         org.apache.lucene.util.LongHeap#push()
> {noformat}
> compared to before where the profile stacks looked like this:
> {noformat}
> PERCENT       CPU SAMPLES   STACK
> 13.58%        171575        org.apache.lucene.util.VectorUtil#dotProduct()
> 10.13%        127904        org.apache.lucene.util.LongHeap#downHeap()
> 9.84%         124257        org.apache.lucene.util.LongHeap#upHeap()
> 6.26%         79125         java.util.ArrayList#elementData()
> 4.34%         54831         java.util.Random#nextInt()
> 3.98%         50255         org.apache.lucene.util.BytesRefHash#equals()
> 3.69%         46594         org.apache.lucene.util.ByteBlockPool#allocSlice()
> 2.62%         33118         org.apache.lucene.util.BytesRefHash#findHash()
> 2.24%         28275         
> org.apache.lucene.analysis.standard.StandardTokenizerImpl#getNextToken()
> 2.14%         27033         
> org.apache.lucene.analysis.standard.StandardTokenizer#incrementToken()
> {noformat}
> At a glance, it seems to me that although some perf differences should be 
> expected, merging itself may have become more costly. Maybe there is some 
> stuff we can optimize about it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to