Làm cách nào để tách mã hạt nhân cuda và các mã cpp khác trong dự án? Tôi muốn thu thập tất cả các định nghĩa hạt nhân bên trong một tệp duy nhất như các tệp cpp khác gọi chúng trong thời gian cần thiết. Tôi cố gắng viết tất cả các hạt nhân bên trong kernel.cu và gọi các hạt nhân bằng cách bao gồm tệp kernel.cu nhưng nó đưa ra lỗi sau khi biên dịch.cách giữ mã hạt nhân bên trong tệp .cu riêng biệt ngoài tệp .cpp chính?
/usr/bin/ld: error: ./vector_summation.o: multiple definition of
'perform_summation_method1(int*, int)'
/usr/bin/ld: ./kernels.o: previous definition here
/usr/bin/ld: error: ./vector_summation.o: multiple definition of '__device_stub__Z25perform_summation_method1Pii(int*, int)'
/usr/bin/ld: ./kernels.o: previous definition here
/usr/bin/ld: error: ./vector_summation.o: multiple definition of '__device_stub__Z25perform_summation_method2PiS_i(int*, int*, int)'
/usr/bin/ld: ./kernels.o: previous definition here
/usr/bin/ld: error: ./vector_summation.o: multiple definition of 'perform_summation_method2(int*, int*, int)'
/usr/bin/ld: ./kernels.o: previous definition here
/usr/bin/ld: error: ./vector_summation.o: multiple definition of '__device_stub__Z25perform_summation_method3PiS_i(int*, int*, int)'
/usr/bin/ld: ./kernels.o: previous definition here
/usr/bin/ld: error: ./vector_summation.o: multiple definition of 'perform_summation_method3(int*, int*, int)'
/usr/bin/ld: ./kernels.o: previous definition here