set_compute_device_paramT_set_compute_device_paramSetComputeDeviceParamSetComputeDeviceParamset_compute_device_param (Operator)
Name
set_compute_device_paramT_set_compute_device_paramSetComputeDeviceParamSetComputeDeviceParamset_compute_device_param
— Set parameters of an compute device.
Signature
Description
set_compute_device_paramset_compute_device_paramSetComputeDeviceParamSetComputeDeviceParamSetComputeDeviceParamset_compute_device_param
sets parameters of the
compute device DeviceHandleDeviceHandleDeviceHandleDeviceHandledeviceHandledevice_handle
for the current HALCON thread.
The following parameters can be set:
- 'alloc_pinned'"alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned""alloc_pinned"
-
If 'true'"true""true""true""true""true", the output image matrices of all operators
(executed on the compute device or not) called in the
current HALCON thread are created in page locked
(so called 'pinned') memory.
This accelerates the transfer between host and device
memory. However, too excessive usage of page locked memory
may have a negative impact on overall system performance.
You should activate page locked memory allocation if
the output image of of the next operator call is to be
transferred to the device.
Page locked memory allocation should be deactivated for
all operator calls whose output images are not required
on the compute device (see example).
List of values: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false".
Default: 'true'"true""true""true""true""true".
- 'asynchronous_execution'"asynchronous_execution""asynchronous_execution""asynchronous_execution""asynchronous_execution""asynchronous_execution"
-
If 'true'"true""true""true""true""true", operators executed on the compute device
do not wait for the device computations to finish but
return after initiating the computations.
All device computations are synchronized as soon as
the output of a compute device operation is used on
the CPU (e.g. by disp_imagedisp_imageDispImageDispImageDispImagedisp_image
).
List of values: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false".
Default: 'true'"true""true""true""true""true".
- 'buffer_cache_capacity'"buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity""buffer_cache_capacity"
-
Maximum size (in bytes) of the compute device buffer
cache.
default: 1/3 of the available device memory
- 'image_cache_capacity'"image_cache_capacity""image_cache_capacity""image_cache_capacity""image_cache_capacity""image_cache_capacity"
-
Maximum size (in bytes) of the compute device image
cache.
Default: 1/3 of the available device memory
- 'pinned_mem_cache_capacity'"pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity""pinned_mem_cache_capacity"
-
Maximum size (in bytes) of the page locked (pinned) memory
cache.
Default: 32000000 (32MByte)
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: local (may only be called from the same thread in which the window, model, or tool instance was created).
- Processed without parallelization.
Parameters
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 of the parameter to set.
Default value:
'buffer_cache_capacity'
"buffer_cache_capacity"
"buffer_cache_capacity"
"buffer_cache_capacity"
"buffer_cache_capacity"
"buffer_cache_capacity"
List of values: '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)
New parameter value.
Example (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')
Result
The operator set_compute_device_paramset_compute_device_paramSetComputeDeviceParamSetComputeDeviceParamSetComputeDeviceParamset_compute_device_param
returns the
value TRUE if the parameters are correct. Otherwise
an exception will be raised.
Possible Predecessors
activate_compute_deviceactivate_compute_deviceActivateComputeDeviceActivateComputeDeviceActivateComputeDeviceactivate_compute_device
See also
get_compute_device_paramget_compute_device_paramGetComputeDeviceParamGetComputeDeviceParamGetComputeDeviceParamget_compute_device_param
Module
Foundation