Beispiel3: Zahlenfelder Multiplizieren (bisher nur OpenCL-Version)
======================================

Geschwindigkeitsvergleiche in GFLOPS
------------------------------------
PC:   Gaming-PC		alter Desktop	Uni Desktop	HP-Laptop
GK:   RTX 2080		GT 630 OEM	GT 625		GTX 850M
-----------------------------------------------------------------
CPU:  2.3 GFLOPS	2.6		2.4		2.1
naiv: 2060 (TPB=128)	22		36.2		138 (TPB=128)
opt1: 2034 (TPB=128)	54		38.4		276
opt2: 5800 (TPB=64)	83		76		550 (TPB=256)
opt3: 5160 (TPB=64)	166		85.6		918 (TPB=128)
opt4: 5594 (TPB=128)	214		96.4 (TPB=256)	1050 (TPB=128)
opt5: 5150 (TPB=128)	200 (TPB=1024)	102.6 (-r32)	1052 (TPB=512)
opt6: 4200 (TPB=512)	168 (-r64)	102.1 (-r32)	913 (TPB=512)
opt7: 6250 (TPB=64)	185 (TPB=512)	96.2 (TPB=96)	556 (TPB=64..512)

Typische Fehlermeldung bei fehlerhaftem Kernel:
-----------------------------------------------
program.build()
Build log for GeForce GT 625:

ptxas info    : 0 bytes gmem
ptxas info    : Compiling entry function 'hello' for 'sm_21'
ptxas info    : Function properties for hello
ptxas         .     0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 31 registers, 32800 bytes smem, 64 bytes cmem[0]
program.build() erfolgreich
kernel_compilieren() erfolgreich
Kernel "hello_kernel.cc" erfolgreich compiliert.
bool kernel_aufrufen()
Optimierung=5
Fehler10: Kernelaufruf misslungen:
  clFinish(-36) CL_INVALID_COMMAND_QUEUE
device_speicher_freigeben()
terminate called after throwing an instance of 'cl::Error'
  what():  clFinish
Abgebrochen (Speicherabzug geschrieben)
-----------------------------------------------

Typische Ausgabe wenn erfolgreich compiliert:
---------------------------------------------
Using platform: NVIDIA CUDA
Using device: GeForce GT 625
Build log for GeForce GT 625:

ptxas info    : 0 bytes gmem
ptxas info    : Compiling entry function 'hello' for 'sm_21'
ptxas info    : Function properties for hello
ptxas         .     0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 31 registers, 32800 bytes smem, 64 bytes cmem[0]
---------------------------------------------
