Crash on compilation process with OpenCL

Issue #20 resolved
Former user created an issue

Hello,

OpenCL seems to be provided in ./configure options. When I use the prerequisites commands and configure : export LIBS='-lhdf5_openmpi_hl -lhdf5_openmpi -lOpenCL' export CFLAGS='-I/usr/include/hdf5/openmpi/ -I/usr/include/CL' export CC=/usr/bin/gcc-4.9 export CXX=/usr/bin/g++-4.9 export CPP=/usr/bin/cpp-4.9 export OMPI_CC=/usr/bin/gcc-4.9 export OMPI_CXX=/usr/bin/g++-4.9 ./configure --with-fftw --enable-integer-positions --with-opencl make -j 16

After several compiled sources files, it seems to break on OpenCL elements.

mpicc -DHAVE_CONFIG_H -I. -Imdl2/mpi/ -Imdl2 -Iopenpa/src -march=native -I/usr/include -I/usr/include/hdf5/openmpi/ -I/usr/include/CL -MT pkdgrav3_mpi-grav2.o -MD -MP -MF .deps/pkdgrav3_mpi-grav2.Tpo -c -o pkdgrav3_mpi-grav2.o test -f 'grav2.c' || echo './'grav2.c mv -f .deps/pkdgrav3_mpi-analysis.Tpo .deps/pkdgrav3_mpi-analysis.Po clewald.cxx:290:35: error: ‘workEwald’ has not been declared void pkdAccumulateCUDA(void * pkd,workEwald we,double pax,double pay,double paz,double pot,double pdFlop); ^ clewald.cxx: In function ‘int CLcheckWorkEwald(void, void)’: clewald.cxx:294:5: error: ‘workEwald’ was not declared in this scope workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:294:16: error: ‘e’ was not declared in this scope workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:294:37: error: ‘workEwald’ does not name a type workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:294:47: error: expected ‘>’ before ‘’ token workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:294:47: error: expected ‘(’ before ‘’ token clewald.cxx:294:48: error: expected primary-expression before ‘>’ token workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:294:53: error: expected ‘)’ before ‘;’ token workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx: In function ‘int CLinitWorkEwald(void, void, void)’: clewald.cxx:328:5: error: ‘workEwald’ was not declared in this scope workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:328:16: error: ‘e’ was not declared in this scope workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:328:37: error: ‘workEwald’ does not name a type workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:328:47: error: expected ‘>’ before ‘’ token workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:328:47: error: expected ‘(’ before ‘’ token clewald.cxx:328:48: error: expected primary-expression before ‘>’ token workEwald e = reinterpret_cast<workEwald >(ve); ^ clewald.cxx:328:53: error: expected ‘)’ before ‘;’ token workEwald e = reinterpret_cast<workEwald >(ve); ^ mpicc -DHAVE_CONFIG_H -I. -Imdl2/mpi/ -Imdl2 -Iopenpa/src -march=native -I/usr/include -I/usr/include/hdf5/openmpi/ -I/usr/include/CL -MT pkdgrav3_mpi-walk2.o -MD -MP -MF .deps/pkdgrav3_mpi-walk2.Tpo -c -o pkdgrav3_mpi-walk2.o test -f 'walk2.c' || echo './'walk2.c Makefile:1391: recipe for target 'pkdgrav3_mpi-clewald.o' failed make[2]: [pkdgrav3_mpi-clewald.o] Error 1 make[2]: Waiting for unfinished jobs.... mv -f .deps/pkdgrav3_mpi-smoothfcn.Tpo .deps/pkdgrav3_mpi-smoothfcn.Po mv -f .deps/pkdgrav3_mpi-mdlbase.Tpo .deps/pkdgrav3_mpi-mdlbase.Po mv -f .deps/pkdgrav3_mpi-group.Tpo .deps/pkdgrav3_mpi-group.Po mv -f .deps/pkdgrav3_mpi-hop.Tpo .deps/pkdgrav3_mpi-hop.Po mv -f .deps/pkdgrav3_mpi-fof.Tpo .deps/pkdgrav3_mpi-fof.Po mv -f .deps/pkdgrav3_mpi-pkd.Tpo .deps/pkdgrav3_mpi-pkd.Po mv -f .deps/pkdgrav3_mpi-groupstats.Tpo .deps/pkdgrav3_mpi-groupstats.Po mv -f .deps/pkdgrav3_mpi-grav2.Tpo .deps/pkdgrav3_mpi-grav2.Po mv -f .deps/pkdgrav3_mpi-walk2.Tpo .deps/pkdgrav3_mpi-walk2.Po mv -f .deps/pkdgrav3_mpi-pst.Tpo .deps/pkdgrav3_mpi-pst.Po mv -f .deps/pkdgrav3_mpi-master.Tpo .deps/pkdgrav3_mpi-master.Po mv -f .deps/pkdgrav3_mpi-opening.Tpo .deps/pkdgrav3_mpi-opening.Po mv -f .deps/pkdgrav3_mpi-pp.Tpo .deps/pkdgrav3_mpi-pp.Po mv -f .deps/pkdgrav3_mpi-pc.Tpo .deps/pkdgrav3_mpi-pc.Po mv -f .deps/pkdgrav3_mpi-ewald.Tpo .deps/pkdgrav3_mpi-ewald.Po make[2]: Leaving directory '/local/pkdgrav3-20180814' Makefile:1439: recipe for target 'all-recursive' failed make[1]: [all-recursive] Error 1 make[1]: Leaving directory '/local/pkdgrav3-20180814' Makefile:555: recipe for target 'all' failed make: * [all] Error 2

When OpenCL support will be available, I will send you some performances elements if you want.

Best regards.

Comments (3)

  1. Douglas Potter repo owner

    OpenCL was an experiment. It was half the speed of CUDA (on nVidia processors), so was basically abandoned.

  2. Log in to comment