-
Notifications
You must be signed in to change notification settings - Fork 197
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
Remove no longer instantiated templates from list of extern template declarations #1272
Conversation
@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. |
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. |
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) |
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. |
/merge |
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. |
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.