[cfe-dev] Compiling simple axpy CUDA

gry666 via cfe-dev cfe-dev at lists.llvm.org
Wed Dec 23 00:17:40 PST 2015


Hi,

I'm on ubuntu 14.04. I've installed CUDA 7.0 and GCC 4.8, 4.9 and 5.x in my
system. Sorry for short written terminal output bit it is my clang
installation. Here is an output of this:
$:~/workspace/eclipse/TEST/llvm$ clang -v
clang version 3.8.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/workspace/eclipse/llvm-bin/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8.4
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.2
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.1.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.4
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.2
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.1.0
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.1.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64

As I understand, clang++ what I built can compile C/C++ but when I want to
compile CUDA it can't find essential headers. I put verbose compilation log.

$:~/workspace/eclipse/TEST/llvm$
/home/workspace/eclipse/llvm-bin/bin/clang++ axpy.cu -o axpy -D__CUDA__
-D__CUDACC__ -I/usr/local/cuda-7.0/include -include cuda_runtime.h
-I/usr/local/cuda/samples/common/inc/ -I/usr/local/cuda/ -v
-L/usr/local/cuda/lib64 axpy.cu -lcudart_static -lcuda -ldl -lrt
clang version 3.8.0 (https://github.com/clang-omp/clang_trunk
d2064b019fac6da21dc76067b2c8c547379ddd07) (
https://github.com/clang-omp/llvm_trunk
76a27d9c85691eff5dbe18c5253865eb362c4786)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/workspace/eclipse/llvm-bin/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8.4
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.2
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.1.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.4
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.2
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.1.0
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.1.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
 "/home/workspace/eclipse/llvm-bin/bin/clang-3.8" -cc1 -triple
nvptx64-nvidia-cuda -S -disable-free -main-file-name axpy.cu
-mrelocation-model static -mthread-model posix -mdisable-fp-elim
-fmath-errno -no-integrated-as -mconstructor-aliases -target-cpu sm_20 -v
-dwarf-column-info -resource-dir
/home/workspace/eclipse/llvm-bin/bin/../lib/clang/3.8.0 -include
cuda_runtime.h -D __CUDA__ -D __CUDACC__ -I /usr/local/cuda-7.0/include -I
/usr/local/cuda/samples/common/inc/ -I /usr/local/cuda/ -c-isystem
/home/workspace/eclipse/llvm-openmp-build/runtime/src -c-isystem .
-cxx-isystem /home/workspace/eclipse/llvm-openmp-build/runtime/src
-cxx-isystem . -fdeprecated-macro -fno-dwarf-directory-asm
-fdebug-compilation-dir /home/workspace/eclipse/TEST/llvm -ferror-limit 19
-fmessage-length 135 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions
-fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o
/tmp/axpy-7c49a7.s -x cuda axpy.cu
clang -cc1 version 3.8.0 based upon LLVM 3.8.0svn default target
x86_64-unknown-linux-gnu
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/cuda-7.0/include
 /usr/local/cuda/samples/common/inc
 /usr/local/cuda
 /home/workspace/eclipse/llvm-openmp-build/runtime/src
 .
 /usr/local/include
 /home/workspace/eclipse/llvm-bin/bin/../lib/clang/3.8.0/include
 /usr/include
End of search list.
In file included from <built-in>:299:
In file included from <command line>:3:
In file included from /usr/local/cuda-7.0/include/cuda_runtime.h:104:
In file included from /usr/local/cuda-7.0/include/common_functions.h:219:
/usr/local/cuda-7.0/include/math_functions.h:8484:10: fatal error: 'cmath'
file not found
#include <cmath>


Best Regards


2015-12-22 23:56 GMT+01:00 Justin Lebar <jlebar at google.com>:

> Hi,
>
> What platform are you on?  CUDA support currently only works on Linux.
>
> I built with llvm at r256010 and clang at r255848 and ran
>
> $ ~/code/llvm/lldb/bin/clang++ -o axpy
> -I/usr/local/cuda/samples/common/inc/ -I/usr/local/cuda/
> -L/usr/local/cuda/lib64 axpy.cu -lcudart_static -lcuda -ldl -lrt
> -pthread
>
> This compiled successfully for me on Ubuntu 14.04.  Note that the
> command-line arguments here are *not* optional -- I would not expect
> the commands from your e-mail to work, because you were not passing
> all of the relevant options.  (These are documented at
> http://llvm.org/docs/CompileCudaWithLLVM.html.)
>
> Maybe this is a dumb question, but are you sure that the clang++
> you're invoking is the one you just built?  Usually you have to do
> path/to/objdir/bin/clang++.
>
> -Justin
>
>
> On Mon, Dec 21, 2015 at 2:54 AM, gry666 <gry666 at gmail.com> wrote:
> > Hi Justin,
> >
> > I've installed master version from git on two systems. Currently I can
> > thoroughly compile C/C++. But I can't compile CUDA. I think I can't show
> > headers to clang while I am compiling cuda
> >
> > The error what I got at the first machine
> >
> > ~/LLVM$ clang++ axpy.cu
> > In file included from <built-in>:620:
> > In file included from <command line>:1:
> > In file included from
> >
> /home/Computational/appbin/llvm-git/bin/../lib/clang/3.8.0/include/__clang_cuda_runtime_wrapper.h:47:
> > In file included from /usr/include/stdlib.h:24:
> > /usr/include/features.h:374:12: fatal error: 'sys/cdefs.h' file not found
> > #  include <sys/cdefs.h>
> >            ^
> >
> > Second machine
> > ~/workspace/eclipse/TEST/llvm$ clang++ axpy.cu
> /usr/local/cuda-7.0/include/
> > -include cuda_runtime_api.h -D__CUDACC__ -m64
> > In file included from axpy.cu:8:
> > In file included from /usr/include/cuda_runtime.h:76:
> > In file included from /usr/include/common_functions.h:167:
> > /usr/include/math_functions.h:7563:10: fatal error: 'cmath' file not
> found
> > #include <cmath>
> >          ^
> >
> > Thank you very much
> >
> >
> > 2015-12-20 1:43 GMT+01:00 Justin Lebar <jlebar at google.com>:
> >>
> >> It would be easier to debug this if we both had the same source code.
> >>
> >> I'm able to compile many of the samples which came with the CUDA SDK
> >> *using clang built from head*.  For example:
> >>
> >> $NVIDIA_CUDA-7.5_Samples/0_Simple/matrixMul$
> >> ~/code/llvm/release/bin/clang++ -o matrixMulClang -I../../common/inc
> >> -L/usr/local/cuda-7.5/lib64 -I/usr/local/cuda-7.5/ matrixMul.cu
> >> -lcudart_static -lcuda -ldl -lrt -pthread
> >>
> >> Does this work for you?  If not, what platform are you on?
> >>
> >> Note that the CUDA implementation in Clang is by no means complete.
> >> It mostly works, but there are lots of edge-cases (e.g. printf) that
> >> we're still working on.
> >>
> >> -Justin
> >>
> >> On Mon, Dec 14, 2015 at 9:57 AM, gry666 via cfe-dev
> >> <cfe-dev at lists.llvm.org> wrote:
> >> > Hi all,
> >> >
> >> > It's my first trial with clang. so if my question is so simple, i'm
> >> > sorry
> >> > first of all.
> >> >
> >> > Basically, I'm trying to compile simple axpy cuda code by using clang,
> >> > I'm
> >> > following this example http://llvm.org/docs/CompileCudaWithLLVM.html.
> >> > However I'm getting this errors
> >> >
> >> > $ clang++ axpy.cu -o axpy-clang -I/usr/local/cuda/samples/common/inc
> >> > In file included from axpy.cu:1:
> >> > In file included from
> >> > /usr/local/cuda/samples/common/inc/helper_cuda.h:24:
> >> > /usr/local/cuda/samples/common/inc/helper_string.h:18:10: fatal error:
> >> > 'fstream' file not found
> >> > #include <fstream>
> >> >          ^
> >> > 1 error generated.
> >> > axpy.cu:5:1: error: unknown type name '__global__'
> >> > __global__ void axpy(float a, float* x, float* y) {
> >> > ^
> >> > axpy.cu:5:12: error: expected unqualified-id
> >> > __global__ void axpy(float a, float* x, float* y) {
> >> >            ^
> >> > axpy.cu:19:19: error: use of undeclared identifier 'cudaMalloc'
> >> >   checkCudaErrors(cudaMalloc(&device_x, kDataLen * sizeof(float)));
> >> >                   ^
> >> > axpy.cu:20:19: error: use of undeclared identifier 'cudaMalloc'
> >> >   checkCudaErrors(cudaMalloc(&device_y, kDataLen * sizeof(float)));
> >> >                   ^
> >> > axpy.cu:22:30: error: use of undeclared identifier
> >> > 'cudaMemcpyHostToDevice'
> >> >                              cudaMemcpyHostToDevice));
> >> >                              ^
> >> > axpy.cu:25:3: error: use of undeclared identifier 'axpy'
> >> >   axpy<<<1, kDataLen>>>(a, device_x, device_y);
> >> >   ^
> >> > axpy.cu:28:19: error: use of undeclared identifier
> >> > 'cudaDeviceSynchronize'
> >> >   checkCudaErrors(cudaDeviceSynchronize());
> >> >                   ^
> >> > axpy.cu:30:30: error: use of undeclared identifier
> >> > 'cudaMemcpyDeviceToHost'
> >> >                              cudaMemcpyDeviceToHost));
> >> >                              ^
> >> > axpy.cu:37:19: error: use of undeclared identifier 'cudaDeviceReset'
> >> >   checkCudaErrors(cudaDeviceReset());
> >> >                   ^
> >> > 9 errors generated.
> >> >
> >> > What am I supposed to do?
> >> >
> >> > Regards
> >> > --
> >> > sulomen
> >> >
> >> > _______________________________________________
> >> > cfe-dev mailing list
> >> > cfe-dev at lists.llvm.org
> >> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
> >> >
> >
> >
> >
> >
> > --
> > Güray Özen
> > DEU Computer Engineering Department
>



-- 
Güray Özen
DEU Computer Engineering Department
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20151223/73782e4f/attachment.html>


More information about the cfe-dev mailing list