aus Neugier und Interesse habe ich mir die CUDA-Beispiele auf der nvidia-Seite runtergeladen,kompiliert, um zu sehen, wie die Programmierung unter CUDA funktioniert,wie schnell sie laufen als auf einer CPU.
Beim übersetzen dieser Quellcodes kommt es zu einem Haufen Fehler und daher meine Frage:
Hat jemand von euch diese ohne Fehler kompilieren können?
Ich habe ja das nividia-toolkit und alles was dazu gehört auf meinem wheezy installiert, warum also geht die Kompilierung schief?
Als Beispiel sei das hello_world.cu erwähnt:
Hier die Ausgabe:
Code: Alles auswählen
h2o@w3m:~/CUDA/chapter03$ nvcc hello_world.cu
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `HandleError(cudaError, char const*, int)':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x13): undefined reference to `cudaGetErrorString'
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `start_thread(void* (*)(void*), void*)':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x16e): undefined reference to `pthread_create'
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `end_thread(unsigned long)':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x18c): undefined reference to `pthread_join'
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `destroy_thread(unsigned long)':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x19f): undefined reference to `pthread_cancel'
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `__cudaUnregisterBinaryUtil()':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x205): undefined reference to `__cudaUnregisterFatBinary'
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `__device_stub__Z14float_to_colorPhPKf(unsigned char*, float const*)':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x228): undefined reference to `cudaSetupArgument'
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x24c): undefined reference to `cudaSetupArgument'
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `__device_stub__Z14float_to_colorP6uchar4PKf(uchar4*, float const*)':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x2ae): undefined reference to `cudaSetupArgument'
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x2d2): undefined reference to `cudaSetupArgument'
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `__sti____cudaRegisterAll_46_tmpxft_00000edc_00000000_4_hello_world_cpp1_ii_68d40520()':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x325): undefined reference to `__cudaRegisterFatBinary'
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x38b): undefined reference to `__cudaRegisterFunction'
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text+0x3e0): undefined reference to `__cudaRegisterFunction'
/tmp/tmpxft_00000edc_00000000-13_hello_world.o: In function `cudaError cudaLaunch<char>(char*)':
tmpxft_00000edc_00000000-1_hello_world.cudafe1.cpp:(.text._Z10cudaLaunchIcE9cudaErrorPT_[cudaError cudaLaunch<char>(char*)]+0xd): undefined reference to `cudaLaunch'
collect2: ld returned 1 exit status