Reduce binary size of refine functions#1095
Reduce binary size of refine functions#1095rapids-bot[bot] merged 6 commits intorapidsai:branch-25.08from
Conversation
|
The |
|
The binary size is nicely reduced, but test fail due to undefined symbols.
|
|
The error is related to the filter type used for instantiating the search kernels. I am looking into the details. |
643f3b4 to
028e98b
Compare
achirkin
left a comment
There was a problem hiding this comment.
Thanks Tamas, the code looks good to me. I have couple comments to improve my understanding of the new indexing types.
|
tfeher
left a comment
There was a problem hiding this comment.
Thank you Artem for the review, I have addressed the issues.
tfeher
left a comment
There was a problem hiding this comment.
Thanks Divye for the review, I have addressed the issues.
|
/merge |
The refine functions that work with GPU data use IVF-Flat under the hood to perform the refinement operation. This PR adds extern template declarations for `ivfflat_interleaved_scan` and uses these in the refine functions. This way we avoid recompiling the IVF-Flat search kernels, and save binary size. Before this PR `ivfflat_interleaved_scan` was compiled through the `ivf_flat::search()` function instantiations. But the function symbols were not available due to inlining. This PR also add explicit instantiations for `ivfflat_interleaved_scan`, and now both `ivf_flat::search` and `refine` can use the same interleaved scan function. Authors: - Tamas Bela Feher (https://github.com/tfeher) Approvers: - Artem M. Chirkin (https://github.com/achirkin) - Divye Gala (https://github.com/divyegala) URL: rapidsai#1095
The refine functions that work with GPU data use IVF-Flat under the hood to perform the refinement operation. This PR adds extern template declarations for `ivfflat_interleaved_scan` and uses these in the refine functions. This way we avoid recompiling the IVF-Flat search kernels, and save binary size. Before this PR `ivfflat_interleaved_scan` was compiled through the `ivf_flat::search()` function instantiations. But the function symbols were not available due to inlining. This PR also add explicit instantiations for `ivfflat_interleaved_scan`, and now both `ivf_flat::search` and `refine` can use the same interleaved scan function. Authors: - Tamas Bela Feher (https://github.com/tfeher) Approvers: - Artem M. Chirkin (https://github.com/achirkin) - Divye Gala (https://github.com/divyegala) URL: rapidsai#1095
The refine functions that work with GPU data use IVF-Flat under the hood to perform the refinement operation. This PR adds extern template declarations for
ivfflat_interleaved_scanand uses these in the refine functions. This way we avoid recompiling the IVF-Flat search kernels, and save binary size.Before this PR
ivfflat_interleaved_scanwas compiled through theivf_flat::search()function instantiations. But the function symbols were not available due to inlining. This PR also add explicit instantiations forivfflat_interleaved_scan, and now bothivf_flat::searchandrefinecan use the same interleaved scan function.