-
Notifications
You must be signed in to change notification settings - Fork 887
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] nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified #1307
Comments
The warning about _BSD_SOURCE is fixed in RMM branch-0.7. What cuDF branch are you building? |
FWIW, you are using CUDA 10.1, Ubuntu 18.10, and Power8 CPU -- none of which RAPIDS tests or officially supports at this time. |
Please pull the latest branch-0.7 of cudf, then run |
@harrism I pulled the latest branch and did the submodule update thing. The following is the message after I added VERBOSE=1 as you recommended. ~/files/cudf/cpp/build$ make VERBOSE=1 |
Now that I removed all lines behind "-Werror" in CmakeLists.txt, now the make phase passes without nvcc fatal error. ~/files/cudf/cpp$ vi CMakeLists.txt Then, I encounter another error like below : /usr/include/c++/8/bits/basic_string.tcc:1067:1: error: cannot call member function ‘void std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_M_set_sharable() [with _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’ It looks like a problem related to the following discussion, but different... I am using gcc 8.2.0. |
I saw two things different in your build system. One: in those two I suspect an issue with cmake on your platform. And the basic_string thing may have something to do with the version of C++ standard library your platform has. Anyway, this is not a platform we have tested. I'll ask if we have any similar systems to test on. |
Looking a little more closely, the |
Hi @nasica88 can you put the Werror lines back in and then rerun cmake and paste the contents of |
@harrism Yes, I put the Werror lines back and reran cmake. Here's the flags.make. u0017649@sys-97701:~/files/cudf/cpp/build/CMakeFiles/cudf.dir$ cat flags.make CMAKE generated file: DO NOT EDIT!Generated by "Unix Makefiles" Generator, CMake Version 3.12compile CUDA with /usr/local/cuda/bin/nvcccompile CXX with /usr/bin/c++CUDA_FLAGS = -Xcompiler -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_70,code=compute_70 --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call -Wno-deprecated-declarations -Xptxas --disable-warnings -Werror cross-execution-space-call -Xcompiler -Wall,-Werror --define-macro JITIFY_THREAD_SAFE --define-macro USE_NVTX --define-macro HT_LEGACY_ALLOCATOR -O3 -DNDEBUG -Xcompiler=-fPIC -std=c++14 CUDA_DEFINES = -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Dcudf_EXPORTS CUDA_INCLUDES = -I/home/u0017649/files/cudf/cpp/build/googletest/install/include -I/home/u0017649/files/cudf/cpp/build/arrow/install/include -I/home/u0017649/files/cudf/cpp/build/arrow/build/flatbuffers_ep-prefix/src/flatbuffers_ep-install/include -I/usr/local/cuda/targets/ppc64le-linux/include -I/home/u0017649/files/cudf/cpp/build/include -I/home/u0017649/files/cudf/cpp/include -I/home/u0017649/files/cudf/cpp/src -I/home/u0017649/files/cudf/cpp/thirdparty/cub -I/home/u0017649/files/cudf/cpp/thirdparty/jitify -I/home/u0017649/files/cudf/cpp/thirdparty/moderngpu/src -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/include -I/home/u0017649/files/cudf/cpp/thirdparty/dlpack/include CXX_FLAGS = -Werror -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -DNDEBUG -fPIC -std=gnu++14 CXX_DEFINES = -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Dcudf_EXPORTS CXX_INCLUDES = -I/home/u0017649/files/cudf/cpp/build/googletest/install/include -I/home/u0017649/files/cudf/cpp/build/arrow/install/include -I/home/u0017649/files/cudf/cpp/build/arrow/build/flatbuffers_ep-prefix/src/flatbuffers_ep-install/include -I/usr/local/cuda/targets/ppc64le-linux/include -I/home/u0017649/files/cudf/cpp/build/include -I/home/u0017649/files/cudf/cpp/include -I/home/u0017649/files/cudf/cpp/src -I/home/u0017649/files/cudf/cpp/thirdparty/cub -I/home/u0017649/files/cudf/cpp/thirdparty/jitify -I/home/u0017649/files/cudf/cpp/thirdparty/moderngpu/src -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/include -I/home/u0017649/files/cudf/cpp/thirdparty/dlpack/include |
@harrism Reading more closely, I see that the error message from 'make VERBOSE=1' is now a bit different. Now I remember why I erased '-Werror' lines. It was because of those errors which would have been treated as warnings but for '-Werror' lines. Pls see below. u0017649@sys-97701:~/files/cudf/cpp/build$ make VERBOSE=1 |
@harrism I did some googling and applied some modification from this as below for the error of 'catching polymorphic type' thing. u0017649@sys-97701:~/files/cudf/cpp/build$ vi /home/u0017649/files/cudf/cpp/src/comms/ipc/ipc.cu With these modification, now the 'catching polymorphic type' errors are gone, but the other errors still stay as below. u0017649@sys-97701:~/files/cudf/cpp/build$ make VERBOSE=1 |
It seems the The other issue may be because of you set Why did you set it off? Can you try leaving the default ( |
Here's a fix for the |
@harrism Thanks. I used -DCMAKE_CXX11_ABI=OFF because the instruction guide here suggests that. Anyway, with -DCMAKE_CXX11_ABI=OFF removed, I see that specific error disappeared. However, now I see another error as below. u0017649@sys-97701:~/files/cudf/cpp/build$ make VERBOSE=1 |
#1326 fixes the documentation to specify setting ABI to ON is the default (and recommended) setting. |
@j-ieong I'd love to try cuda 10.0 and tried, but I cannot get it installed on my Ubuntu 18.04 ppc64le. It refuses to be installed with the following error message. cuda : Depends: cuda-10-0 (>= 10.0.130) but it is not going to be installed I'm thinking about trying Redhat 7.6 ppc64le. |
I'm not familiar with ppc support in CUDA, but are you using conda to install CUDA? I think you need to install the CUDA toolkit (and driver) from developer.nvidia.com |
@harrism Yes I did use the CUDA repo from nvidia, not conda. |
Did you try installing the toolkit using the .run file? It's highly recommended you use that rather than trying a package manager. |
@harrism No. For ppc64le architecture, NVIDIA does not provide run files. However, your advice gave me an inspiration and I tried a network repo, not a local repo of CUDA 10.0, and it worked ! Now I have CUDA 10.0 on my ubuntu. However, even with CUDA 10.0, I do encounter the error of 'identifier "__shfl_down" is undefined' as below. [ 8%] Building CUDA object CMakeFiles/cudf.dir/src/join/joining.cu.o |
I retried cmake with a clean installation of CUDA 10.0. It fails with the following message.
|
Tip: put long output results in markdown triple-backquote blocks. Suspect you don't have the latest nvstrings. |
After all, I ended up with the following error, which is quite similar to issue #1252 . However, I find my branch already has the fix. I guess somebody has to update the conda channel for ppc64le, too. I also find IBM has implemented RAPIDS in its own PowerAI toolkit, which is provided in its own conda channel. u0017649@sys-97701:~/files/cudf/cpp/build$ make -j2 |
@nasica88 this looks like you need to pull a nightly version of NVStrings instead of the current release if you're building 0.7 from source. Could you try that and post back with any issues? |
@kkraus14 Are you referring to this when you say NVStrings nightly version ? I tried that but it doesn't seem to be working for ppc64le architecture. Yes, I am building 0.7 from source. u0017649@sys-97701:~/files/custrings$ conda install -c rapidsai-nightly/label/cuda10.0 nvstrings PackagesNotFoundError: The following packages are not available from current channels:
Current channels:
|
We don't currently publish ppc64le packages unfortunately. You'll have to build nvstrings from source as well. |
I finally figured out what went wrong. In short, I recompiled custrings from the beginning all over again and that specific error went away. Changing gcc/g++ compiler version in the middle seems to be the cause of the undefined symbol error. I ran into another error, though, for which I'm going to open a separate issue. Thanks. |
Describe the bug
When building from source, 'make' produces "nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified" error.
Steps/Code to reproduce bug
After completing cmake successfully in build directory, running 'make' produces "nvcc fatal : A single input file is required..." error as below.
Expected behavior
'make' should be completed without error.
Environment details (please complete the following information):
The text was updated successfully, but these errors were encountered: