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] nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified #1307

Closed
nasica88 opened this issue Mar 28, 2019 · 29 comments
Labels
bug Something isn't working CMake CMake build issue

Comments

@nasica88
Copy link

nasica88 commented Mar 28, 2019

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.

~/files/cudf/cpp$ mkdir build && cd build

~/files/cudf/cpp/build$ cmake .. -DCMAKE_INSTALL_PREFIX=~/anaconda3 -DCMAKE_CXX11_ABI=OFF

~/files/cudf/cpp/build$ make
Scanning dependencies of target rmm
Scanning dependencies of target stringify
[  0%] Building CXX object CMakeFiles/stringify.dir/thirdparty/jitify/stringify.cpp.o
[  1%] Building CXX object rmm/CMakeFiles/rmm.dir/src/rmm.cpp.o
[  2%] Linking CXX executable stringify
[  2%] Built target stringify
[  2%] Building CXX object rmm/CMakeFiles/rmm.dir/src/memory_manager.cpp.o
[  3%] Building CXX object rmm/CMakeFiles/rmm.dir/thirdparty/cnmem/src/cnmem.cpp.o
Scanning dependencies of target stringify_run
[  4%] Run stringify on header types.h to convert it to c-str for use in JIT compiled code
[  4%] Built target stringify_run
[  5%] Linking CXX shared library librmm.so
[  5%] Built target rmm
Scanning dependencies of target random_allocate
Scanning dependencies of target cudf
[  6%] Building CXX object rmm/tests/CMakeFiles/random_allocate.dir/performance/random_allocate.cpp.o
In file included from /usr/include/powerpc64le-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/limits.h:26,
                 from /usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h:194,
                 from /usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/syslimits.h:7,
                 from /usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h:34,
                 from /usr/local/cuda/targets/ppc64le-linux/include/driver_types.h:77,
                 from /usr/local/cuda/targets/ppc64le-linux/include/builtin_types.h:59,
                 from /usr/local/cuda/targets/ppc64le-linux/include/cuda_runtime_api.h:139,
                 from /home/u0017649/files/cudf/cpp/thirdparty/rmm/tests/performance/random_allocate.cpp:17:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
 # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
   ^~~~~~~
[  6%] Linking CXX executable ../../bench/random_allocate
[  6%] Built target random_allocate
Scanning dependencies of target RMM_TEST
[  6%] Building CXX object rmm/tests/CMakeFiles/RMM_TEST.dir/memory_tests.cpp.o
[  6%] Building CUDA object CMakeFiles/cudf.dir/src/comms/ipc/ipc.cu.o
nvcc fatal   : A single input file is required for a non-link phase when an outputfile is specified
make[2]: *** [CMakeFiles/cudf.dir/build.make:63: CMakeFiles/cudf.dir/src/comms/ipc/ipc.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1003: CMakeFiles/cudf.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  7%] Linking CXX executable ../../gtests/RMM_TEST
[  7%] Built target RMM_TEST
make: *** [Makefile:141: all] Error 2

Expected behavior
'make' should be completed without error.

Environment details (please complete the following information):

  • Environment location: IBM POWER8 cloud
  • Method of cuDF install: from source
~/files/cudf$ ./print_env.sh
**git***
commit e0acdc616a71f52712f34deade8ec014542d0e17 (HEAD -> branch-0.7, origin/branch-0.7, origin/HEAD)
Merge: e69b1c20 07bd910d
Author: Mark Harris <mharris@nvidia.com>
Date:   Wed Mar 27 16:18:04 2019 +1100

    Merge pull request #1293 from Shakeebbk/master

    Fix Inaccurate error message in join.pyx

***OS Information***
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.10
DISTRIB_CODENAME=cosmic
DISTRIB_DESCRIPTION="Ubuntu 18.10"
NAME="Ubuntu"
VERSION="18.10 (Cosmic Cuttlefish)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.10"
VERSION_ID="18.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=cosmic
UBUNTU_CODENAME=cosmic
Linux sys-97541 4.18.0-11-generic #12-Ubuntu SMP Tue Oct 23 19:20:58 UTC 2018 ppc64le ppc64le ppc64le GNU/Linux

***GPU Information***
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.


***CPU***
Architecture:        ppc64le
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  2
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Model:               2.1 (pvr 004b 0201)
Model name:          POWER8E (raw), altivec supported
Hypervisor vendor:   KVM
Virtualization type: para
L1d cache:           64K
L1i cache:           32K
NUMA node0 CPU(s):   0,1

***CMake***
/home/u0017649/anaconda3/bin/cmake
cmake version 3.12.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

***g++***
/usr/bin/g++
g++ (Ubuntu 8.2.0-7ubuntu1) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


***nvcc***
/usr/local/cuda/bin/nvcc
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:09:58_PST_2019
Cuda compilation tools, release 10.1, V10.1.105

***Python***
/home/u0017649/anaconda3/bin/python
Python 3.7.0

***Environment Variables***
PATH                            : /home/u0017649/anaconda3/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LD_LIBRARY_PATH                 : /home/u0017649/anaconda3/lib:/usr/local/cuda/lib64:/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib:/lib64:/lib
NUMBAPRO_NVVM                   :
NUMBAPRO_LIBDEVICE              :
CONDA_PREFIX                    :
PYTHON_PATH                     :

***conda packages***
/home/u0017649/anaconda3/bin/conda
# packages in environment at /home/u0017649/anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0
alabaster                 0.7.11                   py37_0
anaconda                  5.3.0                    py37_0
anaconda-client           1.7.2                    py37_0
anaconda-project          0.8.2                    py37_0
appdirs                   1.4.3            py37h28b3542_0
arrow                     0.10.0                     py_1    conda-forge
asn1crypto                0.24.0                   py37_0
astroid                   2.0.4                    py37_0
astropy                   3.0.4            py37h14c3975_0
atomicwrites              1.2.1                    py37_0
attrs                     18.2.0           py37h28b3542_0
automat                   0.7.0                    py37_0
babel                     2.6.0                    py37_0
backcall                  0.1.0                    py37_0
backports                 1.0                      py37_1
backports.shutil_get_terminal_size 1.0.0                    py37_2
beautifulsoup4            4.6.3                    py37_0
bitarray                  0.8.3            py37h14c3975_0
bkcharts                  0.2                      py37_0
blas                      1.0                    openblas
bleach                    2.1.4                    py37_0
blosc                     1.14.4               hdbcaa40_0
bokeh                     0.13.0                   py37_0
boost                     1.67.0                   py37_4
boost-cpp                 1.67.0               h14c3975_4
boto                      2.49.0                   py37_0
bottleneck                1.2.1            py37h035aef0_1
brotli                    1.0.7                he6710b0_0
bzip2                     1.0.6                h14c3975_5
ca-certificates           2018.03.07           hf82bc7d_0
cairo                     1.14.12              h8948797_3
certifi                   2018.8.24                py37_1
cffi                      1.11.5           py37h9745a5d_0
chardet                   3.0.4                    py37_1
click                     6.7                      py37_0
cloudpickle               0.5.5                    py37_0
clyent                    1.2.2                    py37_1
cmake                     3.12.2               h52cb24c_0
colorama                  0.3.9                    py37_0
conda                     4.5.11                   py37_0
conda-build               3.15.1                   py37_0
conda-env                 2.6.0                         1
constantly                15.1.0           py37h28b3542_0
contextlib2               0.5.5                    py37_0
cryptography              2.3.1            py37hc365091_0
curl                      7.61.0               h84994c4_0
cycler                    0.10.0                   py37_0
Cython                    0.29                      <pip>
cython                    0.28.5           py37hf484d3e_0
cytoolz                   0.9.0.1          py37h14c3975_1
dask                      0.19.1                   py37_0
dask-core                 0.19.1                   py37_0
datashape                 0.5.4                    py37_1
decorator                 4.3.0                    py37_0
distributed               1.23.1                   py37_0
docutils                  0.14                     py37_0
entrypoints               0.2.3                    py37_2
et_xmlfile                1.0.1                    py37_0
expat                     2.2.6                he6710b0_0
fastcache                 1.0.2            py37h14c3975_2
filelock                  3.0.8                    py37_0
flask                     1.0.2                    py37_1
flask-cors                3.0.6                    py37_0
flatbuffers               1.10.0               he6710b0_0
fontconfig                2.13.0               h9420a91_0
freetype                  2.9.1                h8a8886c_0
get_terminal_size         1.0.0                         0
gevent                    1.3.6            py37h7b6447c_0
gflags                    2.1.2                         0
glib                      2.56.2               hd408876_0
glob2                     0.6                      py37_0
gmp                       6.1.2                h7f7056e_2
gmpy2                     2.0.8            py37h10f8cd9_2
greenlet                  0.4.15           py37h7b6447c_0
h5py                      2.8.0            py37h8d01980_0
hdf5                      1.10.2               hba1933b_1
heapdict                  1.0.0                    py37_2
html5lib                  1.0.1                    py37_0
hyperlink                 18.0.0                   py37_0
icu                       58.2                 h64fc554_1
idna                      2.7                      py37_0
imageio                   2.4.1                    py37_0
imagesize                 1.1.0                    py37_0
incremental               17.5.0                   py37_0
ipykernel                 4.9.0                    py37_1
ipython                   6.5.0                    py37_0
ipython_genutils          0.2.0                    py37_0
ipywidgets                7.4.1                    py37_0
isort                     4.3.4                    py37_0
itsdangerous              0.24                     py37_1
jbig                      2.1                  h14c3975_0
jdcal                     1.4                      py37_0
jedi                      0.12.1                   py37_0
jinja2                    2.10                     py37_0
jpeg                      9b                   hcb7ba68_2
jsonschema                2.6.0                    py37_0
jupyter                   1.0.0                    py37_7
jupyter_client            5.2.3                    py37_0
jupyter_console           5.2.0                    py37_1
jupyter_core              4.4.0                    py37_0
jupyterlab                0.34.9                   py37_0
jupyterlab_launcher       0.13.1                   py37_0
kiwisolver                1.0.1            py37hf484d3e_0
lazy-object-proxy         1.3.1            py37h14c3975_2
libboost                  1.67.0               h46d08c1_4
libcurl                   7.61.0               h1ad7b7a_0
libedit                   3.1.20170329         h6b74fdf_2
libffi                    3.2.1                hf62a594_5
libgcc-ng                 8.2.0                h822a55f_1
libgfortran-ng            7.3.0                h822a55f_1
libopenblas               0.2.20               h9ac9557_7
libpng                    1.6.32               h288d48a_4
libsodium                 1.0.16               h1bed415_0
libstdcxx-ng              8.2.0                h822a55f_1
libtiff                   4.0.9                he85c1e1_1
libuuid                   1.0.3                h1bed415_2
libxcb                    1.13                 h1bed415_0
libxml2                   2.9.8                h26e45fe_1
libxslt                   1.1.32               h1312cb7_0
locket                    0.2.0                    py37_1
lxml                      4.2.5            py37hefd8a0e_0
lz4-c                     1.8.3             hf484d3e_1001    conda-forge
lzo                       2.10                 h0dabc4d_2
markupsafe                1.0              py37h14c3975_1
matplotlib                2.2.3            py37hb69df0a_0
mccabe                    0.6.1                    py37_1
mistune                   0.8.3            py37h14c3975_1
more-itertools            4.3.0                    py37_0
mpc                       1.1.0                h10f8cd9_1
mpfr                      4.0.1                hdf1c602_3
mpmath                    1.0.0                    py37_2
msgpack-python            0.5.6            py37h6bb024c_1
multipledispatch          0.6.0                    py37_0
nbconvert                 5.3.1                    py37_0
nbformat                  4.4.0                    py37_0
ncurses                   6.1                  hf484d3e_0
networkx                  2.1                      py37_0
nltk                      3.3.0                    py37_0
nose                      1.3.7                    py37_2
notebook                  5.6.0                    py37_0
numexpr                   2.6.7            py37h98f89e9_0
numpy                     1.14.5           py37h2aefc1b_4
numpy-base                1.14.5           py37h2b20989_4
numpydoc                  0.8.0                    py37_0
odo                       0.5.1                    py37_0
olefile                   0.46                     py37_0
openblas                  0.2.20                        7
openblas-devel            0.2.20                        7
openpyxl                  2.5.6                    py37_0
openssl                   1.0.2p               h14c3975_0
packaging                 17.1                     py37_0
pandas                    0.23.4           py37h04863e7_0
pandoc                    2.0.0.1                       1
pandocfilters             1.4.2                    py37_1
parso                     0.3.1                    py37_0
partd                     0.3.8                    py37_0
patchelf                  0.9                  hf484d3e_2
path.py                   11.1.0                   py37_0
pathlib2                  2.3.2                    py37_0
patsy                     0.5.0                    py37_0
pcre                      8.42                 hf484d3e_0
pep8                      1.7.1                    py37_0
pexpect                   4.6.0                    py37_0
pickleshare               0.7.4                    py37_0
pillow                    5.2.0            py37h2879dc4_0
pip                       10.0.1                   py37_0
pixman                    0.34.0               h1f8d8dc_3
pkginfo                   1.4.2                    py37_1
pluggy                    0.7.1                    py37_0
ply                       3.11                     py37_0
prometheus_client         0.3.1                    py37_0
prompt_toolkit            1.0.15                   py37_0
psutil                    5.4.7            py37h14c3975_0
ptyprocess                0.6.0                    py37_0
py                        1.6.0                    py37_0
py-boost                  1.67.0           py37h04863e7_4
pyarrow                   0.12.1.dev535+gc0590fcd.d20190327           <pip>
pyasn1                    0.4.4                    py37_0
pyasn1-modules            0.2.2                    py37_0
pycodestyle               2.4.0                    py37_0
pycosat                   0.6.3            py37h14c3975_0
pycparser                 2.18                     py37_1
pycrypto                  2.6.1            py37h14c3975_9
pycurl                    7.43.0.2         py37hb7f436b_0
pyflakes                  2.0.0                    py37_0
pygments                  2.2.0                    py37_0
pylint                    2.1.1                    py37_0
pyodbc                    4.0.24           py37he6710b0_0
pyopenssl                 18.0.0                   py37_0
pyparsing                 2.2.0                    py37_1
pysocks                   1.6.8                    py37_0
pytables                  3.4.4            py37ha205bf6_0
pytest                    3.8.0                    py37_0
pytest-arraydiff          0.2              py37h39e3cac_0
pytest-astropy            0.4.0                    py37_0
pytest-doctestplus        0.1.3                    py37_0
pytest-openfiles          0.3.0                    py37_0
pytest-remotedata         0.3.0                    py37_0
python                    3.7.0                h78a52d1_0
python-dateutil           2.7.3                    py37_0
pytz                      2018.5                   py37_0
pywavelets                1.0.0            py37hdd07704_0
pyyaml                    3.13             py37h14c3975_0
pyzmq                     17.1.2           py37h14c3975_0
rapidjson                 1.1.0                h6bb024c_0
readline                  7.0                  h7b6447c_5
requests                  2.19.1                   py37_0
rhash                     1.3.6             h14c3975_1001    conda-forge
ruamel_yaml               0.15.46          py37h14c3975_0
scikit-image              0.14.0           py37hf484d3e_1
scikit-learn              0.19.1           py37h6cfcb94_0
scipy                     1.1.0            py37h9c1e066_0
seaborn                   0.9.0                    py37_0
send2trash                1.5.0                    py37_0
service_identity          17.0.0           py37h28b3542_0
setuptools                40.2.0                   py37_0
simplegeneric             0.8.1                    py37_2
singledispatch            3.4.0.3                  py37_0
six                       1.11.0                   py37_1
snappy                    1.1.7                h1532aa0_3
snowballstemmer           1.2.1                    py37_0
sortedcollections         1.0.1                    py37_0
sortedcontainers          2.0.5                    py37_0
sphinx                    1.7.9                    py37_0
sphinxcontrib             1.0                      py37_1
sphinxcontrib-websupport  1.1.0                    py37_1
sqlalchemy                1.2.11           py37h7b6447c_0
sqlite                    3.24.0               h84994c4_0
statsmodels               0.9.0            py37h035aef0_0
sympy                     1.2                      py37_0
tblib                     1.3.2                    py37_0
terminado                 0.8.1                    py37_1
testpath                  0.3.1                    py37_0
thrift                    0.11.0           py37hf484d3e_0
tk                        8.6.8                hbc83047_0
toolz                     0.9.0                    py37_0
tornado                   5.1              py37h14c3975_0
tqdm                      4.26.0           py37h28b3542_0
traitlets                 4.3.2                    py37_0
twisted                   18.4.0           py37h14c3975_0
unicodecsv                0.14.1                   py37_0
unixodbc                  2.3.7                h2c717c6_0
urllib3                   1.23                     py37_0
wcwidth                   0.1.7                    py37_0
webencodings              0.5.1                    py37_1
werkzeug                  0.14.1                   py37_0
wheel                     0.31.1                   py37_0
widgetsnbextension        3.4.1                    py37_0
wrapt                     1.10.11          py37h14c3975_2
xlrd                      1.1.0                    py37_1
xlsxwriter                1.1.0                    py37_0
xlwt                      1.3.0                    py37_0
xz                        5.2.4                h14c3975_4
yaml                      0.1.7                h1bed415_2
zeromq                    4.2.5                hf484d3e_0
zict                      0.1.3                    py37_0
zlib                      1.2.11               hb9fc6fc_2
zope                      1.0                      py37_1
zope.interface            4.5.0            py37h14c3975_0
zstd                      1.3.8             h4a5956a_1002    conda-forge
@nasica88 nasica88 added Needs Triage Need team to review and classify bug Something isn't working labels Mar 28, 2019
@harrism
Copy link
Member

harrism commented Mar 28, 2019

The warning about _BSD_SOURCE is fixed in RMM branch-0.7.

What cuDF branch are you building?

@harrism
Copy link
Member

harrism commented Mar 28, 2019

FWIW, you are using CUDA 10.1, Ubuntu 18.10, and Power8 CPU -- none of which RAPIDS tests or officially supports at this time.

@harrism harrism added this to Needs prioritizing in Bug Squashing via automation Mar 28, 2019
@harrism
Copy link
Member

harrism commented Mar 28, 2019

Please pull the latest branch-0.7 of cudf, then run git submodule update -remote to get the latest RMM. Then please run make VERBOSE=1 and paste the output here.

@nasica88
Copy link
Author

nasica88 commented Mar 28, 2019

@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
/home/u0017649/anaconda3/bin/cmake -H/home/u0017649/files/cudf/cpp -B/home/u0017649/files/cudf/cpp/build --check-build-system CMakeFiles/Makefile.cmake 0
/home/u0017649/anaconda3/bin/cmake -E cmake_progress_start /home/u0017649/files/cudf/cpp/build/CMakeFiles /home/u0017649/files/cudf/cpp/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/u0017649/files/cudf/cpp/build'
make -f rmm/CMakeFiles/rmm.dir/build.make rmm/CMakeFiles/rmm.dir/depend
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
cd /home/u0017649/files/cudf/cpp/build && /home/u0017649/anaconda3/bin/cmake -E cmake_depends "Unix Makefiles" /home/u0017649/files/cudf/cpp /home/u0017649/files/cudf/cpp/thirdparty/rmm /home/u0017649/files/cudf/cpp/build /home/u0017649/files/cudf/cpp/build/rmm /home/u0017649/files/cudf/cpp/build/rmm/CMakeFiles/rmm.dir/DependInfo.cmake --color=
Dependee "/home/u0017649/files/cudf/cpp/build/rmm/CMakeFiles/rmm.dir/DependInfo.cmake" is newer than depender "/home/u0017649/files/cudf/cpp/build/rmm/CMakeFiles/rmm.dir/depend.internal".
Dependee "/home/u0017649/files/cudf/cpp/build/rmm/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/u0017649/files/cudf/cpp/build/rmm/CMakeFiles/rmm.dir/depend.internal".
Scanning dependencies of target rmm
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make -f rmm/CMakeFiles/rmm.dir/build.make rmm/CMakeFiles/rmm.dir/build
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
[ 1%] Building CXX object rmm/CMakeFiles/rmm.dir/src/rmm.cpp.o
cd /home/u0017649/files/cudf/cpp/build/rmm && /usr/bin/c++ -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Drmm_EXPORTS -I/home/u0017649/files/cudf/cpp/build/googletest/install/include -I/usr/local/cuda/targets/ppc64le-linux/include -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/include -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/src -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/thirdparty/cnmem/include -D_GLIBCXX_USE_CXX11_ABI=0 -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -DNDEBUG -fPIC -std=gnu++11 -o CMakeFiles/rmm.dir/src/rmm.cpp.o -c /home/u0017649/files/cudf/cpp/thirdparty/rmm/src/rmm.cpp
[ 1%] Building CXX object rmm/CMakeFiles/rmm.dir/src/memory_manager.cpp.o
cd /home/u0017649/files/cudf/cpp/build/rmm && /usr/bin/c++ -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Drmm_EXPORTS -I/home/u0017649/files/cudf/cpp/build/googletest/install/include -I/usr/local/cuda/targets/ppc64le-linux/include -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/include -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/src -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/thirdparty/cnmem/include -D_GLIBCXX_USE_CXX11_ABI=0 -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -DNDEBUG -fPIC -std=gnu++11 -o CMakeFiles/rmm.dir/src/memory_manager.cpp.o -c /home/u0017649/files/cudf/cpp/thirdparty/rmm/src/memory_manager.cpp
[ 2%] Building CXX object rmm/CMakeFiles/rmm.dir/thirdparty/cnmem/src/cnmem.cpp.o
cd /home/u0017649/files/cudf/cpp/build/rmm && /usr/bin/c++ -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Drmm_EXPORTS -I/home/u0017649/files/cudf/cpp/build/googletest/install/include -I/usr/local/cuda/targets/ppc64le-linux/include -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/include -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/src -I/home/u0017649/files/cudf/cpp/thirdparty/rmm/thirdparty/cnmem/include -D_GLIBCXX_USE_CXX11_ABI=0 -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -DNDEBUG -fPIC -std=gnu++11 -o CMakeFiles/rmm.dir/thirdparty/cnmem/src/cnmem.cpp.o -c /home/u0017649/files/cudf/cpp/thirdparty/rmm/thirdparty/cnmem/src/cnmem.cpp
[ 3%] Linking CXX shared library librmm.so
cd /home/u0017649/files/cudf/cpp/build/rmm && /home/u0017649/anaconda3/bin/cmake -E cmake_link_script CMakeFiles/rmm.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -D_GLIBCXX_USE_CXX11_ABI=0 -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -DNDEBUG -shared -Wl,-soname,librmm.so -o librmm.so CMakeFiles/rmm.dir/src/rmm.cpp.o CMakeFiles/rmm.dir/src/memory_manager.cpp.o CMakeFiles/rmm.dir/thirdparty/cnmem/src/cnmem.cpp.o -L/usr/local/cuda/targets/ppc64le-linux/lib/stubs -L/usr/local/cuda/targets/ppc64le-linux/lib -L/home/u0017649/files/cudf/cpp/build/rmm/lib -L/home/u0017649/files/cudf/cpp/build/googletest/install/lib -Wl,-rpath,"$ORIGIN:/usr/local/cuda/targets/ppc64le-linux/lib/stubs:/usr/local/cuda/targets/ppc64le-linux/lib:/home/u0017649/files/cudf/cpp/build/rmm/lib:/home/u0017649/files/cudf/cpp/build/googletest/install/lib:" /usr/local/cuda/targets/ppc64le-linux/lib/libnvToolsExt.so -lcudart -lcuda
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
[ 3%] Built target rmm
make -f CMakeFiles/stringify.dir/build.make CMakeFiles/stringify.dir/depend
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
cd /home/u0017649/files/cudf/cpp/build && /home/u0017649/anaconda3/bin/cmake -E cmake_depends "Unix Makefiles" /home/u0017649/files/cudf/cpp /home/u0017649/files/cudf/cpp /home/u0017649/files/cudf/cpp/build /home/u0017649/files/cudf/cpp/build /home/u0017649/files/cudf/cpp/build/CMakeFiles/stringify.dir/DependInfo.cmake --color=
Dependee "/home/u0017649/files/cudf/cpp/build/CMakeFiles/stringify.dir/DependInfo.cmake" is newer than depender "/home/u0017649/files/cudf/cpp/build/CMakeFiles/stringify.dir/depend.internal".
Dependee "/home/u0017649/files/cudf/cpp/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/u0017649/files/cudf/cpp/build/CMakeFiles/stringify.dir/depend.internal".
Scanning dependencies of target stringify
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make -f CMakeFiles/stringify.dir/build.make CMakeFiles/stringify.dir/build
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
[ 3%] Building CXX object CMakeFiles/stringify.dir/thirdparty/jitify/stringify.cpp.o
/usr/bin/c++ -DARROW_METADATA_V4 -DARROW_VERSION=1210 -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 -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -DNDEBUG -std=gnu++14 -o CMakeFiles/stringify.dir/thirdparty/jitify/stringify.cpp.o -c /home/u0017649/files/cudf/cpp/thirdparty/jitify/stringify.cpp
[ 4%] Linking CXX executable stringify
/home/u0017649/anaconda3/bin/cmake -E cmake_link_script CMakeFiles/stringify.dir/link.txt --verbose=1
/usr/bin/c++ -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -DNDEBUG CMakeFiles/stringify.dir/thirdparty/jitify/stringify.cpp.o -o stringify -L/usr/local/cuda/targets/ppc64le-linux/lib/stubs -L/usr/local/cuda/targets/ppc64le-linux/lib -L/home/u0017649/files/cudf/cpp/build/lib -L/home/u0017649/files/cudf/cpp/build/arrow/build/flatbuffers_ep-prefix/src/flatbuffers_ep-install/lib -L/home/u0017649/files/cudf/cpp/build/googletest/install/lib
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
[ 4%] Built target stringify
make -f CMakeFiles/stringify_run.dir/build.make CMakeFiles/stringify_run.dir/depend
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
cd /home/u0017649/files/cudf/cpp/build && /home/u0017649/anaconda3/bin/cmake -E cmake_depends "Unix Makefiles" /home/u0017649/files/cudf/cpp /home/u0017649/files/cudf/cpp /home/u0017649/files/cudf/cpp/build /home/u0017649/files/cudf/cpp/build /home/u0017649/files/cudf/cpp/build/CMakeFiles/stringify_run.dir/DependInfo.cmake --color=
Dependee "/home/u0017649/files/cudf/cpp/build/CMakeFiles/stringify_run.dir/DependInfo.cmake" is newer than depender "/home/u0017649/files/cudf/cpp/build/CMakeFiles/stringify_run.dir/depend.internal".
Dependee "/home/u0017649/files/cudf/cpp/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/u0017649/files/cudf/cpp/build/CMakeFiles/stringify_run.dir/depend.internal".
Scanning dependencies of target stringify_run
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make -f CMakeFiles/stringify_run.dir/build.make CMakeFiles/stringify_run.dir/build
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
[ 5%] Run stringify on header types.h to convert it to c-str for use in JIT compiled code
cd /home/u0017649/files/cudf/cpp/include && /home/u0017649/files/cudf/cpp/build/stringify cudf/types.h > /home/u0017649/files/cudf/cpp/build/include/types.h.jit
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
[ 5%] Built target stringify_run
make -f CMakeFiles/cudf.dir/build.make CMakeFiles/cudf.dir/depend
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
cd /home/u0017649/files/cudf/cpp/build && /home/u0017649/anaconda3/bin/cmake -E cmake_depends "Unix Makefiles" /home/u0017649/files/cudf/cpp /home/u0017649/files/cudf/cpp /home/u0017649/files/cudf/cpp/build /home/u0017649/files/cudf/cpp/build /home/u0017649/files/cudf/cpp/build/CMakeFiles/cudf.dir/DependInfo.cmake --color=
Dependee "/home/u0017649/files/cudf/cpp/build/CMakeFiles/cudf.dir/DependInfo.cmake" is newer than depender "/home/u0017649/files/cudf/cpp/build/CMakeFiles/cudf.dir/depend.internal".
Dependee "/home/u0017649/files/cudf/cpp/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/u0017649/files/cudf/cpp/build/CMakeFiles/cudf.dir/depend.internal".
Scanning dependencies of target cudf
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make -f CMakeFiles/cudf.dir/build.make CMakeFiles/cudf.dir/build
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
[ 5%] Building CUDA object CMakeFiles/cudf.dir/src/comms/ipc/ipc.cu.o
/usr/local/cuda/bin/nvcc -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Dcudf_EXPORTS -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 -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 -Wno-deprecated-declarations -Xptxas --disable-warnings -Xcompiler --define-macro JITIFY_THREAD_SAFE --define-macro USE_NVTX --define-macro HT_LEGACY_ALLOCATOR -O3 -DNDEBUG -Xcompiler=-fPIC -std=c++14 -x cu -c /home/u0017649/files/cudf/cpp/src/comms/ipc/ipc.cu -o CMakeFiles/cudf.dir/src/comms/ipc/ipc.cu.o
nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
make[2]: *** [CMakeFiles/cudf.dir/build.make:63: CMakeFiles/cudf.dir/src/comms/ipc/ipc.cu.o] Error 1
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make[1]: *** [CMakeFiles/Makefile2:1003: CMakeFiles/cudf.dir/all] Error 2
make[1]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make: *** [Makefile:141: all] Error 2

@nasica88
Copy link
Author

nasica88 commented Mar 28, 2019

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
...
#set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Werror cross-execution-space-call -Wno-deprecated-declarations -Xptxas --disable-warnings")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS}")
...

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.

https://devtalk.nvidia.com/default/topic/1048037/linux/cuda-10-1-nvidia-you-re-now-quot-fixing-quot-gcc-bugs-that-gcc-doesn-t-even-have/

@harrism
Copy link
Member

harrism commented Mar 28, 2019

I saw two things different in your build system. One: in those two set(CMAKE_CUDA_FLAGS lines it should be outputting Werror ... but your system is dropping the -Werror! Also, it is changing some -DVARIABLE to --define-macro VARIABLE, which nvcc doesn't like.

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.

@harrism
Copy link
Member

harrism commented Mar 29, 2019

Looking a little more closely, the --define-macro is fine, and supported by nvcc. The problem is that cmake is definitely removing -Werror and -Werror,-Wall from CMAKE_CUDA_FLAGS.

@harrism
Copy link
Member

harrism commented Mar 29, 2019

Hi @nasica88 can you put the Werror lines back in and then rerun cmake and paste the contents of <build_dir>/CMakeFiles/cudf.dir/flags.make here?

@nasica88
Copy link
Author

nasica88 commented Apr 1, 2019

@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.12

compile CUDA with /usr/local/cuda/bin/nvcc

compile 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

@nasica88
Copy link
Author

nasica88 commented Apr 1, 2019

@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
...
make[2]: Entering directory '/home/u0017649/files/cudf/cpp/build'
[ 5%] Building CUDA object CMakeFiles/cudf.dir/src/comms/ipc/ipc.cu.o
/usr/local/cuda/bin/nvcc -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Dcudf_EXPORTS -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 -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 -x cu -c /home/u0017649/files/cudf/cpp/src/comms/ipc/ipc.cu -o CMakeFiles/cudf.dir/src/comms/ipc/ipc.cu.o
/home/u0017649/files/cudf/cpp/src/comms/ipc/ipc.cu: In member function ‘void IpcParser::open(const uint8_t*, size_t)’:
/home/u0017649/files/cudf/cpp/src/comms/ipc/ipc.cu:131:21: error: catching polymorphic type ‘class IpcParser::ParseError’ by value [-Werror=catch-value=]
} catch ( ParseError e ) {
^
/home/u0017649/files/cudf/cpp/src/comms/ipc/ipc.cu: In member function ‘void IpcParser::open_recordbatches(const uint8_t*, size_t)’:
/home/u0017649/files/cudf/cpp/src/comms/ipc/ipc.cu:142:21: error: catching polymorphic type ‘class IpcParser::ParseError’ by value [-Werror=catch-value=]
} catch ( ParseError e ) {
^
/usr/include/c++/8/bits/basic_string.tcc: In instantiation of ‘static std::basic_string<_CharT, _Traits, _Alloc>::_Rep* std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_create(std::basic_string<_CharT, _Traits, _Alloc>::size_type, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’:
/usr/include/c++/8/bits/basic_string.tcc:578:28: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&, std::forward_iterator_tag) [with _FwdIterator = const char16_t*; _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’
/usr/include/c++/8/bits/basic_string.h:5043:20: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct_aux(_InIterator, _InIterator, const _Alloc&, std::__false_type) [with _InIterator = const char16_t*; _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’
/usr/include/c++/8/bits/basic_string.h:5064:24: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with _InIterator = const char16_t*; _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’
/usr/include/c++/8/bits/basic_string.tcc:656:134: required from ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int ’
/usr/include/c++/8/bits/basic_string.h:6716:95: required from here
/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>]’ without object
__p->_M_set_sharable();
^ ~~~~~~~~~
/usr/include/c++/8/bits/basic_string.tcc: In instantiation of ‘static std::basic_string<_CharT, _Traits, _Alloc>::_Rep* std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_create(std::basic_string<_CharT, _Traits, _Alloc>::size_type, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’:
/usr/include/c++/8/bits/basic_string.tcc:578:28: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&, std::forward_iterator_tag) [with _FwdIterator = const char32_t*; _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]’
/usr/include/c++/8/bits/basic_string.h:5043:20: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct_aux(_InIterator, _InIterator, const _Alloc&, std::__false_type) [with _InIterator = const char32_t*; _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]’
/usr/include/c++/8/bits/basic_string.h:5064:24: required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with _InIterator = const char32_t*; _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]’
/usr/include/c++/8/bits/basic_string.tcc:656:134: required from ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int ’
/usr/include/c++/8/bits/basic_string.h:6721:95: required from here
/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 = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]’ without object
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/cudf.dir/build.make:63: CMakeFiles/cudf.dir/src/comms/ipc/ipc.cu.o] Error 1
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make[1]: *** [CMakeFiles/Makefile2:1003: CMakeFiles/cudf.dir/all] Error 2
make[1]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make: *** [Makefile:141: all] Error 2

