Cuda Examples

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Cuda Examples

Beitrag von tHoRax » 26.12.2012 11:04:45

hallo.
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
MfG jimmy
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Cuda Examples

Beitrag von rendegast » 26.12.2012 13:11:35

... das nividia-toolkit und alles was dazu gehört auf meinem wheezy installiert,
...
$ 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'
...
Muß vielleicht noch der Pfad zu den Entwickler-libs explizit angegeben werden?
Vielleicht steht in den Beispielen ein nicht-passender Standardpfad.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Re: Cuda Examples

Beitrag von tHoRax » 26.12.2012 13:58:33

hallo rendegast.
In der nvidia-Ecke habe ich einen ähnlichen Beitrag gefunden,verstehe aber nicht alles.
Anscheinend machen die libglut-Libraries aus wheezy da stunk.
Hier der Beitrag:
https://devtalk.nvidia.com/default/topi ... y_example/
In der README-Datei zu den CUDA-Beispielen zieht man die Benutzung von freeglut unter Linux vor, welche ich auch aus wheezy installiert habe.
Die Version freeglut-dev-2.6.0-4 läuft bei mir auf dem System...
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Cuda Examples

Beitrag von rendegast » 27.12.2012 08:32:02

Da ging es aber auch um
undefined reference to `glutInit'
undefined reference to `glutInitDisplayMode'
undefined reference to `glutInitWindowSize'
....
Also "glut".

Das `cudaGetErrorString' oder `cudaSetupArgument' hört sich nach einer Bibliothek des toolkit an
(jedenfalls im CudaReferenceManual enthalten),
Du kannst ja mal eine String-Suche starten.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Re: Cuda Examples

Beitrag von tHoRax » 27.12.2012 11:59:38

Code: Alles auswählen

Muß vielleicht noch der Pfad zu den Entwickler-libs explizit angegeben werden?
Ich glaube auch, dass es an der Pfadangabe liegt,aber wo wheezy die alle hin installiert hat,ist wie eine Nadel im Heuhaufen zu suchen... :|

Code: Alles auswählen

Du kannst ja mal eine String-Suche starten.
Wo? Im Quellcode?
Anderweitig habe ich auch versucht das neueste nvidia-toolkit-5.0 für 32-Bit (wo die Version-4.2 im wheezy enthalten ist) geholt und zu installieren versucht,aber die Installation geht jedesmal schief,anscheinend läuft diese Version(für Ubuntu 11,2 oder so) auf debian nicht.
Ich weiss jetzt wirklich nimmer, wie ich diese Beispiele ausprobieren kann...
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Cuda Examples

Beitrag von rendegast » 27.12.2012 13:03:47

,aber wo wheezy die alle hin installiert hat,ist wie eine Nadel im Heuhaufen zu suchen...
Wenn es ein Paket war, Einstieg

Code: Alles auswählen

$ apt-cache search nvidia toolkit
nvidia-cg-dev - Cg Toolkit - GPU Shader Authoring Language (headers)
nvidia-cg-doc - Cg Toolkit - GPU Shader Authoring Language (documentation)
nvidia-cg-toolkit - Cg Toolkit - GPU Shader Authoring Language
nvidia-cuda-toolkit - NVIDIA CUDA toolkit
, 'dpkg-query -L paket' und die Install-Skripte /var/lib/dpkg/info/paket.*.

Oder irgendein Verzeichnis, darin 'aptitude download paket paket paket' und dpkg-xx.sh:

Code: Alles auswählen

#!/bin/sh

for i in *.deb; do
    file -b -L "$i" | grep -iq "debian binary package" || { echo Problem-Paket: "$i"; continue; }
    dpkg-deb -x "$i" "$(basename $i .deb)"
    dpkg-deb -e "$i" "$(basename $i .deb)"
done

for i in *.udeb; do
    file -b -L "$i" | grep -iq "debian binary package" || { echo Problem-Paket: "$i"; continue; }
    dpkg-deb -x "$i" "$(basename $i .udeb)"
    dpkg-deb -e "$i" "$(basename $i .udeb)"
done
Wenn es kein Paket ist,
das jeweilige Installationsskript resp. Makefile.










Obiges mal probiert gibt

Code: Alles auswählen

$ grep -r -l cudaGetErrorString | sort
libcudart4_4.2.9-1_i386/symbols
libcudart4_4.2.9-1_i386/usr/lib/i386-linux-gnu/libcudart.so.4.2.9
libcudart5.0_5.0.35-2_i386/symbols
libcudart5.0_5.0.35-2_i386/usr/lib/i386-linux-gnu/libcudart.so.5.0.35
libcuinj32-5.0_5.0.35-2_i386/usr/lib/i386-linux-gnu/libcuinj32.so.5.0.35
libcupti-dev_4.2.9-1_i386/usr/include/cupti_runtime_cbid.h
libcupti-dev_4.2.9-1_i386/usr/include/generated_cuda_runtime_api_meta.h
libcupti-doc_4.2.9-1_all/usr/share/doc/libcupti-doc/examples/activity_trace/vec.cu
libcupti-doc_4.2.9-1_all/usr/share/doc/libcupti-doc/examples/callback_metric/callback_metric.cu
libcupti5.0_5.0.35-2_i386/usr/lib/i386-linux-gnu/libcupti.so.5.0.35
libcusparse4_4.2.9-1_i386/usr/lib/i386-linux-gnu/libcusparse.so.4.2.9
libcusparse5.0_5.0.35-2_i386/usr/lib/i386-linux-gnu/libcusparse.so.5.0.35
libthrust-dev_1.6.0-1_all/usr/include/thrust/system/cuda/detail/error.inl
nvidia-cuda-dev_4.2.9-1_i386/usr/include/cuda_runtime_api.h



resp. allen Inhalt in ein Verzeichnis geschmissen:
$ grep -r -l cudaGetErrorString | sort
usr/include/cuda_runtime_api.h
usr/include/cupti_runtime_cbid.h
usr/include/generated_cuda_runtime_api_meta.h
usr/include/thrust/system/cuda/detail/error.inl
usr/lib/i386-linux-gnu/libcudart.so.4.2.9
usr/lib/i386-linux-gnu/libcudart.so.5.0.35
usr/lib/i386-linux-gnu/libcuinj32.so.5.0.35
usr/lib/i386-linux-gnu/libcupti.so.5.0.35
usr/lib/i386-linux-gnu/libcusparse.so.4.2.9
usr/lib/i386-linux-gnu/libcusparse.so.5.0.35
In libcupti4 und libcuinj4 ist der String zBsp. nicht enthalten.
Das ganze mal mit der 5.0-Version durchspielen?

Jedenfalls bleibt, auf meiner Architektur würden die libs in usr/lib/i386-linux-gnu/ landen,
die header in usr/include/.
Ist vielleicht so ein multiarch-Problem?

Deine nvcc.profile?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Re: Cuda Examples

Beitrag von tHoRax » 27.12.2012 14:45:29

hallo rendegast.
Irgendwie werde ich aus dem ganzen nicht Schlau und blicke nimmer durch.
Ein dpkg -l |grep nvidia ergibt:

Code: Alles auswählen

ii  glx-alternative-nvidia                   0.2.2                              i386         allows the selection of NVIDIA as GLX provider
ii  libgl1-nvidia-alternatives               304.48-1                           i386         transition libGL.so* diversions to glx-alternative-nvidia
ii  libgl1-nvidia-glx:i386                   304.48-1                           i386         NVIDIA binary OpenGL libraries
ii  libglx-nvidia-alternatives               304.48-1                           i386         transition libgl.so diversions to glx-alternative-nvidia
ii  libnvidia-compiler:i386                  304.48-1                           i386         NVIDIA runtime compiler library
ii  libnvidia-ml1:i386                       304.48-1                           i386         NVIDIA management library (NVML) runtime library
ii  nvidia-alternative                       304.48-1                           i386         allows the selection of NVIDIA as GLX provider
ii  nvidia-cg-dev:i386                       3.1.0013-1                         i386         Cg Toolkit - GPU Shader Authoring Language (headers)
ii  nvidia-cuda-dev                          4.2.9-1                            i386         NVIDIA CUDA development files
ii  nvidia-cuda-doc                          4.2.9-1                            all          NVIDIA CUDA and OpenCL documentation
ii  nvidia-cuda-gdb                          4.2.9-1                            i386         NVIDIA CUDA GDB
ii  nvidia-cuda-toolkit                      4.2.9-1                            i386         NVIDIA CUDA toolkit
ii  nvidia-glx                               304.48-1                           i386         NVIDIA metapackage
ii  nvidia-installer-cleanup                 20120630+3                         i386         Cleanup after driver installation with the nvidia-installer
ii  nvidia-kernel-3.2.0-4-686-pae            304.48+2+2+3.2.30-1                i386         NVIDIA binary kernel module for Linux 3.2.0-4-686-pae
ii  nvidia-kernel-common                     20120630+3                         i386         NVIDIA binary kernel module support files
ii  nvidia-libopencl1:i386                   304.48-1                           i386         NVIDIA OpenCL library
ii  nvidia-opencl-common                     304.48-1                           i386         NVIDIA OpenCL driver
ii  nvidia-opencl-dev                        4.2.9-1                            i386         NVIDIA OpenCL development files
ii  nvidia-opencl-icd:i386                   304.48-1                           i386         NVIDIA OpenCL ICD
ii  nvidia-settings                          304.48-1                           i386         Tool for configuring the NVIDIA graphics dr
iver
ii  nvidia-smi                               304.48-1                           i386         NVIDIA System Management Interface
ii  nvidia-support                           20120630+3                         i386         NVIDIA binary graphics driver support files
ii  nvidia-vdpau-driver:i386                 304.48-1                           i386         NVIDIA vdpau driver
ii  nvidia-visual-profiler                   4.2.9-1                            i386         NVIDIA Visual Profiler
ii  nvidia-xconfig                           304.48-1                           i386         X configuration tool for non-free NVIDIA drivers
ii  xserver-xorg-video-nvidia                304.48-1                           i386         NVIDIA binary Xorg driver
Alle nötigen Pakete sind installiert.
Ein ls -a var/lib/dpkg/info |grep cuda ergibt dieses:

Code: Alles auswählen

libcuda1:i386.list
libcuda1:i386.md5sums
libcuda1:i386.postinst
libcuda1:i386.postrm
libcuda1:i386.shlibs
libcuda1:i386.symbols
libcudart4:i386.list
libcudart4:i386.md5sums
libcudart4:i386.postinst
libcudart4:i386.postrm
libcudart4:i386.shlibs
libcudart4:i386.symbols
nvidia-cuda-dev.list
nvidia-cuda-dev.md5sums
nvidia-cuda-doc.list
nvidia-cuda-doc.md5sums
nvidia-cuda-gdb.list
nvidia-cuda-gdb.md5sums
nvidia-cuda-toolkit.conffiles
nvidia-cuda-toolkit.list
nvidia-cuda-toolkit.md5sums
Hier noch ein cat:

Code: Alles auswählen

cat /var/lib/dpkg/info/nvidia-cuda-toolkit.conffiles
/etc/nvcc.profile

Der Inhalt von /var/lib/dpkg/info/nvidia-cuda-toolkit.list schaut so aus:

Code: Alles auswählen

cat /var/lib/dpkg/info/nvidia-cuda-toolkit.list
/.
/etc
/etc/nvcc.profile
/usr
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/nvidia-cuda-toolkit
/usr/share/doc
/usr/share/doc/nvidia-cuda-toolkit
/usr/share/doc/nvidia-cuda-toolkit/changelog.Debian.gz
/usr/share/doc/nvidia-cuda-toolkit/copyright
/usr/share/doc/nvidia-cuda-toolkit/README.Debian
/usr/lib
/usr/lib/nvidia-cuda-toolkit
/usr/lib/nvidia-cuda-toolkit/lib
/usr/lib/nvidia-cuda-toolkit/lib/inline
/usr/lib/nvidia-cuda-toolkit/lib/gfec
/usr/lib/nvidia-cuda-toolkit/lib/be
/usr/lib/nvidia-cuda-toolkit/bin
/usr/lib/nvidia-cuda-toolkit/bin/ci_include.h
/usr/lib/nvidia-cuda-toolkit/bin/cicc
/usr/lib/nvidia-cuda-toolkit/bin/nvopencc
/usr/lib/nvidia-cuda-toolkit/bin/g++
/usr/lib/nvidia-cuda-toolkit/bin/gcc
/usr/lib/nvidia-cuda-toolkit/bin/nvcc
/usr/bin
/usr/bin/nvopencc
/usr/bin/nvcc
/usr/bin/ptxas
/usr/bin/filehash
/usr/bin/fatbinary
/usr/bin/fatbin
/usr/bin/cuobjdump
/usr/bin/cuda-memcheck
/usr/bin/cudafe++
/usr/bin/cudafe
/usr/bin/bin2c
/usr/lib/nvidia-cuda-toolkit/bin/nvcc.profile
Hier /etc/nvcc.profile:

Code: Alles auswählen

h2o@w3m:~/CUDA$ cat /etc/nvcc.profile
PATH		+= /usr/lib/nvidia-cuda-toolkit/bin:

# Work around some strange errors if some headers are found
# in /usr/include only.
INCLUDES	+= -I/usr/lib/nvidia-cuda-toolkit/include

#LIBRARIES	+= $(_SPACE_) -lcudart

#CUDAFE_FLAGS	+=
#OPENCC_FLAGS	+=
#PTXAS_FLAGS	+=
Hier die Ausgabe von grep -r -l cudaGetErrorString | sort

Code: Alles auswählen

h2o@w3m:~/CUDA$ grep -r -l cudaGetErrorString | sort
chapter03/hello_world.o
common/book.h
Exercises/cudaMallocAndMemcpy/cudaMallocAndMemcpy.cu
Exercises/cudaMallocAndMemcpy/solution/cudaMallocAndMemcpy.cu
Exercises/myFirstKernel/myFirstKernel.cu
Exercises/myFirstKernel/solution/myFirstKernel.cu
Exercises/reverseArray/reverseArray_multiblock.cu
Exercises/reverseArray/reverseArray_multiblock_fast.cu
Exercises/reverseArray/reverseArray_singleblock.cu
Exercises/reverseArray/solution/reverseArray_multiblock.cu
Exercises/reverseArray/solution/reverseArray_multiblock_fast.cu
Exercises/reverseArray/solution/reverseArray_singleblock.cu
MfG jimmy
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Cuda Examples

Beitrag von rendegast » 28.12.2012 08:07:50

http://docs.nvidia.com/cuda/cuda-samples/index.html
Wo finde ich hello_world.cu ?


Okay, gefunden
https://developer.nvidia.com/content/cu ... gramming-0
https://developer.nvidia.com/sites/defa ... xample.zip

Nach www ist das hier ein linker-Problem.
Ein einfaches 'nvcc' reicht nicht, es braucht zumindest 'nvcc -lcupti hello_world.cu'.
Debianlibcupti-dev muß installiert sein.

Mach es mal damit, Makefile:

Code: Alles auswählen

#
# Copyright 2011-2012 NVIDIA Corporation. All rights reserved
# 
INCLUDES=-I../../include

ifndef OS
 OS   := $(shell uname)
 HOST_ARCH := $(shell uname -m)
endif

ifeq ($(OS),Windows_NT)
    export PATH := $(PATH):../../libWin32:../../libx64
    LIBS= -lcuda -L ../../libWin32 -L ../../libx64 -lcupti
    OBJ = obj
else
    export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):../../lib:../../lib64
    LIBS= -lcuda -L ../../lib -L ../../lib64 -lcupti
    OBJ = o
endif

hello_world: hello_world.$(OBJ)
        nvcc -o $@ hello_world.$(OBJ) $(LIBS)

hello_world.$(OBJ): hello_world.cu
        nvcc -c $(INCLUDES) $<

run: hello_world
        ./$<

clean:
        rm -f hello_world hello_world.$(OBJ)
direkt vom Beispiel callback_event übernommen,
gibt ein binary 'hello_world'.

Nach ein bischen Probieren, das Wichtigste ist das '-lcupti',
funktioniert es auch mit:

Code: Alles auswählen

#
# Copyright 2011-2012 NVIDIA Corporation. All rights reserved
# 
#INCLUDES=-I../../include

ifndef OS
 OS   := $(shell uname)
 HOST_ARCH := $(shell uname -m)
endif

ifeq ($(OS),Windows_NT)
    export PATH := $(PATH):../../libWin32:../../libx64
    LIBS= -lcuda -L ../../libWin32 -L ../../libx64 -lcupti
    OBJ = obj
else
    #export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):../../lib:../../lib64
    #LIBS= -lcuda -L ../../lib -L ../../lib64 -lcupti
    OBJ = o
endif

hello_world: hello_world.$(OBJ)
        nvcc -o $@ hello_world.$(OBJ) $(LIBS)

hello_world.$(OBJ): hello_world.cu
        nvcc -c $(INCLUDES) $<

run: hello_world
        ./$<

clean:
        rm -f hello_world hello_world.$(OBJ)
wenn ich 'LIBRARIES += $(_SPACE_) -lcupti' in nvcc.profile setze.

Die effektiven Befehle werden ausgegeben, wenn die 'nvcc' mit '--verbose' angereichert werden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Re: Cuda Examples

Beitrag von tHoRax » 28.12.2012 11:32:45

hallo rendegast,
das Ganze hat sich mittlerweile derart zu einem "Nervenkrieg" ausgeartet,dass ich gestern nach einem Versuch das nividia-cuda...run versucht habe neu zu installieren und jedesmal wurde es nicht installiert,obwohl ich zuvor alles mögliche,dass auf eine zuvor installierte Version von CUDA und nvidia-Treibern auf mein System deutete vom System verbannte und so die nvidia...run zu installieren versuchte,zuletzt mit der Ausgabe Prüfsummen-Fehler...
Alle Versuche dies zu beheben scheiterten, sodass ich mich entschlossen habe mein System neu aufzusetzen :cry:
Jetzt habe ich gerade mein System fertig installiert und habe noch ziemlich viel Arbeit vor mir, wenn ich dann soweit bin,werde ich mich melden...
Danke für deine Unterstützung,echt toll von dir...
Mfg jimmy
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Cuda Examples

Beitrag von rendegast » 29.12.2012 08:00:55

... das nividia-cuda...run versucht habe neu zu installieren ...
... und so die nvidia...run zu installieren versuchte, ...
https://developer.nvidia.com/cuda-downloads
Es gibt da mehrere cuda_5.0.35_linux...run, je ~ 600MB.
... zuletzt mit der Ausgabe Prüfsummen-Fehler...
Bezüglich zu installierender Dateien, zu deinstallierender Version oder beim Eigen-check?

Code: Alles auswählen

$ ./cuda_5.0.35_linux_32_ubuntu11.10-1.run -help
Options:
   -help               : Print help message
   -driver             : Install NVIDIA Display Driver
   -uninstall          : Uninstall NVIDIA Display Driver
   -toolkit            : Install CUDA 5.0 Toolkit
   -toolkitpath=<PATH> : Specify path for CUDA location (default: /usr/local/cuda-5.0)
   -samples            : Install CUDA 5.0 Samples
   -samplespath=<PATH> : Specify path for Samples location (default: /usr/local/cuda-5.0/samples)
   -silent             : Run in silent mode. Implies acceptance of the EULA
   -verbose            : Run in verbose mode
   -extract=<PATH>     : Extract individual installers from the .run file to PATH
   -optimus            : Install driver support for Optimus
   -override           : Overrides the installation checks (compiler, lib, etc)
Gibt auch weitere Optionen, zBsp. '--check', siehe den Skript-Header.

Besteht einerseits aus mehreren Paketen (driver, optimus, toolkit, samples),
die jeweils mit dem System kollidieren (driver) oder kollidieren könnten,
wobei das CUDA aber standardmäßig in /usr/local/ landet.
(Ich hätte das ganze Zeug erstmal mit '--extract' entpackt und begutachtet, zBsp. die Skript-Header der *.run-Dateien)
Jeweilig uninstall-install-uninstall sollte Entfernen. (vielleicht sind es wegen "ubuntu" auch deb-Pakete?)
Bei kollidierenden debian-Paketen (xserver-xorg-core, libgl1-mesa-glx, libgl1-mesa-dev, nvidia-...) dann ein reinstall oder auch purge->install.

Code: Alles auswählen

$ ./cuda_5.0.35_linux_32_ubuntu11.10-1.run --list
Target directory: pkg
drwxrwxr-x adick/adick       0 2012-10-17 23:24 ./
drwxrwxr-x adick/adick       0 2012-10-17 23:25 ./run_files/
-rwxr-xr-x adick/adick 132627096 2012-10-17 23:25 ./run_files/cuda-samples_5.0.35_linux.run
-rwxr-xr-x adick/adick  39374128 2012-10-17 23:24 ./run_files/devdriver_5.0_linux_32_304.54.run
-rwxr-xr-x adick/adick    410552 2012-10-17 23:24 ./run_files/getpass
-r--r--r-- adick/adick     43127 2012-10-17 23:24 ./run_files/EULA_uber.txt
-rwxr-xr-x adick/adick 415630662 2012-10-17 23:25 ./run_files/cudatoolkit_5.0.35_linux_32_ubuntu11.10.run
-rwxr-xr-x adick/adick     26781 2012-10-17 23:24 ./cuda-installer.pl

---->
$ ./cuda-samples_5.0.35_linux.run --list | grep deb$
$ ./cudatoolkit_5.0.35_linux_32_ubuntu11.10.run --list | grep deb$
Nix debs,
Extrahieren der jeweiligen tar.gz zeigt in den beiden ein Perl-Skript für die Installation.
Darin dann
print "* To uninstall the NVIDIA CUDA Samples, please delete $prefix\n";
resp.
print "* To uninstall CUDA, remove the CUDA files in $prefix\n";
Der beinhaltete Treiber 304.54 ist leider nicht (mehr) auf ftp://download.nvidia.com/,
entspricht aber wohl einem ganz normalen nvidia-Treiber dieser Reihe.

'-optimus' entspricht nicht einem weiteren hier fehlenden Paket,
sondern der Option '--no-opengl-files' für die Installation des Treibers.



Fazit, Neuaufsetzen des Systems ist unnötig.

---------------------------------
Anmerkung,
das obige cuda-toolkit bringt ein oracle-java 1.6.0_24-b07 mit (aktuell 1.6.0_38 resp. 1.7.0_10),
und will in Voreinstellung keinen gcc 4.7.
Auch ist obiger Installer nicht "multiarch", es will für die samples '/usr/lib[64]/libglut.so'.
-> Links modifizieren oder einfach '-override'.
Die installierten Beispiele mosern dann aber wieder über gcc-4.7,
also braucht nvcc '--compiler-bindir /usr/bin/gcc-4.6' usw.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Re: Cuda Examples

Beitrag von tHoRax » 29.12.2012 13:42:37

hallo rendegast.
das Ganze dürfte ja net so schwer sein...
Holt man sich den nvidia-installer bei nvidia,installiert es, dann installiert es den nvidia-Treiber...
Aber es scheitert dann irgendwannmal an cuda-samples, dass die nicht generiert werden.
Hat es überhaupt jemand hier aus dem Forum das Ganze zum Laufen gebracht, unabhängig davon, ob einer Squeeze oder Wheezy hat? Wenn ja, wie?
Es gibt ja so einige Beiträge hier im Forum und ich möchte jetzt nicht jeden Beitrag extra aufrufen und dieselbe Frage wie oben stellen, wäre ja schön, wenn man sich überall wiederholt :wink:
Hat es jemand geschafft CUDA zum Laufen zu bringen,besser die Beispiele durchzuprobieren?
MfG jimmy

P.S: Seit Tagen schlag ich damit rum; erst die in wheezy enthaltenen nvidia-cuda Pakete und dann die anderen von Nvidia und danach geht gar nix mehr,nicht einmal der X-Server und man muss wieder reinstallen und das System neu aufsetzen,das ist sehr,sehr nervig...Ich weiss gar nicht mehr seit Tagen, wo mir der Kopf steht.
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Cuda Examples

Beitrag von rendegast » 29.12.2012 15:04:10

Holt man sich den nvidia-installer bei nvidia,installiert es, dann installiert es den nvidia-Treiber...
Nur wenn Du den auch installieren läßt, einfach die Frage des Hauptinstallers mit 'n' beantworten.
Oder in dem Moment sich nur die beiden /tmp/selfgzXXXXX/run_files/*cuda*.run sichern.
Aber es scheitert dann irgendwannmal an cuda-samples, dass die nicht generiert werden.
Nein, eigentlich nicht.
Bei der Installation wird in den Makefile der gewählte CUDA_PATH eingetragen.
Passende CC und GCC können wohl in der /.../.../bin/nvcc.profile vorgegeben werden, eventuell auch als make-Optionen.
Auch für die Libs und Header an nicht-System-Orten können dann
INCLUDES += $(_SPACE_) -I/..../... ... ...
LIBRARIES += $(_SPACE_) -L/.../... ... ...
mit -L/.../... und -I/.../... (grosses i) gefüttert werden.


Den anderen Weg habe ich hier auf einer ATI-Maschine mit debians cuda4

Code: Alles auswählen

aptitude install  nvidia-cuda-toolkit  libcupti-dev  freeglut3-dev  --without-recommends
Dann entweder den cuda-Hauptinstaller oder

Code: Alles auswählen

./cuda-samples_5.0.35_linux.run
nach irgendwohin mit dem debian-CUDApfad /usr/lib/nvidia-cuda-toolkit.
In dem Makefile muß ich noch das '-gencode ...._35' herausnehmen, was aber wohl maschinenspezifisch ist (oder cuda5 ? ).

Code: Alles auswählen

/tmp/samples/0_Simple/asyncAPI$ make
/usr/lib/nvidia-cuda-toolkit/bin/nvcc -m32  -gencode arch=compute_10,code=sm_10 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -I/usr/lib/nvidia-cuda-toolkit/include -I. -I.. -I../../common/inc -o asyncAPI.o -c asyncAPI.cu
g++ -m32 -o asyncAPI asyncAPI.o -L/usr/lib/nvidia-cuda-toolkit/lib -lcudart 
mkdir -p ../../bin/linux/release
cp asyncAPI ../../bin/linux/release

/tmp/samples/0_Simple/asyncAPI$ ./asyncAPI
[./asyncAPI] - Starting...
CUDA error at ../../common/inc/helper_cuda.h:930 code=38(cudaErrorNoDevice) "cudaSetDevice(devID)" 
CUDA error at ../../common/inc/helper_cuda.h:931 code=38(cudaErrorNoDevice) "cudaGetDeviceProperties(&deviceProp, devID)" 
GPU Device 0: "�Z�" with compute capability 0.1

CUDA error at asyncAPI.cu:61 code=38(cudaErrorNoDevice) "cudaGetDeviceProperties(&deviceProps, devID)" 
��Z� device [;@��=�=�9
]
CUDA error at asyncAPI.cu:70 code=38(cudaErrorNoDevice) "cudaMallocHost((void **)&a, nbytes)" 
Speicherzugriffsfehler
(Okay, gerade kein nvidia-Hardware verbaut resp. kein Treiber geladen)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Re: Cuda Examples

Beitrag von tHoRax » 29.12.2012 16:27:56

hallo rendegast.
Gerade bin ich mit dem Aufsetzen des (neuen :) ) Systems fertig geworden, wheezy mit GNOME3.
Meine bisherige Vorgensweise:
1. Nvidia-Installer vom nvidia runtergeladen.
Auf meinem Netbook sind noch die nouveau-Treiber installiert,daher habe ich X,aber in den verschiedenen Beiträgen wird bei der Installation von nouveau-Treibern abgeraten und man rät sie zu de-installieren, was ich als erstes tue.
2.Nach der De-Installation des nouveau und wie es geraten wird, wird ein
sudo ./cuda_5.0*.run -extract=/Installationspfad ausgeführt und man erhält danach
glaube ich 3 Files(devdriver.run,cudatoolkit.run,cuda-samples.run).
Ich habe dann als allerstes immer wie angeraten den nouveau-Treiber deinstalliert und danach den
devdriver.run mit CC=/usr/bin/gcc-4.6 ./devdriver.run -a -d -s -Z -X --kernel-name=$(uname -r)
gleich mit gcc-4.6 für den entsprechen Kernel übersetzt.
Alle Module werden gebaut,alles läuft dann problemlos,aber man erhält kein X,verstehe nicht weshalb.
Auf die gleiche Weise wie oben kann man ja auch die cuda-samples übersetzen,weiss aber nicht, ob es wie auch im Fall X, funktionieren.
Danach fängt der Nervenkitzel an, wenn man kein X mehr hat und versucht debian-nvidia-Treiber zu installieren.Da greift dann wieder nvidia-installer.cleanup ein -es ist in dem Moment nicht installiert- und tut so als würde es den alten Treiber de-zu-installieren und läuft,läuft und läuft...
Man kann dann mit dpkg --configure -a den nicht-vorhandenen nvidia-installer-cleanup vom System bannen,aber erhält trotz der Installation der Treiber dennoch kein X.
Irgendwannmal nach zig-Stunden entschliesst man sich dazu,das System neu aufzusetzen,da nix mehr geht.
Ich bin jetzt so richtig durch den Wind, weil ich wegen dem Mist nicht zur Ruhe gekommen bin,aber gehen wir mal Schritt-für-Schritt vor.
Was schlägst du mir vor?Wie soll ich vorgehen?
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Cuda Examples

Beitrag von rendegast » 29.12.2012 17:23:32

1. Nvidia-Installer vom nvidia runtergeladen.
...
Ich habe dann als allerstes immer wie angeraten den nouveau-Treiber deinstalliert und danach den
devdriver.run mit CC=/usr/bin/gcc-4.6 ./devdriver.run -a -d -s -Z -X --kernel-name=$(uname -r)
gleich mit gcc-4.6 für den entsprechen Kernel übersetzt.
Alle Module werden gebaut,alles läuft dann problemlos,aber man erhält kein X,verstehe nicht weshalb.
Warum installierts Du das Ding aus dem CUDA-Paket, wenn Du schon einen laufenden nvidia hast?
Wird das wirklich so angeraten?
nouveau deinstallieren, nvidia...run resp. devdriver...run installieren?

Nicht eher "verwende nvidia statt nouveau"?
Mit anschließendem "Installiere Paket Debiannvidia-glx".
Der Vorgang erstellt dann nämlich eine initiale xorg.conf mit "Section "Device" ...... Driver "nvidia"....",
,blacklisten des nouveau-Moduls, und per dkms für weitere Kernel das nvidia-Modul.
Für Anfänger die bessere Wahl.

Die Vorgänge sind händisch zu erledigen,
'nvidia-xconfig',
/etc/modprobe.d/zz_mein_nvidia mit 'blacklist nouveau' (Installer ab 304.xx bieten das wohl an, '-Z'),
Weitere Kernel oder Modulneubau 'installer.run --kernel-module-only -k $KERNELVERSION'.

Kommen dann noch X- oder mesa-Upgrades, ist die nvidia-Installation gegebenenfalls zu wiederholen.

Ein Entfernen läuft per '--uninstall' möglichst mit demselben oder neueren Installer
mit abschließender Reparatur/Reinstallation der durch den Installer betroffenen Pakete.


Das nouveau-Modul läßt sich zudem nicht mehr entladen (so eine KMS-Krankheit),
was auch einen Rechner-Neustart bedingt. Win läßt grüßen.

alles läuft dann problemlos,
<->
aber man erhält kein X
?
Die Xorg...log dürfte da Informationen geben.
Liegt vielleicht einfach an dem verwendeten 304.54,
oder unsauberer Wechsel von dem einen nvidia zum anderen?



----------------------
entschliesst man sich dazu,das System neu aufzusetzen,da nix mehr geht.
Konsole oder ssh gehen eigentlich immer.


------------------------
Was schlägst du mir vor?Wie soll ich vorgehen?
Wenn Du cuda meinst, habe ich schon im Vorpost geschrieben,
nimm das toolkit aus dem debian-Repo.
Die cuda-samples*.run lasse auf das Toolkit /usr/lib/nvidia-cuda-toolkit zielen,
und eventuell die kleine Anpassung des gencode im Makefile.
compiler-Ausgabe weist gegebenenfalls darufhin:

Code: Alles auswählen

$ make
/usr/lib/nvidia-cuda-toolkit/bin/nvcc -m32  -gencode arch=compute_10,code=sm_10 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -I/usr/lib/nvidia-cuda-toolkit/include -I. -I.. -I../../common/inc -o asyncAPI.o -c asyncAPI.cu
nvcc fatal   : Unsupported gpu architecture 'compute_35'
make: *** [asyncAPI.o] Fehler 255
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Re: Cuda Examples

Beitrag von tHoRax » 29.12.2012 22:56:24

hallo rendegast.

Code: Alles auswählen

nimm das toolkit aus dem debian-Repo...
schon geschehen, habe das nvidia.cuda-toolkit etc. aus wheezy,nur die cuda-samples aus nvidia.

Code: Alles auswählen

Die cuda-samples*.run lasse auf das Toolkit /usr/lib/nvidia-cuda-toolkit zielen,
und eventuell die kleine Anpassung des gencode im Makefile.
compiler-Ausgabe weist gegebenenfalls darufhin:
Wie meinst du das?cuda-samples auf /usr/lib/nvidia...zielen?
Wenn ich cuda-samples mit 'make' ausführe, bekomme ich einen Fehler.
Kurzfassung:

Code: Alles auswählen

In file included from /usr/local/cuda-5.0/include/cuda_runtime.h:59:0,
                 from <command-line>:0:
/usr/local/cuda-5.0/include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.7 and up are not supported!
make[1]: *** [simpleLayeredTexture.o] Fehler 1
make[1]: Leaving directory `/usr/local/cuda-5.0/samples/0_Simple/simpleLayeredTexture'
make: *** [0_Simple/simpleLayeredTexture/Makefile.ph_build] Fehler 2
Ich habe beide Versionen von gcc(4.6 bzw.4.7) installiert und Cuda-samples mit 'CC=/usr/bin/gcc-4.6 cuda-sample.run ausgeführt,aber trotzdem wird versucht mit Version 4.7 zu übersetzen.
Im Makefile finde ich keine Zeile, die auf die Version 4.7 verweist.

Code: Alles auswählen

#
# CUDA Samples
#
###############################################################################

# OS Name (Linux or Darwin)
OSLOWER = $(shell uname -s 2>/dev/null | tr [:upper:] [:lower:])

# Project folders that contain CUDA samples
PROJECTS := $(shell find 0_Simple 1_Utilities 2_Graphics 3_Imaging 4_Finance 5_Simulations 6_Advanced 7_CUDALibraries -name Makefile)

%.ph_build :
	+@$(MAKE) -C $(dir $*) $(MAKECMDGOALS)

%.ph_clean : 
	+@$(MAKE) -C $(dir $*) clean $(USE_DEVICE)

%.ph_clobber :
	+@$(MAKE) -C $(dir $*) clobber $(USE_DEVICE)

all:  $(addsuffix .ph_build,$(PROJECTS))
	@echo "Finished building CUDA samples"

tidy:
	@find * | egrep "#" | xargs rm -f
	@find * | egrep "\~" | xargs rm -f
	@rm -rf ../../bin/$(OSLOWER)/release ../../bin/$(OSLOWER)/debug

clean: tidy $(addsuffix .ph_clean,$(PROJECTS))

clobber: clean $(addsuffix .ph_clobber,$(PROJECTS))
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Cuda Examples

Beitrag von rendegast » 30.12.2012 01:30:17

Wie meinst du das?cuda-samples auf /usr/lib/nvidia...zielen?
Hast Du die beiden Fragen bei Einspielen der cuda-samples...run nicht bemerkt?
  • - Wohin sollen die Samples?
    - Wo ist das Toolkit zu finden?
habe das nvidia.cuda-toolkit etc. aus wheezy,nur die cuda-samples aus nvidia.
widerspricht
/usr/local/cuda-5.0/include/host_config.h:82:2: error:
Eventuell verweisen noch modifizierte Systempfade auf /usr/local/cuda-5.0/.
Andererseits, binarys aus /usr/local/bin/ werden vor denen aus /usr/bin/ ausgeführt.
Hast Du die vorherige Installation von nvidias cuda5 nicht gelöscht? (/usr/local/cuda-5.0/, Links in /usr/local/bin/)
Nebenbei hast Du dieses Problem nicht, wenn Du nvidias cuda und cuda-samples als normaler User einspielst.
Für ein Umschalten muß dann nvidia-samples eingespielt werden mit Angabe des jeweils beabsichtigten cuda-Verzeichnis.
,aber trotzdem wird versucht mit Version 4.7 zu übersetzen.
Ist eine Eigenart des cuda5 aus nvidias Installer, noch ein Anzeichen daß Du weiterhin mit nvidias cuda5 arbeitest.

Habe bei dem cuda5 bisher aber auch keine andere Möglichkeit gefunden, als den Link /usr/bin/gcc auf gcc-4.6 zu ändern.
Direkt '/..../nvcc --compiler-bindir=/usr/bin/gcc-4.6 ...' funktioniert zwar
, aber wie anders übergeben als direkt im Makefile zu setzen?
Im nvcc.profile (nvidias cuda5 benutzt /...../bin/nvcc.profile statt debians /etc/nvcc.profile)

Code: Alles auswählen

compiler-bindir = /usr/bin/gcc-4.6
wird aber, anders als die Commandline-Option, nicht als binary sondern als Verzeichnis interpretiert.
Vielleicht als walkaround bei INCLUDES / LIBRARIES untermogeln?
Aber das gilt nur für die Arbeit mit nvidias cudas5.

wheezys cuda4 arbeitet hier auch mit /usr/bin/gcc (gcc-4.7) / /usr/bin/g++ (g++-4.7),
soweit die Compileraugaben richtig zu deuten sind.
Scheint dahingehend gepatcht zu sein, widersprechend dem changelog.






Im Makefile finde ich keine Zeile, die auf die Version 4.7 verweist.
Das ist eine Art "Meta"-Makefile, das die Makefile der einzelnen Beispiele aufruft.

Bei weiterer Beschäftigung damit,
es braucht noch die Installation von Debianlibxi-dev und Debianlibxmu-dev,
und wenn ich diese Verzeichnisse durch Verschieben deaktiviere
(teils sind sie explizit bei mir nicht funktionierender GENCODE_SM35, teils andere Probleme):

Code: Alles auswählen

$ ls -1 .*_*/
.0_Simple/:
cdpSimplePrint
cdpSimpleQuicksort
simpleCallback
simpleMPI
simpleMultiCopy
simplePitchLinearTexture
simpleSeparateCompilation
simpleTexture

.2_Graphics/:
bindlessTexture

.6_Advanced/:
cdpAdvancedQuicksort
cdpLUDecomposition
cdpQuadtree

.7_CUDALibraries/:
conjugateGradientPrecond
grabcutNPP
imageSegmentationNPP
simpleDevLibCUBLAS
so läuft das "Haupt"-Makefile mit

Code: Alles auswählen

make GENCODE_SM30="-gencode arch=compute_30,code=sm_30 "
durch, Ergebnis:

Code: Alles auswählen

$ ls -1 bin/linux/release/
BlackScholes
FDTD3d
FunctionPointers
HSOpticalFlow
MC_EstimatePiInlineP
MC_EstimatePiInlineQ
MC_EstimatePiP
MC_EstimatePiQ
MC_SingleAsianOptionP
Mandelbrot
MersenneTwisterGP11213
MonteCarloMultiGPU
SobelFilter
SobolQRNG
alignedTypes
asyncAPI
bandwidthTest
batchCUBLAS
bicubicTexture
...
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten