[Openmp-dev] ptxas fatal : Cannot take address of function '__pthread_key_create'

Itaru Kitayama via Openmp-dev openmp-dev at lists.llvm.org
Wed Sep 5 04:27:29 PDT 2018


I have attached to this email.

On Wed, Sep 5, 2018 at 8:10 PM Jonas Hahnfeld <hahnjo at hahnjo.de> wrote:

> Sure, because Clang only outputs LLVM IR and ptxas is not invoked ;) but
> what does the output file look like?
> If you didn't remove the -o flag, there will now be text in
> arraydatum.cc.o which is what I'm looking for: That's the internal
> representation during compilation and easier to read than PTX code.
>
> Sorry, I'm obviously doing a very bad job in explaining how to find the
> problem :-(
>
> On 2018-09-05 13:05, Itaru Kitayama wrote:
> > It finishes silently if `-S -emit-llvm' is also supplied to the
> > driver.
> >
> > On Wed, Sep 5, 2018 at 7:31 PM Jonas Hahnfeld <hahnjo at hahnjo.de>
> > wrote:
> >
> >> I meant when it tries to compile arraydatum.cc, sorry:
> >>> [  3%] Building CXX object
> >> sli/CMakeFiles/sli_lib.dir/arraydatum.cc.o
> >>> cd /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/sli &&
> >>> /gpfs/work/pcp0/pcp0151/opt/llvm+clang-upstream/bin/clang++
> >>> -Dsli_lib_EXPORTS -I/bgsys/drivers/ppcfloor/comm/gcc/include
> >>> -I/gpfs/software/opt/gsl/2.4/include
> >>> -I/gpfs/homeb/pcp0/pcp0151/projects/nest-simulator/libnestutil
> >>> -I/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/libnestutil
> >>> -std=c++11 -O2 -Wall -fopenmp -fopenmp-targets=nvptx64-nvidia-cuda
> >>> --cuda-path=/gpfs/software/opt/cuda/9.2.88  -fPIC   -o
> >>> CMakeFiles/sli_lib.dir/arraydatum.cc.o -c
> >>> /gpfs/homeb/pcp0/pcp0151/projects/nest-simulator/sli/arraydatum.cc
> >>
> >> You can copy this command and add some flags to see where this
> >> function
> >> is called.
> >>
> >> On 2018-09-05 12:12, Itaru Kitayama wrote:
> >>> CMake compiler check fails:
> >>>
> >>> Determining if files mach-o/dyld.h exist failed with the following
> >>> output:
> >>> Change Dir:
> >>>
> >>
> > /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp
> >>>
> >>> Run Build Command:"/usr/bin/gmake" "cmTC_1486a/fast"
> >>> /usr/bin/gmake -f CMakeFiles/cmTC_1486a.dir/build.make
> >>> CMakeFiles/cmTC_1486a.dir/build
> >>> gmake[1]: Entering directory
> >>> `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMak
> >>> eTmp'
> >>> Building C object CMakeFiles/cmTC_1486a.dir/CheckIncludeFiles.c.o
> >>> /gpfs/work/pcp0/pcp0151/opt/llvm+clang-upstream/bin/clang
> >> -o
> >>> CMakeFiles/cmTC_1486a.dir/C
> >>> heckIncludeFiles.c.o -c
> >>>
> >>
> > /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp/C
> >>> heckIncludeFiles.c
> >>>
> >>
> >
> /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp/CheckIncludeFiles.c:2:10:
> >>> fatal error: 'mach-o/dyld.h' file not found
> >>> #include <mach-o/dyld.h>
> >>> ^~~~~~~~~~~~~~~
> >>> 1 error generated.
> >>> gmake[1]: *** [CMakeFiles/cmTC_1486a.dir/CheckIncludeFiles.c.o]
> >> Error
> >>> 1
> >>> gmake[1]: Leaving directory
> >>>
> >> `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMake
> >>> Tmp'
> >>> gmake: *** [cmTC_1486a/fast] Error 2
> >>>
> >>> Source:
> >>> /* */
> >>> #include <mach-o/dyld.h>
> >>>
> >>> int main(void){return 0;}
> >>>
> >>> Determining if files mach/mach.h exist failed with the following
> >>> output:
> >>> Change Dir:
> >>>
> >>
> > /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp
> >>>
> >>> Run Build Command:"/usr/bin/gmake" "cmTC_a088b/fast"
> >>> /usr/bin/gmake -f CMakeFiles/cmTC_a088b.dir/build.make
> >>> CMakeFiles/cmTC_a088b.dir/build
> >>> gmake[1]: Entering directory
> >>> `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMak
> >>> eTmp'
> >>> Building C object CMakeFiles/cmTC_a088b.dir/CheckIncludeFiles.c.o
> >>> /gpfs/work/pcp0/pcp0151/opt/llvm+clang-upstream/bin/clang
> >> -o
> >>> CMakeFiles/cmTC_a088b.dir/C
> >>> heckIncludeFiles.c.o -c
> >>>
> >>
> > /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp/C
> >>> heckIncludeFiles.c
> >>>
> >>
> >
> /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp/CheckIncludeFiles.c:2:10:
> >>> fatal error: 'mach/mach.h' file not found
> >>> #include <mach/mach.h>
> >>> ^~~~~~~~~~~~~
> >>> 1 error generated.
> >>> gmake[1]: *** [CMakeFiles/cmTC_a088b.dir/CheckIncludeFiles.c.o]
> >> Error
> >>> 1
> >>> gmake[1]: Leaving directory
> >>>
> >>
> > `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp'
> >>>
> >>> On Wed, Sep 5, 2018 at 7:01 PM Jonas Hahnfeld <hahnjo at hahnjo.de>
> >>> wrote:
> >>>
> >>>> I can't reproduce the problem on x86, at least on this file on
> >>>> branch
> >>>> master and for-upstream. Maybe it's specific to Power?
> >>>>
> >>>> Can you have a look where this function is called? Extending the
> >>>> compile
> >>>> command for that specific file by "-S -emit-llvm" and posting the
> >>>> result
> >>>> would be helpful.
> >>>>
> >>>> Jonas
> >>>>
> >>>> On 2018-09-05 11:20, Itaru Kitayama wrote:
> >>>>> Jonas,
> >>>>> No problem. It is at:
> >>>>>
> >>>>> https://github.com/ikitayama/nest-simulator
> >>>>>
> >>>>> ... and especially this file
> >>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
> https://github.com/ikitayama/nest-simulator/blob/master/sli/arraydatum.cc
> >>>>>
> >>>>> is the first one on which llvm/clang-8.0.0 stops in a build
> >>>> process.
> >>>>>
> >>>>> On Wed, Sep 5, 2018 at 3:56 PM Jonas Hahnfeld <hahnjo at hahnjo.de>
> >>>>> wrote:
> >>>>>
> >>>>>> Mabye you are using some thread-local storage? Can you share
> >> the
> >>>>>> code,
> >>>>>> everything else will be guesses at best...
> >>>>>>
> >>>>>> Jonas
> >>>>>>
> >>>>>> On 2018-09-05 06:15, Itaru Kitayama via Openmp-dev wrote:
> >>>>>>> Hi Alexey,
> >>>>>>> If the function is not explicitly used in the code-base in
> >>>>>> question,
> >>>>>>> how do I
> >>>>>>> find which function/module requires it?
> >>>>>>>
> >>>>>>> On Tue, Sep 4, 2018 at 11:15 PM Alexey Bataev
> >>>>>> <a.bataev at outlook.com>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> It means that this function is used somewhere in the code
> >> that
> >>>> is
> >>>>>>>> offloaded to the GPU. I don't think this is correct, this
> >>>>>> function
> >>>>>>>> is pthreads-specific and I don't think that NVidia GPUs
> >> support
> >>>>>>>> pthreads.
> >>>>>>>>
> >>>>>>>> -------------
> >>>>>>>> Best regards,
> >>>>>>>> Alexey Bataev
> >>>>>>>>
> >>>>>>>> 02.09.2018 3:51, Itaru Kitayama via Openmp-dev пишет:
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>> Hi,
> >>>>>>>>> I am trying to build an application that can do OpenMP
> >>>>>> offloading
> >>>>>>>>> on a POWER8 + P100 system using the latest LLVM/Clang
> >>>> toolchain
> >>>>>>>>> (openmp
> >>>>>>>>> is too the latest).
> >>>>>>>>>
> >>>>>>>>> The build error is:
> >>>>>>>>>
> >>>>>>>>> [  3%] Building CXX object
> >>>>>>>>> sli/CMakeFiles/sli_lib.dir/arraydatum.cc.o
> >>>>>>>>> cd /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/sli &&
> >>>>>>>>> /gpfs/work/pcp0/pcp0151/opt/llvm+clang-upstream/bin/clang++
> >>>>>>>>> -Dsli_lib_EXPORTS -I/bgsys/drivers/ppcfloor/comm/gcc/include
> >>>>>>>>> -I/gpfs/software/opt/gsl/2.4/include
> >>>>>>>>>
> >> -I/gpfs/homeb/pcp0/pcp0151/projects/nest-simulator/libnestutil
> >>>>>>>>>
> >>>> -I/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/libnestutil
> >>>>>>>>> -std=c++11 -O2 -Wall -fopenmp
> >>>>>> -fopenmp-targets=nvptx64-nvidia-cuda
> >>>>>>>>> --cuda-path=/gpfs/software/opt/cuda/9.2.88  -fPIC   -o
> >>>>>>>>> CMakeFiles/sli_lib.dir/arraydatum.cc.o -c
> >>>>>>>>>
> >>>>>>
> >>>>
> >> /gpfs/homeb/pcp0/pcp0151/projects/nest-simulator/sli/arraydatum.cc
> >>>>>>>>>
> >>>>>>>>> ptxas fatal   : Cannot take address of function
> >>>>>>>>> '__pthread_key_create'
> >>>>>>>>> clang-8: error: ptxas command failed with exit code 255 (use
> >>>> -v
> >>>>>> to
> >>>>>>>>> see invocation)
> >>>>>>>>> make[2]: *** [sli/CMakeFiles/sli_lib.dir/arraydatum.cc.o]
> >>>> Error
> >>>>>>>>> 255
> >>>>>>>>> make[2]: Leaving directory
> >>>>>>>>> `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream'
> >>>>>>>>> make[1]: *** [sli/CMakeFiles/sli_lib.dir/all] Error 2
> >>>>>>>>> make[1]: Leaving directory
> >>>>>>>>> `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream'
> >>>>>>>>> make: *** [all] Error 2
> >>>>>>>>>
> >>>>>>>>> The CUDA toolkit is 9.2.88, is it possible the error is
> >> fixed
> >>>> in
> >>>>>>>>> the
> >>>>>>>>> latest toolkit?
> >>>>>>>>>
> >>>>>>>>> Thanks,
> >>>>>>>>> Itaru.
> >>>>>>>>
> >>>>>>>>> _______________________________________________
> >>>>>>>>> Openmp-dev mailing list
> >>>>>>>>> Openmp-dev at lists.llvm.org
> >>>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev
> >>>>>>> _______________________________________________
> >>>>>>> Openmp-dev mailing list
> >>>>>>> Openmp-dev at lists.llvm.org
> >>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20180905/34cc4767/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: arraydatum.cc.o
Type: application/octet-stream
Size: 1333125 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20180905/34cc4767/attachment-0001.o>


More information about the Openmp-dev mailing list