charm AT lists.siebelschool.illinois.edu
Subject: Charm++ parallel programming system
List archive
- 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?
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.