Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove no longer instantiated templates from list of extern template declarations #1272

Merged
merged 1 commit into from
Feb 11, 2023

Conversation

vyasr
Copy link
Contributor

@vyasr vyasr commented Feb 10, 2023

A number of template instantiations were removed in #1255, but the corresponding extern declarations appear to have persisted, resulting in any library including those headers ending up with undefined symbols.

@vyasr vyasr added bug Something isn't working 3 - Ready for Review non-breaking Non-breaking change cpp labels Feb 10, 2023
@vyasr vyasr requested a review from a team as a code owner February 10, 2023 21:50
@vyasr vyasr self-assigned this Feb 10, 2023
@cjnolet
Copy link
Member

cjnolet commented Feb 10, 2023

@vyasr have you verified that this fix works for you to fix the symbol lookup error in cuml? I'm kind of surprised cuml is using these symbols at the moment and hasn't failed until now, but it makes sense that it would happen.

@vyasr
Copy link
Contributor Author

vyasr commented Feb 10, 2023

I'm testing it in this cuml PR. I don't think that cuml is using these anywhere important because conda CI is fine, but due to the raft rebuild + static linking happening for wheels I think the symbols are being searched.

@cjnolet
Copy link
Member

cjnolet commented Feb 10, 2023

Ah, okay. So I take it cuml's CI does fail without the change? (I thought someone had mentioned they didn't see the failures in cuml's CI)

@vyasr
Copy link
Contributor Author

vyasr commented Feb 10, 2023

I think I was updating my previous comment while you responded 😂 so to reiterate, we see these failures only for wheels, not conda. That's probably because as you suspect cuml isn't actually using these symbols, but they are problematic when raft is rebuilt in the wheels CI for cuml and then statically linked to as though the symbols should exist.

@cjnolet
Copy link
Member

cjnolet commented Feb 10, 2023

@vyasr got it. Also making a note here that I believe @achirkin recently found some of the ivfpq specializations were no longer being used within RAFT, which was adding some unecessary build time. That should be fixed soon too (and should help speed up the build a bit). :-)

@cjnolet
Copy link
Member

cjnolet commented Feb 11, 2023

/merge

@rapids-bot rapids-bot bot merged commit 4440c39 into rapidsai:branch-23.04 Feb 11, 2023
@achirkin
Copy link
Contributor

Also making a note here that I believe @achirkin recently found some of the ivfpq specializations were no longer being used within RAFT, which was adding some unecessary build time. That should be fixed soon too (and should help speed up the build a bit). :-)

I'm afraid, on the contrary: I've made the specializations (copmute_similarity kernel) be used again (by ivf_pq::search). This does improve the compile times though :)

@cjnolet
Copy link
Member

cjnolet commented Feb 11, 2023

I'm afraid, on the contrary: I've made the specializations (copmute_similarity kernel) be used again (by ivf_pq::search). This does improve the compile times though :)

This is what I meant- you found specializations which were no longer being used in the tests and benchmarks, causing unecessary compile times and you are fixing them by having them use the specializations again. Sorry for being confusing there.

@vyasr vyasr deleted the fix/remove_extern_templates branch February 13, 2023 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3 - Ready for Review bug Something isn't working cpp non-breaking Non-breaking change
Projects
Development

Successfully merging this pull request may close these issues.

3 participants