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

[BUG] Importing statically configured libcudf fails with missing nanoarrow dependency #15453

Closed
jlowe opened this issue Apr 3, 2024 · 3 comments · Fixed by #15456
Closed
Labels
bug Something isn't working CMake CMake build issue libcudf Affects libcudf (C++/CUDA) code.

Comments

@jlowe
Copy link
Contributor

jlowe commented Apr 3, 2024

Describe the bug
Relates to #15435. After the static configuration was fixed, the build makes it past building libcudf but then when a downstream project tries to import libcudf after it's been installed, the config fails with the error:

[2024-04-03T14:19:22.841Z] [INFO]      [exec] -- Configuring incomplete, errors occurred!
[2024-04-03T14:19:22.841Z] [INFO]      [exec] CMake Error at /usr/local/cmake-3.26.4-linux-x86_64/share/cmake-3.26/Modules/CMakeFindDependencyMacro.cmake:76 (find_package):
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   By not providing "Findnanoarrow.cmake" in CMAKE_MODULE_PATH this project
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   has asked CMake to find a package configuration file provided by
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   "nanoarrow", but CMake did not find one.
[2024-04-03T14:19:22.841Z] [INFO]      [exec] 
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   Could not find a package configuration file provided by "nanoarrow" with
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   any of the following names:
[2024-04-03T14:19:22.841Z] [INFO]      [exec] 
[2024-04-03T14:19:22.841Z] [INFO]      [exec]     nanoarrowConfig.cmake
[2024-04-03T14:19:22.841Z] [INFO]      [exec]     nanoarrow-config.cmake
[2024-04-03T14:19:22.841Z] [INFO]      [exec] 
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   Add the installation prefix of "nanoarrow" to CMAKE_PREFIX_PATH or set
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   "nanoarrow_DIR" to a directory containing one of the above files.  If
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   "nanoarrow" provides a separate development package or SDK, be sure it has
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   been installed.
[2024-04-03T14:19:22.841Z] [INFO]      [exec] Call Stack (most recent call first):
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   /home/jenkins/agent/workspace/jenkins-spark-rapids-jni_submodule-sync-dev-2985/thirdparty/cudf/cpp/build/cudf-dependencies.cmake:439 (find_dependency)
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   /home/jenkins/agent/workspace/jenkins-spark-rapids-jni_submodule-sync-dev-2985/thirdparty/cudf/cpp/build/cudf-config.cmake:90 (include)
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   /home/jenkins/agent/workspace/jenkins-spark-rapids-jni_submodule-sync-dev-2985/target/libcudfjni/_deps/rapids-cmake-src/rapids-cmake/find/package.cmake:125 (find_package)
[2024-04-03T14:19:22.841Z] [INFO]      [exec]   CMakeLists.txt:95 (rapids_find_package)

Steps/Code to reproduce bug
With an environment that provides JDK 8+ and Maven:

git clone --depth 1 --branch branch-24.06 https://github.com/NVIDIA/spark-rapids-jni.git
cd spark-rapids-jni
git submodule update --init --recursive
cd thirdparty/cudf
git checkout branch-24.06
git pull
cd ../..
build/build-in-docker -DGPU_ARCHS="80-real" clean package -Dsubmodule.check.skip=true

Expected behavior
libcudf configured as a static library can be imported after being installed

Environment overview (please complete the following information)

@jlowe jlowe added bug Something isn't working libcudf Affects libcudf (C++/CUDA) code. CMake CMake build issue labels Apr 3, 2024
@jlowe
Copy link
Contributor Author

jlowe commented Apr 3, 2024

I noticed that in the installed libcudf directory, there are no nanoarrow cmake files under lib64/cmake/ but other libcudf dependencies such as kvikio, cuco, rmm, etc. do have cmake directories there.

@jlowe
Copy link
Contributor Author

jlowe commented Apr 3, 2024

there are no nanoarrow cmake files under lib64/cmake/

This is incorrect, I was accidentally looking at the wrong build. lib64/cmake/nanoarrow exists along with nanoarr-wconfig.cmake, nanoarrow-targets.cmake and others underneath it.

@jlowe
Copy link
Contributor Author

jlowe commented Apr 3, 2024

Note that this is failing in the libcudfjni build which picks up libcudf from where it builds, not where it installs. It appears nanoarrow cmake files are being installed properly, but they are not being located when importing the cudf project from cudf/cpp/build/.

@jlowe jlowe linked a pull request Apr 3, 2024 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working CMake CMake build issue libcudf Affects libcudf (C++/CUDA) code.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant