Late Attach
NvSciSync provides a mechanism for an application to allocate an
NvSciSyncObj
that will be shared with other peers, without
requiring each peer to have sent an unreconciled NvSciSyncAttrList
during initial reconciliation. The constraints of late attach waiter peers, however,
should be passed via unreconciled NvSciSyncAttrList
during the
reconciliation process by the application to ensure the
NvSciSyncObj
is allocated to satisfy the constraints of the
late peers.
NvSciSync
also allows remote peer
NvSciIpcEndpoint
to gain access to already allocated
NvSciSyncObj
, provided the already allocated
NvSciSyncObj
satisfies the constraints of the unreconciled
NvSciSyncAttrList
, received from that peer, through the
NvSciSyncObjAttachPeer()
API.
The following table contains the attributes set by User mode drivers (UMD),
CPU Waiter, and Inter-chip waiter. Application needs to create an unreconciled
NvSciSyncAttrList
and set the attribute-value, as described
below, if corresponding UMD is a late attach waiter. Along with the following
attributes, the application needs to set the
NvSciSyncAttrKey_PeerLocationInfo
attribute.
User Mode Driver | API | Attribute and Values |
---|---|---|
SIPL/Camera | nvsipl::INvSIPLCamera::FillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
|
NvMedia IDE | NvMediaIDEFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
|
NvMedia IEP | NvMediaIEPFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
|
NvMedia IJPD | NvMediaIJPDFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
|
NvMedia IJPE | NvMediaIJPEFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
|
NvMedia IOFA | NvMediaIOFAFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
|
CUDA Driver API | cuDeviceGetNvSciSyncAttributes() |
NvSciSyncAttrKey_RequiredPerm is set to the following:
NvSciSyncAttrKey_PrimitiveInfo is set to the following:
NvSciSyncAttrKey_GpuId is set to the same UUID that is returned for \p device from ::cuDeviceGetUuid |
CUDA Runtime API | cudaDeviceGetNvSciSyncAttributes() |
NvSciSyncAttrKey_RequiredPerm is set to the following:
NvSciSyncAttrKey_PrimitiveInfo is set to the following:
NvSciSyncAttrKey_GpuId is set to the same UUID returned in \p cudaDeviceProp.uuid from ::cudaDeviceGetProperties for this \p device. |
NvMedia 2D | NvMedia2DFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following: NvSciSyncAttrValPrimitiveType_Syncpoint |
VIC Diagnostics | VicDiagnosticsFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the
following:
|
NvMedia LDC | NvMediaLdcFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the
following:
|
cuPVA | CupvaSyncObjFillAttributes(), cupva::FillAttributes() | CUPVA supports NvSciSyncAttrValPrimitiveType_Syncpoint and NvSciSyncAttrValPrimitiveType_SysmemSemaphore primitive types |
VulcanSC | GetPhysicalDeviceSciSyncAttributesNV() |
NvSciSyncAttrKey_RequiredPerm is set to the
following:
NvSciSyncAttrKey_PrimitiveInfo is set to the
following:
NvSciSyncAttrKey_NeedCpuAccess is set to the
following:
|
NvMedia DLA | NvMediaDlaFillNvSciSyncAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
|
NvMedia DLA | NvMediaDlaFillNvSciSyncDeterministicAttrList() |
NvSciSyncAttrKey_RequiredPerm set to the following:
NvSciSyncAttrKey_PrimitiveInfo set to the following:
NvSciSyncAttrKey_RequireDeterministicFences set to the
following:
|
Display/OpenWFD | wfdNvSciSyncSetSignalerAttributesNVX() |
`NvSciSyncAttrKey_RequiredPerm` is set to the
following:
NvSciSyncAttrKey_PrimitiveInfo is set to the
following:
|
Display/OpenWFD | wfdNvSciSyncSetWaiterAttributesNVX() |
NvSciSyncAttrKey_RequiredPerm is set to the
following:
NvSciSyncAttrKey_PrimitiveInfo is set to the
following:
|
CPU Waiter | - |
NvSciSyncAttrKey_RequiredPerm is set to the
following:
NvSciSyncAttrKey_PrimitiveInfo is set to the
following:
NvSciSyncAttrKey_NeedCpuAccess is set to the
following:
NvSciSyncAttrKey_WaiterRequireTimestamps is set to the
following:
|
Inter-Chip Waiter | NvSciSyncFillC2cAttrs() | The NvSciSyncFillC2cAttrs() API can fill in the attributes corresponding to the inter-chip late peer |