0

動的並列処理 (a.cu、b.cu、c.cu..、e.cu、f.cu) を使用する .cu ファイルと、MPI を使用して関数を呼び出す main.c ファイルがあります。複数のノード上の .cu。実行可能ファイルをコンパイルするためのメイク ファイルを作成しようとしていますが、次のエラーが引き続き発生します。

cudafiles.o: In function `__cudaRegisterLinkedBinary_66_tmpxft_00001a84_00000000_17_cuda_device_runtime_compute_61_cpp1_ii_8b1a5d37':
link.stub:(.text+0x1fb): undefined reference to `__fatbinwrap_66_tmpxft_00001a84_00000000_17_cuda_device_runtime_compute_61_cpp1_ii_8b1a5d37'

これが私のメイクファイルです:

INCFILES=-I/usr/local/cuda-8.0/include -I/opt/mpi/mvapich2-gnu/2.2/include -I./
LIBFILES=-L/usr/local/cuda-8.0/lib64 -L/opt/mpi/mvapich2-gnu/2.2/lib
LIBS=-lcudart -lcudadevrt -lcublas_device -lmpi 
ARCH=-gencode arch=compute_60,code=sm_60
NVCC=nvcc -ccbin g++


default: all

all: clean final.o

io.o: io.cpp
        g++ -c -std=c++11  io.cpp 


final.o: io.o a.cu b.cu c.cu d.cu e.cu f.cu main.cpp
        $(NVCC) -std=c++11 $(INCFILES) $(LIBFILES) $(LIBS) -g -G -Xptxas -v -dc $(ARCH) a.cu b.cu c.cu d.cu e.cu f.cu
        $(NVCC) -std=c++11 $(ARCH) $(INCFILES) $(LIBFILES) $(LIBS) -rdc=true -dlink a.o b.o c.o d.o e.o f.o io.o -o cudafiles.o
        mpicxx -O3 $(INCFILES) $(LIBFILES) -c main.cpp -o main.o
        mpicxx $(INCFILES) $(LIBFILES) $(LIBS) cudafiles.o a.o b.o c.o d.o e.o f.o io.o main.o -o exec

clean:
        rm -rf *.o exec
4

1 に答える 1