CUDA 4.2
私のプロジェクトは、Linuxマシンの開発環境でうまくコンパイルされていました。
最近、にアップグレードされましたがCUDA 5.0
、コンパイルが失敗し、次のエラーメッセージが表示されます。
In file included from /opt/cuda/bin/crt/link.stub:79:0:
/tmp/tmpxft_000018c8_00000000-1_GPUReax_dlink.reg.c:2:1: error: redefinition of 'const unsigned char def_module_id_str__NV_MODULE_ID []'
/tmp/tmpxft_000018c8_00000000-1_GPUReax_dlink.reg.c:1:1: error: 'const unsigned char def_module_id_str__NV_MODULE_ID [19]' previously defined here
/tmp/tmpxft_000018c8_00000000-1_GPUReax_dlink.reg.c: In function 'void __cudaRegisterLinkedBinary__NV_MODULE_ID(void (*)(void**), void*, void*)':
/tmp/tmpxft_000018c8_00000000-1_GPUReax_dlink.reg.c:2:1: error: redefinition of 'void __cudaRegisterLinkedBinary__NV_MODULE_ID(void (*)(void**), void*, void*)'
/tmp/tmpxft_000018c8_00000000-1_GPUReax_dlink.reg.c:1:1: error: 'void __cudaRegisterLinkedBinary__NV_MODULE_ID(void (*)(void**), void*, void*)' previously defined here
Linuxマシンを使用しています
mctesla 93 $ uname -a
Linux mctesla.cs.purdue.edu 3.7.1 #1 SMP Fri Dec 28 12:08:12 EST 2012 x86_64 Intel(R) Xeon(R) CPU E5606 @ 2.13GHz GenuineIntel GNU/Linux
mctesla 94 $
誰かがCUDA5.0環境でこの問題を解決する方法についてコメントできますか?
更新-----
非常に迅速なコメントをありがとう。
私は昨日この問題を追いかけて一日中過ごしました..コンパイラの出力を見た後、私は次の行に気づきました....(以下の*で区切られています)
nvcc-I。-I / opt / cuda / include -D__USE_GPU__ -arch = sm_20 -Xptxas = -v -L / opt / cuda / lib64 -lm -lz -lcuda -lcudart GMRES.o QEq.olocate.oanalyze.o bond_orders.o box.o force.o four_body_interactions.o grid.o init_md.o integer.o list.o lookup.o neighbors.o param.o pdb_tools.o print_utils.o reset_utils.o restart.o single_body_interactions.osystem_props.othree_body_interactions。 o traj.o two_body_interactions.o vector.o testmd.o cuda_utils.o cuda_copy.o cuda_init.o Reduction.o center_mass.o helpers.o validate.o matrix.o matvec.o -o GPUReax
/opt/cuda/bin/crt/link.stub:79:0:( *)/tmp/tmpxft_0000345f_00000000-1_GPUReax_dlink.reg.c:2:1からインクルードされたファイル:エラー:'const unsigned chardef_module_id_str__NV_MODULE_ID[]の再定義'/tmp/tmpxft_0000345f_00000000-1_GPUReax_dlink.reg.c:1:1:エラー:' const unsigned chardef_module_id_str__NV_MODULE_ID[19]'以前にここで定義
エラーは、CUDA5.0インストールで新しく追加されたファイルlink.stubファイルから発生しています。このファイルはCUDA4.2インストールには存在しませんでした。
これが誰かが問題を特定するのに役立つ場合。
助けてくれてありがとう。
Sudhir Kylasa
ところで、これは私のMakefileです
CC = g++
NVCC = nvcc
LIBS = -L/opt/cuda/lib64 -lm -lz -lcuda -lcudart
CFLAGS = -I. -Wall -O3 -funroll-loops -fstrict-aliasing
NVCCFLAGS = -I. -I/opt/cuda/include -D__USE_GPU__ -arch=sm_20 -Xptxas=-v
#-finline-functions -finline-limit=15 -g#-DTEST -pg -ldl -rdynamic -g
DEFS = $(CFLAGS)
NVCCDEFS = $(NVCCFLAGS)
FLAG = $(DEFS) $(INCS) $(LIBS)
NVCCFLAG = $(NVCCDEFS) $(LIBS)
OBJ = GMRES.o QEq.o allocate.o analyze.o bond_orders.o \
box.o forces.o four_body_interactions.o \
grid.o init_md.o integrate.o list.o \
lookup.o neighbors.o param.o pdb_tools.o \
print_utils.o reset_utils.o \
restart.o single_body_interactions.o \
system_props.o three_body_interactions.o \
traj.o two_body_interactions.o vector.o \
testmd.o \
cuda_utils.o cuda_copy.o cuda_init.o reduction.o \
center_mass.o helpers.o validation.o matrix.o matvec.o
all: beta
beta: $(OBJ) Makefile
$(NVCC) $(NVCCFLAG) $(OBJ) -o GPUReax
param.o: param.c param.h mytypes.h traj.o
$(CC) $(DEFS) -c param.c
traj.o: traj.c traj.h mytypes.h
$(CC) $(DEFS) -c traj.c
restart.o: restart.c restart.h mytypes.h box.h
$(CC) $(DEFS) -c restart.c
pdb_tools.o: pdb_tools.c pdb_tools.h mytypes.h box.h list.h restart.h param.h
$(CC) $(DEFS) -c pdb_tools.c
print_utils.o: print_utils.h print_utils.c
$(CC) $(DEFS) -c print_utils.c
grid.o: grid.h grid.c
$(CC) $(DEFS) -c grid.c
analyze.o: analyze.h analyze.c
$(CC) $(DEFS) -c analyze.c
integrate.o: integrate.h integrate.c
$(CC) $(DEFS) -c integrate.c
vector.o: vector.h vector.cu
$(NVCC) $(NVCCDEFS) -c vector.cu
system_props.o: system_props.h system_props.cu
$(NVCC) $(NVCCDEFS) -c system_props.cu
cuda_copy.o: cuda_copy.h cuda_copy.cu
$(NVCC) $(NVCCDEFS) -c cuda_copy.cu
cuda_utils.o: cuda_utils.h cuda_utils.cu
$(NVCC) $(NVCCDEFS) -c cuda_utils.cu
cuda_init.o: cuda_init.h cuda_init.cu
$(NVCC) $(NVCCDEFS) -c cuda_init.cu
reduction.o: reduction.h reduction.cu
$(NVCC) $(NVCCDEFS) -c reduction.cu
center_mass.o: center_mass.h center_mass.cu
$(NVCC) $(NVCCDEFS) -c center_mass.cu
box.o: box.h
$(NVCC) $(NVCCDEFS) -c box.cu
init_md.o: init_md.h init_md.cu
$(NVCC) $(NVCCDEFS) -c init_md.cu
helpers.o: helpers.h helpers.cu
$(NVCC) $(NVCCDEFS) -c helpers.cu
GMRES.o: GMRES.h GMRES.cu
$(NVCC) $(NVCCDEFS) -c GMRES.cu
neighbors.o: neighbors.cu neighbors.h
$(NVCC) $(NVCCDEFS) -c neighbors.cu
reset_utils.o: reset_utils.h reset_utils.cu mytypes.h list.h vector.h
$(NVCC) $(NVCCDEFS) -c reset_utils.cu
list.o: list.h
$(NVCC) $(NVCCDEFS) -c list.cu
forces.o: forces.h forces.cu
$(NVCC) $(NVCCDEFS) -c forces.cu
allocate.o: allocate.h allocate.cu
$(NVCC) $(NVCCDEFS) -c allocate.cu
lookup.o: lookup.h lookup.cu
$(NVCC) $(NVCCDEFS) -c lookup.cu
two_body_interactions.o: two_body_interactions.h two_body_interactions.cu
$(NVCC) $(NVCCDEFS) -c two_body_interactions.cu
bond_orders.o: bond_orders.h bond_orders.cu
$(NVCC) $(NVCCDEFS) -c bond_orders.cu
single_body_interactions.o: single_body_interactions.h single_body_interactions.cu
$(NVCC) $(NVCCDEFS) -c single_body_interactions.cu
three_body_interactions.o: three_body_interactions.h three_body_interactions.cu
$(NVCC) $(NVCCDEFS) -c three_body_interactions.cu
four_body_interactions.o: four_body_interactions.h four_body_interactions.cu
$(NVCC) $(NVCCDEFS) -c four_body_interactions.cu
validation.o: validation.h validation.cu
$(NVCC) $(NVCCDEFS) -c validation.cu
matrix.o: matrix.h matrix.cu
$(NVCC) $(NVCCDEFS) -c matrix.cu
QEq.o: QEq.h QEq.cu
$(NVCC) $(NVCCDEFS) -c QEq.cu
matvec.o: matvec.h matvec.cu
$(NVCC) $(NVCCDEFS) -c matvec.cu
testmd.o: testmd.cu mytypes.h param.o traj.o restart.o pdb_tools.o list.o vector.o
$(NVCC) $(NVCCDEFS) -c testmd.cu
clean:
rm -f *.o *~ core