@nasica88
Copy link
Author

nasica88 commented Apr 1, 2019

@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
-- } catch ( ParseError e ) {
++ } catch (const ParseError &e ) {

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
...
/usr/include/c++/8/bits/basic_string.h:6716:95: required from here
/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>]’ without object
__p->_M_set_sharable();
^ ~~~~~~~~~

@harrism
Copy link
Member

harrism commented Apr 1, 2019

It seems the catch issue is a bug in libcudf that isn't caught with other compilers. We'll get that fixed.

The other issue may be because of you set -D_GLIBCXX_USE_CXX11_ABI=OFF in your cmake command line: ~/files/cudf/cpp/build$ cmake .. -DCMAKE_INSTALL_PREFIX=~/anaconda3 -DCMAKE_CXX11_ABI=OFF

Why did you set it off? Can you try leaving the default (ON, or unspecified)?

@harrism
Copy link
Member

harrism commented Apr 1, 2019

Here's a fix for the catch issue: #1317

@nasica88
Copy link
Author

nasica88 commented Apr 1, 2019

@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
...
[ 8%] Building CUDA object CMakeFiles/cudf.dir/src/join/joining.cu.o
/usr/local/cuda/bin/nvcc -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Dcudf_EXPORTS -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 -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 -x cu -c /home/u0017649/files/cudf/cpp/src/join/joining.cu -o CMakeFiles/cudf.dir/src/join/joining.cu.o
/home/u0017649/files/cudf/cpp/thirdparty/moderngpu/src/moderngpu/intrinsics.hxx(170): error: identifier "__shfl_down" is undefined
detected during:
instantiation of "type_t mgpu::shfl_down(type_t, int, int) [with type_t=int]"
/home/u0017649/files/cudf/cpp/thirdparty/moderngpu/src/moderngpu/cta_reduce.hxx(28): here
instantiation of "type_t mgpu::shfl_reduce_t<type_t, group_size>::reduce(int, type_t, int, op_t) [with type_t=int, group_size=32, op_t=mgpu::plus_t]"
/home/u0017649/files/cudf/cpp/thirdparty/moderngpu/src/moderngpu/cta_reduce.hxx(74): here
instantiation of "type_t mgpu::cta_reduce_t<nt, type_t>::reduce(int, type_t, mgpu::cta_reduce_t<nt, type_t>::storage_t &, int, op_t, __nv_bool) const [with nt=128, type_t=int, op_t=mgpu::plus_t]"

@j-ieong
Copy link
Contributor

j-ieong commented Apr 1, 2019

@nasica88 Ah, looks like you're hitting Issue #1244 . We're working on fixing it. If possible, could you use CUDA 10.0 instead for now?

Details: moderngpu hasn't been updated for a while and in CUDA 10.1, some of the older, deprecated __shfl_ intrinsics were removed.

@harrism
Copy link
Member

harrism commented Apr 1, 2019

#1317 is now merged. Yes, #1244 is planned for 0.7 release. But as I said at the beginning of the thread, we don't support CUDA 10.1 yet and will not in the 0.7 release.

@harrism
Copy link
Member

harrism commented Apr 2, 2019

#1326 fixes the documentation to specify setting ABI to ON is the default (and recommended) setting.

@nasica88
Copy link
Author

nasica88 commented Apr 3, 2019

@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.

@harrism
Copy link
Member

harrism commented Apr 3, 2019

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

@nasica88
Copy link
Author

nasica88 commented Apr 3, 2019

@harrism Yes I did use the CUDA repo from nvidia, not conda.

@harrism
Copy link
Member

harrism commented Apr 3, 2019

Did you try installing the toolkit using the .run file? It's highly recommended you use that rather than trying a package manager.

@nasica88
Copy link
Author

nasica88 commented Apr 3, 2019

