Skip to Content.
Sympa Menu

charm - [charm] charm++6.4.0 with CUDA Support

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

[charm] charm++6.4.0 with CUDA Support


Chronological Thread 
  • From: San B <forum.san AT gmail.com>
  • To: Charm ML <charm AT cs.uiuc.edu>
  • Subject: [charm] charm++6.4.0 with CUDA Support
  • Date: Fri, 14 Sep 2012 12:25:04 +0530
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/charm/>
  • List-id: CHARM parallel programming system <charm.cs.uiuc.edu>

Hi,

      I've to built the chamr++6.4.0 with CUDA & intel Compilers. But the sample test program is failing with following error:

 [root@gpuhost simplearrayhello]# make test
../../../bin/charmc   hello.ci
../../../bin/charmc  -c hello.C
../../../bin/../include/
ckreduction.h(535): warning #1125: function "IrrGroup::flushStates()" is hidden by "CkReductionMgr::flushStates" -- virtual function override intended?
        virtual void flushStates(int isgroup);
                     ^

../../../bin/../include/ckreduction.h(702): warning #1125: function "CkReductionMgr::flushStates(int)" is hidden by "Group::flushStates" -- virtual function override intended?
        virtual void flushStates() {
                     ^

../../../bin/../include/ckarray.h(743): warning #1125: function "CkReductionMgr::flushStates(int)" is hidden by "CkArray::flushStates" -- virtual function override intended?
    void flushStates() { CkReductionMgr::flushStates(0); CK_ARRAYLISTENER_LOOP(listeners, l->flushState()); }
         ^

../../../bin/charmc  -language charm++ -o hello hello.o
../../../bin/../lib/libcudahybridapi.a(hybridapi.o): In function `gpuProgressFn':
tmpxft_000025bb_00000000-1_cuda-hybrid-api.cudafe1.cpp:(.text+0x10c1): undefined reference to `kernelSelect(workRequest*)'
tmpxft_000025bb_00000000-1_cuda-hybrid-api.cudafe1.cpp:(.text+0x118a): undefined reference to `kernelSelect(workRequest*)'
Fatal Error by charmc in directory /root/NAMD_2.9_Source/charm-6.4.0/tests/charm++/simplearrayhello
   Command icpc -rdynamic -L/usr/lib64/infiniband -o hello -L../../../bin/../lib -I../../../bin/../include ../../../bin/../lib/libldb-rand.o hello.o moduleinit9949.o ../../../bin/../lib/libmemory-default.o ../../../bin/../lib/libthreads-default.o -lck -lconv-cplus-y -lconv-core -lconv-util -lckqt -lGL -lcudahybridapi -L/usr/local/cuda/lib64 -lcuda -lcudart -libverbs -ldl -lm returned error code 1
charmc exiting...
make: *** [hello] Error 1
[root@gpuhost simplearrayhello]#

The config command used is:

#./build charm++ net-linux-amd64-cuda icc ibverbs --no-build-shared

The Makefile of hybridAPI is:

# cat  src/arch/cuda/hybridAPI/Makefile
CUDA_DIR=/usr/local/cuda
CHARMDIR=../..
CHARMC=$(CHARMDIR)/bin/charmc

NVCC = $(CUDA_DIR)/bin/nvcc
NVCC_FLAGS = -c -use_fast_math -DGPU_MEMPOOL #-DGPU_PROFILE -DGPU_TRACE #-DGPU_MEMPOOL_DEBUG -DGPU_WRQ_VERBOSE #-device-debug -deviceemu
NVCC_INC = -I$(CUDA_DIR)/include -I..

all: libs
        cp libcudahybridapi.a $(CHARMDIR)/lib

libs: libcudahybridapi.a

install: libcudahybridapi.a
        cp libcudahybridapi.a $(CHARMDIR)/lib
#       cp hybridapi.o wrqueue.o $(CHARMDIR)/tmp

libcudahybridapi.a: hybridapi.o wrqueue.o
        -rm -f $@
        ar q $@ hybridapi.o wrqueue.o

hybridapi.o: cuda-hybrid-api.cu cuda-hybrid-api.h
        $(NVCC) $(NVCC_FLAGS) $(NVCC_INC) -o hybridapi.o cuda-hybrid-api.cu

wrqueue.o: wrqueue.cu wrqueue.h wr.h
        $(NVCC) $(NVCC_FLAGS) $(NVCC_INC) -o wrqueue.o wrqueue.cu

clean:
        rm -f *.o *.a



The conv-mach.sh is modified as follows:

CMK_AMD64="-m64"

CMK_CPP_CHARM="/lib/cpp -P"
#CMK_CPP_C="gcc -E $CMK_AMD64 "
CMK_CPP_C="icc -E $CMK_AMD64 "
#CMK_CC="gcc -fPIC $CMK_AMD64 "
CMK_CC="icc -fPIC $CMK_AMD64 "
#CMK_CXX="g++ -fPIC $CMK_AMD64 "
CMK_CXX="icpc -fPIC $CMK_AMD64 "
CMK_CXXPP="$CMK_CXX -x c++ -E $CMK_AMD64 "
CMK_XIOPTS=""
CMK_LD="$CMK_CC $CMK_AMD64 "
CMK_LDXX="$CMK_CXX $CMK_AMD64 "
CMK_LD_SHARED="-shared"
CMK_LD_LIBRARY_PATH="-Wl,-rpath,$CHARMLIBSO/"
CUDA_DIR="/usr/local/cuda"
CMK_LIBDIR="-L$CUDA_DIR/lib64"
CMK_LIBS="-lckqt -lGL -lcudahybridapi  -L/usr/local/cuda/lib64 -lcuda -lcudart"
CMK_RANLIB="ranlib"


Is there any modification need to be done here? Any workaround to get it working here?


  • [charm] charm++6.4.0 with CUDA Support, San B, 09/14/2012

Archive powered by MHonArc 2.6.16.

Top of Page