What can I help you with?
NVIDIA Holoscan SDK v.2.8.0

Class CudaEventCondition

Base Type

class CudaEventCondition : public holoscan::gxf::GXFCondition

Condition class to indicate data availability on CUDA stream completion via an event.

TODO(Greg): This condition requires there be a CudaEvent component in the message Entity.

e.g. it calls auto maybe_event = message->get<CudaEvent>(event_name_.get().c_str());

See StreamBasedOps codelet in gxf/cuda/tests/test_cuda_helper.hpp specifically the methods addNewEvent and initOpsEvent and how they are used in the operators that inherit from StreamBasedOps

We have not yet exposed CudaEvent object from Holoscan. Need to provide a convenient way to use it.

A condition which specifies the availability of data at the receiver on completion of the work on the provided cuda stream with the help of cuda event. This condition will keep polling on the event provided to check for data availability for consumption.

This condition applies to a specific input port of the operator as determined by setting the “receiver” argument.

Note: The nvidia::gxf::CudaEvent class is currently unused by Holoscan SDK. This condition is intended exclusively for interoperation with wrapped GXF Codelets that use GXF’s CudaEvent type.

==Parameters==

  • receiver (std::string): The receiver to check for a CudaEvent. This should be specified by the name of the Operator’s input port the condition will apply to. The Holoscan SDK will then automatically replace the port name with the actual receiver object at application run time.

  • event_name (std::string): The name of the CUDA event to wait on.

Public Functions

template<typename ArgT, typename ...ArgsT, typename = std::enable_if_t<!std::is_base_of_v<::holoscan::Condition, std::decay_t<ArgT>> && (std::is_same_v<::holoscan::Arg, std::decay_t<ArgT>> || std::is_same_v<::holoscan::ArgList, std::decay_t<ArgT>>)>>
inline explicit CudaEventCondition(ArgT &&arg, ArgsT&&... args)
CudaEventCondition() = default
CudaEventCondition(const std::string &name, nvidia::gxf::CudaEventSchedulingTerm *term)
inline virtual const char *gxf_typename() const override
virtual void setup(ComponentSpec &spec) override

Define the condition specification.

Parameters

spec – The reference to the component specification.

inline void receiver(std::shared_ptr<gxf::GXFResource> receiver)
inline std::shared_ptr<gxf::GXFResource> receiver()
nvidia::gxf::CudaEventSchedulingTerm *get() const

Previous Class CudaBufferAvailableCondition
Next Class CudaStreamCondition
© Copyright 2022-2024, NVIDIA. Last updated on Jan 27, 2025.