@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
/usr/local/cuda/bin/nvcc -DARROW_METADATA_V4 -DARROW_VERSION=1210 -Dcudf_EXPORTS -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 -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 -x cu -c /home/u0017649/files/cudf/cpp/src/join/joining.cu -o CMakeFiles/cudf.dir/src/join/joining.cu.o
/home/u0017649/files/cudf/cpp/thirdparty/moderngpu/src/moderngpu/intrinsics.hxx(170): error: identifier "__shfl_down" is undefined
detected during:
instantiation of "type_t mgpu::shfl_down(type_t, int, int) [with type_t=int]"
/home/u0017649/files/cudf/cpp/thirdparty/moderngpu/src/moderngpu/cta_reduce.hxx(28): here
instantiation of "type_t mgpu::shfl_reduce_t<type_t, group_size>::reduce(int, type_t, int, op_t) [with type_t=int, group_size=32, op_t=mgpu::plus_t]"
/home/u0017649/files/cudf/cpp/thirdparty/moderngpu/src/moderngpu/cta_reduce.hxx(74): here

@nasica88
Copy link
Author

nasica88 commented Apr 4, 2019

I retried cmake with a clean installation of CUDA 10.0. It fails with the following message.

    /usr/local/cuda/bin/nvcc     -x cu -c /home/u0017649/files/cudf/cpp/build/CMakeFiles/CMakeTmp/main.cu -o CMakeFiles/cmTC_12e2b.dir/main.cu.o
    In file included from /usr/local/cuda/bin/../targets/ppc64le-linux/include/cuda_runtime.h:83,
                     from <command-line>:
    /usr/local/cuda/bin/../targets/ppc64le-linux/include/crt/host_config.h:129:2: error: #error -- unsupported GNU version! gcc versions later than 7 are not supported!
     #error -- unsupported GNU version! gcc versions later than 7 are not supported!

