[VL] Not load GPU libraries on CPU node
- Dominant language
- Scala
- Stars
- 1.6k
- Forks
- 657
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 85
Description
### Description
Now it will throw exception that cannot find cuda libraries.
Because libvelox.so link cudf::cudf, so all the environment will try to load gpu libraries.
May load velox always, and load separate library, e.g. libvelox_cudf.so library conditionally depending on the jni call if it is gpu node on java side.
The detection should not rely on GPU library, like detecting if the command `nvidia-smi` exists.
### Gluten version
None
Contributor guide
Research direction
Trace how libvelox.so is linked and loaded through the JNI call on the Java side, and identify where cudf::cudf causes CUDA libraries to load on CPU nodes. Compare that path with the proposed conditional libvelox_cudf.so loading and use a CPU-node check that does not depend on nvidia-smi. Done means CPU nodes load without CUDA-library errors while GPU nodes still load the GPU library.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, scala
- Domain
- backend, build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100