cuda.bindings._v2.driver.multicast_create#
- cuda.bindings._v2.driver.multicast_create(prop) uint64_t#
Create a generic allocation handle representing a multicast object described by the given properties.
This creates a multicast object as described by
prop. The number of participating devices is specified byCUmulticastObjectProp.numDevices. Devices can be added to the multicast object viacuMulticastAddDevice. All participating devices must be added to the multicast object before memory can be bound to it. Memory is bound to the multicast object viacuMulticastBindMem,cuMulticastBindMem_v2,cuMulticastBindAddr, orcuMulticastBindAddr_v2. and can be unbound viacuMulticastUnbind. The total amount of memory that can be bound per device is specified byCUmulticastObjectProp.size. This size must be a multiple of the value returned bycuMulticastGetGranularitywith the flagCU_MULTICAST_GRANULARITY_MINIMUM. For best performance however, the size should be aligned to the value returned bycuMulticastGetGranularitywith the flagCU_MULTICAST_GRANULARITY_RECOMMENDED. After all participating devices have been added, multicast objects can also be mapped to a device’s virtual address space using the virtual memory management APIs (seecuMemMapandcuMemSetAccess). Multicast objects can also be shared with other processes by requesting a shareable handle viacuMemExportToShareableHandle. Note that the desired types of shareable handles must be specified in the bitmaskCUmulticastObjectProp.handleTypes. Multicast objects can be released using the virtual memory management APIcuMemRelease.- Parameters:
prop (intptr_t) – Properties of the multicast object to create.
- Returns:
Value of handle returned.
- Return type:
uint64_t
See also
cuMulticastCreate