So it seems like Ubuntu 18.04, which has gcc 8.2 as default, cannot build cudf.   I checked host_config.h of CUDA 10 and it indeed says the following.

#if __GNUC__ > 7
#error -- unsupported GNU version! gcc versions later than 7 are not supported!
#endif /* __GNUC__ > 7 */

I installed gcc-7 and g++-7, and now I've got this error from make, even though I re-built NVstrings from source using gcc-7/g++-7 from beginning.

[ 39%] Building CUDA object tests/CMakeFiles/TRANSPOSE_TEST.dir/utilities/cudf_test_utils.cu.o
[ 39%] Linking CUDA device code CMakeFiles/TRANSPOSE_TEST.dir/cmake_device_link.o
[ 40%] Linking CUDA executable ../gtests/TRANSPOSE_TEST
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `NVStringsImpl::~NVStringsImpl()'
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `NVStrings_init_from_strings(NVStringsImpl*, char const**, unsigned int)'
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `NVStringsImpl::printTimingRecords()'
/usr/bin/ld: ../libcudf.so: undefined reference to `NVStrings::replace(char const*, char const*, int)'
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `NVStrings_copy_strings(NVStringsImpl*, std::vector<NVStrings*, std::allocator<NVStrings*> >&)'
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `printCudaError(cudaError, char const*)'
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `get_unicode_flags()'
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `NVStrings_init_from_indexes(NVStringsImpl*, std::pair<char const*, unsigned long>*, unsigned int, bool, NVStrings::sorttype)'
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `NVStringsImpl::NVStringsImpl(unsigned int)'
/usr/bin/ld: //usr/local/lib/libNVStrings.so: undefined reference to `NVStrings_init_from_offsets(NVStringsImpl*, char const*, int, int const*, unsigned char const*, int)'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/TRANSPOSE_TEST.dir/build.make:130: gtests/TRANSPOSE_TEST] Error 1
make[1]: *** [CMakeFiles/Makefile2:1243: tests/CMakeFiles/TRANSPOSE_TEST.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

@harrism
Copy link
Member

harrism commented Apr 4, 2019

Tip: put long output results in markdown triple-backquote blocks. Suspect you don't have the latest nvstrings.

@nasica88
Copy link
Author

nasica88 commented Apr 8, 2019

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
...
[ 41%] Linking CUDA executable ../gtests/UTILITIES_TEST
cd /home/u0017649/files/cudf/cpp/build/tests && /home/u0017649/anaconda3/bin/cmake -E cmake_link_script CMakeFiles/UTILITIES_TEST.dir/link.txt --verbose=1
/usr/bin/g++ CMakeFiles/UTILITIES_TEST.dir/utilities_tests/device_atomics_test.cu.o CMakeFiles/UTILITIES_TEST.dir/utilities_tests/column_wrapper_tests.cu.o CMakeFiles/UTILITIES_TEST.dir/utilities/cudf_test_utils.cu.o CMakeFiles/UTILITIES_TEST.dir/cmake_device_link.o -o ../gtests/UTILITIES_TEST -L/home/u0017649/files/cudf/cpp/build/lib -L/home/u0017649/files/cudf/cpp/build/arrow/build/flatbuffers_ep-prefix/src/flatbuffers_ep-install/lib -L/home/u0017649/files/cudf/cpp/build/googletest/install/lib -Wl,-rpath,/home/u0017649/files/cudf/cpp/build/lib:/home/u0017649/files/cudf/cpp/build/arrow/build/flatbuffers_ep-prefix/src/flatbuffers_ep-install/lib:/home/u0017649/files/cudf/cpp/build/googletest/install/lib:/home/u0017649/files/cudf/cpp/build:/home/u0017649/files/cudf/cpp/build/rmm -lgmock -lgtest -lgmock_main -lgtest_main -lpthread ../libcudf.so ../rmm/librmm.so /usr/local/cuda/targets/ppc64le-linux/lib/libnvToolsExt.so -lcudart -lcuda ../arrow/install/lib/libarrow.a /usr/lib/powerpc64le-linux-gnu/libz.so -lNVCategory -lNVStrings -lnvrtc -L"/usr/local/cuda/targets/ppc64le-linux/lib/stubs" -L"/usr/local/cuda/targets/ppc64le-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl
/usr/bin/ld: //usr/local/lib/libNVCategory.so: undefined reference to `rmm::Logger::record(rmm::Logger::MemEvent_t, int, void*, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >, unsigned long, unsigned long, unsigned long, CUstream_st*, std::string, unsigned int)'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/UTILITIES_TEST.dir/build.make:147: gtests/UTILITIES_TEST] Error 1
make[2]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make[1]: *** [CMakeFiles/Makefile2:1281: tests/CMakeFiles/UTILITIES_TEST.dir/all] Error 2
make[1]: Leaving directory '/home/u0017649/files/cudf/cpp/build'
make: *** [Makefile:141: all] Error 2

@kkraus14 kkraus14 removed the Needs Triage Need team to review and classify label Apr 8, 2019
@kkraus14 kkraus14 added the CMake CMake build issue label Apr 8, 2019
@kkraus14
Copy link
Collaborator

kkraus14 commented Apr 8, 2019

@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?

@nasica88
Copy link
Author

nasica88 commented Apr 9, 2019

@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
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  • nvstrings

Current channels:

@kkraus14
Copy link
Collaborator

kkraus14 commented Apr 9, 2019

We don't currently publish ppc64le packages unfortunately. You'll have to build nvstrings from source as well.

@nasica88
Copy link
Author

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.

@kkraus14 kkraus14 closed this as completed Jul 3, 2019
Bug Squashing automation moved this from Needs prioritizing to Closed Jul 3, 2019
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
Projects
No open projects
Development

No branches or pull requests

4 participants