@@ -53,7 +53,6 @@ static float[][] pickInitialCentroids(PrefetchingFloatVectorValues vectors, int
5353 Random random = new Random (42L );
5454 int centroidsSize = Math .min (vectors .size (), centroidCount );
5555 float [][] centroids = new float [centroidsSize ][vectors .dimension ()];
56- vectors .prefetch (0 , centroidsSize - 1 );
5756 for (int i = 0 ; i < vectors .size (); i ++) {
5857 float [] vector ;
5958 if (i < centroidCount ) {
@@ -81,13 +80,10 @@ private static boolean stepLloyd(
8180 int dim = vectors .dimension ();
8281 centroidChanged .clear ();
8382 final float [] distances = new float [4 ];
84- // prefetch the first 4 and then we prefetch in batches of 4
85- // prefetching everything seems like overkill
86- vectors .prefetch (0 , 3 );
83+ vectors .prefetch (0 );
8784 for (int idx = 0 ; idx < vectors .size (); idx ++) {
88- if (idx % 3 == 0 && idx < vectors .size () - 1 ) {
89- // prefetch the next 4 vectors
90- vectors .prefetch (idx + 1 , Math .min (idx + 4 , vectors .size () - 1 ));
85+ if (idx < vectors .size () - 1 ) {
86+ vectors .prefetch (idx + 1 );
9187 }
9288 float [] vector = vectors .vectorValue (idx );
9389 int vectorOrd = translateOrd .apply (idx );
@@ -288,13 +284,10 @@ private void assignSpilled(
288284
289285 float [] diffs = new float [vectors .dimension ()];
290286 final float [] distances = new float [4 ];
291- // prefetch the first 4 and then we prefetch in batches of 4
292- // prefetching everything seems like overkill
293- vectors .prefetch (0 , 3 );
287+ vectors .prefetch (0 );
294288 for (int i = 0 ; i < vectors .size (); i ++) {
295- if (i % 3 == 0 && i < vectors .size () - 1 ) {
296- // prefetch the next 4 vectors
297- vectors .prefetch (i + 1 , Math .min (i + 4 , vectors .size () - 1 ));
289+ if (i < vectors .size () - 1 ) {
290+ vectors .prefetch (i + 1 );
298291 }
299292 float [] vector = vectors .vectorValue (i );
300293 int currAssignment = assignments [i ];
0 commit comments