CmdWaitOnFences#

Fully qualified name: cupva::CmdWaitOnFences

Defined in cupva_host.hpp

class CmdWaitOnFences : public cupva::BaseCmd#

CmdWaitOnFences is blocking the stream processing until fences expire.

Submitting CmdWaitOnFences to a Stream ensures that all subsequent Commands wait for Fence expiration before executing. Note that this wait occurs at the device level; creating and submitting CmdWaitOnFences is asynchronous to the host.

If a Stream submission begins with a CmdWaitOnFences, the device will wait for these fences to be signalled before starting the execution timer. If no execution timer is specified, a submission can only complete if all fences waited on by CmdWaitOnFences in a submission are signalled.

  • Maturity: GA

Public Functions

CmdWaitOnFences() noexcept#

Construct a new, uninitialized object.

This constructor allows declaring stl containers. Commands should be initialized before submitting to streams.

Usage considerations

  • Allowed context for the API call

    • Interrupt handler: No

    • Signal handler: No

    • Thread-safe: No

    • Re-entrant: No

    • Async/Sync: Sync

  • Required privileges: None

  • Allowed execution state

    • Initialization: Yes

    • Operational: Yes

    • Reinit/Deinit Preparation: Yes

  • Maturity: GA

Pre:

None

explicit CmdWaitOnFences(const Fence &fence) noexcept#

Construct a new object.

Usage considerations

  • Allowed context for the API call

    • Interrupt handler: No

    • Signal handler: No

    • Thread-safe: No

    • Re-entrant: No

    • Async/Sync: Sync

  • Required privileges: None

  • Allowed execution state

    • Initialization: Yes

    • Operational: Yes

    • Reinit/Deinit Preparation: Yes

  • Maturity: GA

Parameters:

fence – The reference to the fence to wait on.

Pre:

None

CmdWaitOnFences(const Fence *const fences, int32_t const count)#

Construct a new object.

Wait on an array of fences to expire.

Usage considerations

  • Allowed context for the API call

    • Interrupt handler: No

    • Signal handler: No

    • Thread-safe: No

    • Re-entrant: No

    • Async/Sync: Sync

  • Required privileges: None

  • Allowed execution state

    • Initialization: Yes

    • Operational: Yes

    • Reinit/Deinit Preparation: Yes

  • Maturity: GA

Parameters:
  • fences – The pointer to the fence array.

  • count – The number of fences in the array.

Throws:

cupva::Exception(InvalidArgument) – if MAX_CMD_WAIT_ON_FENCES_ARRAY_SIZE < count <= 0

Pre:

None

~CmdWaitOnFences() noexcept#

Destroy the object.

Usage considerations

  • Allowed context for the API call

    • Interrupt handler: No

    • Signal handler: No

    • Thread-safe: No

    • Re-entrant: No

    • Async/Sync: Sync

  • Required privileges: None

  • Allowed execution state

    • Initialization: Yes

    • Operational: Yes

    • Reinit/Deinit Preparation: Yes

  • Maturity: GA

Pre:

None

CmdWaitOnFences(CmdWaitOnFences const&) = delete#
CmdWaitOnFences &operator=(CmdWaitOnFences const&) & = delete#
CmdWaitOnFences(CmdWaitOnFences &&obj) noexcept#

Move constructor.

Usage considerations

  • Allowed context for the API call

    • Interrupt handler: No

    • Signal handler: No

    • Thread-safe: No

    • Re-entrant: No

    • Async/Sync: Sync

  • Required privileges: None

  • Allowed execution state

    • Initialization: Yes

    • Operational: Yes

    • Reinit/Deinit Preparation: Yes

  • Maturity: GA

Pre:

None

CmdWaitOnFences &operator=(CmdWaitOnFences &&obj) & noexcept#

Move assignment.

Usage considerations

  • Allowed context for the API call

    • Interrupt handler: No

    • Signal handler: No

    • Thread-safe: No

    • Re-entrant: No

    • Async/Sync: Sync

  • Required privileges: None

  • Allowed execution state

    • Initialization: Yes

    • Operational: Yes

    • Reinit/Deinit Preparation: Yes

  • Maturity: GA

Pre:

None