-
Notifications
You must be signed in to change notification settings - Fork 10
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
CMake cannot locate libraries and includes #8
Comments
Hi Yujin, glad that you tried cura. And sorry about that our project lacks documentary. Regarding to your question, a quick way would be that you try using cudf 0.18, which is the version we have been successfully building cura last time. By looking at the cudf history, PR rapidsai/cudf#7107 seems combine multiple libraries together since 0.19, whereas it was once split into multiple since 0.18. Cudf is in fast pace of development and we haven't caught up to its latest version yet. We'll try to do it but that may take a while. If you have any questions using cura, please tell us and we're happy to help. Thank you. BTW: it's preferable to enable cudf's ptds build option, this is kind of essential for cura. |
Hi, Thank you. I've switched to Apparently, libcudacxx 19a20a7219c renamed |
Did you hit any CMake error or it somehow got to the actual compile and the error was thrown by GCC? If it is the later case, I think libcudacxx is installed during cudf conda env initialization. Have you tried updating the conda env after you switching to cudf 0.18? |
Hi, It was a CMake error. Here's the output: Pastebin.com. An abridged version:
My CMake is EDIT: I used an unedited version of the CMake scripts. |
I did exit my shell, logged in again, and reactivated the environment. |
|
It's located in
I don't know if I'm doing this the right way since I couldn't find an instruction to do this in cudf/CONTRIBUTING.md.
I don't think there was any change. |
I've found that libcudacxx is part of the CUDA Toolkit. I see that a CUDA Toolkit is installed in my Conda environment:
|
Could you paste the actual path of file We may hit some unexpected condition here. As a quick fix, you can try replace the actual relative path of file Line 153 in d894d4c
|
The I'll try to change the relative path and, if needed, also change the "name" to |
UPDATE: Found # find_path(CUDF_LIBCUDACXX_INCLUDE_DIR NAMES simt/chrono HINTS "${CONDA_PREFIX}/include/libcudf/libcudacxx")
find_path(CUDF_LIBCUDACXX_INCLUDE_DIR NAMES chrono HINTS "${CONDA_PREFIX}/include/libcudf/libcudacxx/cuda/std") The |
OK, now I'm in the
I think I have something misconfigured. |
This error seems unfamiliar to me. As you mentioned it might be some fundamental configuration issue. One thing you can look at is if the compiler to build cura is the same as the one you built cudf. As far as I recall there are some limitation of GCC version when compiling cuda projects. |
By looking at the information you supplied before, I found something suspicious: Your local installation of CUDA is 11.1:
However you were using a conda env targeting CUDA 10.1:
It might not be the reason of the error, but it worth a shot to try updating conda env to 11.0 (yes, cudf 0.18 doesn't have a 11.1 conda env but 11.0 would do too). |
I'm suspecting the same thing. Unfortunately, I am not the owner of the computer I'm using, and my colleagues are using CUDA 10.1 toolkits so I need to use the same working versions. However, I also got ahold of my own computer with an NVIDIA GPU, so I will try that setup there with the matching versions of CUDA installation/tookits. Thanks for the extended support and I'll get back to you tomorrow (Pacific Time). |
OK, hope things go well on your own machine. Come back anytime. |
I've set up my own computer (Windows and WSL2 Ubuntu 20.04) which does recognize and run CUDA on my GPU from the Linux side. So far I was able to configure the build like so:
In summary, I'm using
Now in the build stage, I'm getting an error but it's something different. See:
The reporting is that there is a problem with Arrow. I built the same package with GCC/G++ 9.3.0 as well. Now my error looks like this:
I think that ultimately the problem has something to do with the downloaded Arrow library (Clang is clearer here in the error messages). Do you think if I messed with the CMake script that finds Arrow, that this problem may be solved? |
I may need several inputs:
|
One more thing. I may have mis-configured CUDA toolkit root directory in CMake. You can try replacing Line 108 in d894d4c
with the one under your conda env directory, i.e. /home/yujinkim/miniconda3/envs/rapids-0.18/.../cuda .
This should effectively make compiler see exactly the same cuda include/lib as you build cudf. And at least clear some noise for the real question we are dealing with. |
The error is the same when using GCC/G++. |
Well, I can't quite find the folder in my Conda environment:
I might be misunderstanding something. Let me read more about CUDA/cuDF and then come back. |
Hi @csm-yujinkim , I've added some simple conda support for building cura. You can now try pulling the latest change and building with the following command:
Let me know if this works for you. PS: I made a mistake about the cudf version that cura depends on. It should be 0.17 rather than 0.18 and my apologies for all the mess that this misleading caused. I was recently able to get my desktop back to work (my card was borrowed before) so I took some deeper look and sorted things out. Sorry about that. |
OK, it's building now, and tests pass as well. I had to revert the script to find LIBCUDACXX, however: diff --git a/cmake/find/cudf.cmake b/cmake/find/cudf.cmake
index a249744..9b7915d 100644
--- a/cmake/find/cudf.cmake
+++ b/cmake/find/cudf.cmake
@@ -150,7 +150,7 @@ foreach(CUDF_MODULE IN LISTS CUDF_MODULE_LIST)
endforeach()
find_path(CUDF_INCLUDE_DIR NAMES cudf HINTS "${CONDA_PREFIX}/include")
-find_path(CUDF_LIBCUDACXX_INCLUDE_DIR NAMES std/chrono HINTS "${CONDA_PREFIX}/include/libcudf/libcudacxx/cuda")
+find_path(CUDF_LIBCUDACXX_INCLUDE_DIR NAMES simt/chrono HINTS "${CONDA_PREFIX}/include/libcudf/libcudacxx")
message(STATUS "Using CUDF: ${CUDF_INCLUDE_DIR} : ${CUDF_LIBRARIES}")
message(STATUS "Using LIBCUDACXX: ${CUDF_LIBCUDACXX_INCLUDE_DIR}") |
Thank you very much! |
You are welcome. Let me know if you have any questions using cura. |
I found and read your article at PingCAP. I was impressed and I would like to compile. However, when I tried, I got the following error:
I'm using Ubuntu 20.04 and I built cuDF from source (
branch-0.19
targeting CUDA 10.1). I took a look at/cmake/find/cudf.cmake
and, in lines 129-150:... I found that the corresponding files (e.g.
cudf_ast
) did not exist in thelib
directory mentioned, which only containedlibcudf.so
.So, I wonder, what can I do in order to get these libraries to exist?
The text was updated successfully, but these errors were encountered: