set_compute_device_paramT_set_compute_device_paramSetComputeDeviceParamSetComputeDeviceParamset_compute_device_param (Operator)
Name
set_compute_device_paramT_set_compute_device_paramSetComputeDeviceParamSetComputeDeviceParamset_compute_device_param — Setzen von Parametern eines Compute Devices.
Signatur
Beschreibung
set_compute_device_paramset_compute_device_paramSetComputeDeviceParamSetComputeDeviceParamSetComputeDeviceParamset_compute_device_param setzt die Parameter des Compute
Devices DeviceHandleDeviceHandleDeviceHandleDeviceHandledeviceHandledevice_handle für den aktuellen HALCON Thread.
Die folgenden Parameter können gesetzt werden:
- 'alloc_pinned'"alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned"
-
Wenn 'alloc_pinned'"alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned" auf 'true'"true""true""true""true""true"
gesetzt ist werden die
Ausgabebilder aller folgenden Operatoraufrufe (egal ob
auf dem Device ausgeführt oder nicht) dieses Threads in
page locked (oder 'pinned') Speicher erzeugt.
Das beschleunigt den Transfer zwischen dem Hauptspeicher
und dem Speicher des Devices. Zu exzessive Verwendung
von page locked Speicher kann aber negativen Einfluss
auf die Geschwindigkeit des Systems nehmen.
'alloc_pinned'"alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned" sollte aktiviert werden, wenn das
Ausgabebild des nächsten Operatoraufrufs auf das
Device transferiert werden soll.
Für Operatoraufrufe, deren Ausgabebilder nicht auf dem
Device verwendet werden, sollte 'alloc_pinned'"alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned"
deaktiviert werden (siehe Beispiel).
Werteliste: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false".
Standardwert: 'true'"true""true""true""true""true".
- 'asynchronous_execution'"asynchronous_execution""asynchronous_execution""asynchronous_execution""asynchronous_execution""asynchronous_execution"
-
Ist 'asynchronous_execution' auf 'true'"true""true""true""true""true" gesetzt,
warten Operatoren, die auf dem Device ausgeführt werden,
nicht auf das Ende der Berechnungen, sondern enden, sobald
die Berechnungen angestoßen wurden.
Alle Berechnungen auf dem Device werden synchronisiert
sobald die Ausgabe einer Device Berechnung auf der CPU
benötigt wird (z.B. von disp_imagedisp_imageDispImageDispImageDispImagedisp_image).
Werteliste: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false".
Standardwert: 'true'"true""true""true""true""true".
- 'buffer_cache_capacity'"buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity"
-
Maximale Größe (in Byte) des Compute Device Buffer
Caches.
Standardwert: 1/3 des verfügbaren Device Speichers
- 'image_cache_capacity'"image_cache_capacity""image_cache_capacity""image_cache_capacity""image_cache_capacity""image_cache_capacity"
-
Maximale Größe (in Byte) des Compute Device Bild
Caches.
Standardwert: 1/3 des verfügbaren Device Speichers
- 'pinned_mem_cache_capacity'"pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity"
-
Maximale Größe (in Byte) des page locked Speicher
Caches.
Standardwert: 32000000 (32MByte)
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: local (kann nur von dem Thread aufgerufen werden, in dem die Fenster-, Modell- oder Tool-Instanz erzeugt wurde).
- Wird ohne Parallelisierung verarbeitet.
Parameter
DeviceHandleDeviceHandleDeviceHandleDeviceHandledeviceHandledevice_handle (input_control) compute_device → HComputeDevice, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Compute Device Handle.
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Name des zu setzenden Parameters.
Defaultwert:
'buffer_cache_capacity'
"buffer_cache_capacity"
"buffer_cache_capacity"
"buffer_cache_capacity"
"buffer_cache_capacity"
"buffer_cache_capacity"
Werteliste: 'alloc_pinned'"alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned", 'asynchronous_execution'"asynchronous_execution""asynchronous_execution""asynchronous_execution""asynchronous_execution""asynchronous_execution", 'buffer_cache_capacity'"buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity", 'image_cache_capacity'"image_cache_capacity""image_cache_capacity""image_cache_capacity""image_cache_capacity""image_cache_capacity", 'pinned_mem_cache_capacity'"pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control) string(-array) → HTupleMaybeSequence[Union[str, int, float]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Neuer Wert des Parameters.
Beispiel (HDevelop)
activate_compute_device (DeviceHandle)
read_image (Image, 'fuse')
set_compute_device_param (DeviceHandle, 'alloc_pinned', 'true')
* filter on compute device, output image is page locked
derivate_gauss (Image, DerivGauss, 3, 'gradient')
* filter result on the CPU, output image should not be page locked
set_compute_device_param (DeviceHandle, 'alloc_pinned', 'false')
median_image (DerivGauss, ImageMedian, 'circle', 1, 'mirrored')
Ergebnis
Sind alle Parameterwerte korrekt, liefert set_compute_device_paramset_compute_device_paramSetComputeDeviceParamSetComputeDeviceParamSetComputeDeviceParamset_compute_device_param
den Wert 2 (H_MSG_TRUE) zurück.
Andernfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
activate_compute_deviceactivate_compute_deviceActivateComputeDeviceActivateComputeDeviceActivateComputeDeviceactivate_compute_device
Siehe auch
get_compute_device_paramget_compute_device_paramGetComputeDeviceParamGetComputeDeviceParamGetComputeDeviceParamget_compute_device_param
Modul
Foundation