mesytec-mnode/external/taskflow-3.8.0/docs/xml/classtf_1_1cudaStream.xml
2025-01-04 01:25:05 +01:00

175 lines
11 KiB
XML

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.1" xml:lang="en-US">
<compounddef id="classtf_1_1cudaStream" kind="class" language="C++" prot="public">
<compoundname>tf::cudaStream</compoundname>
<basecompoundref prot="public" virt="non-virtual">cudaObject&lt; cudaStream_t, cudaStreamCreator, cudaStreamDeleter &gt;</basecompoundref>
<includes refid="cuda__stream_8hpp" local="no">taskflow/cuda/cuda_stream.hpp</includes>
<sectiondef kind="public-func">
<memberdef kind="function" id="classtf_1_1cudaStream_1ab29390d447e334d4945caf78b24d6ca6" prot="public" static="no" const="no" explicit="yes" inline="yes" virt="non-virtual">
<type></type>
<definition>tf::cudaStream::cudaStream</definition>
<argsstring>(cudaStream_t stream)</argsstring>
<name>cudaStream</name>
<param>
<type>cudaStream_t</type>
<declname>stream</declname>
</param>
<briefdescription>
<para>constructs an RAII-styled object from the given CUDA stream </para>
</briefdescription>
<detaileddescription>
<para>Constructs a <ref refid="classtf_1_1cudaStream" kindref="compound">cudaStream</ref> object which owns <computeroutput>stream</computeroutput>. </para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="taskflow/cuda/cuda_stream.hpp" line="60" column="14" bodyfile="taskflow/cuda/cuda_stream.hpp" bodystart="60" bodyend="61"/>
</memberdef>
<memberdef kind="function" id="classtf_1_1cudaStream_1a922ed633cf0670b22aca1430e7a810b1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<type></type>
<definition>tf::cudaStream::cudaStream</definition>
<argsstring>()=default</argsstring>
<name>cudaStream</name>
<briefdescription>
<para>default constructor </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="taskflow/cuda/cuda_stream.hpp" line="66" column="5"/>
</memberdef>
<memberdef kind="function" id="classtf_1_1cudaStream_1a1a81d6005e8d60ad082dba2303a8aa30" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
<type>void</type>
<definition>void tf::cudaStream::synchronize</definition>
<argsstring>() const</argsstring>
<name>synchronize</name>
<briefdescription>
<para>synchronizes the associated stream </para>
</briefdescription>
<detaileddescription>
<para>Equivalently calling <computeroutput>cudaStreamSynchronize</computeroutput> to block until this stream has completed all operations. </para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="taskflow/cuda/cuda_stream.hpp" line="74" column="10" bodyfile="taskflow/cuda/cuda_stream.hpp" bodystart="74" bodyend="78"/>
</memberdef>
<memberdef kind="function" id="classtf_1_1cudaStream_1ad98a025ff4306aa799e664a1e2aefd2e" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
<type>void</type>
<definition>void tf::cudaStream::begin_capture</definition>
<argsstring>(cudaStreamCaptureMode m=cudaStreamCaptureModeGlobal) const</argsstring>
<name>begin_capture</name>
<param>
<type>cudaStreamCaptureMode</type>
<declname>m</declname>
<defval>cudaStreamCaptureModeGlobal</defval>
</param>
<briefdescription>
<para>begins graph capturing on the stream </para>
</briefdescription>
<detaileddescription>
<para>When a stream is in capture mode, all operations pushed into the stream will not be executed, but will instead be captured into a graph, which will be returned via <ref refid="classtf_1_1cudaStream_1a9c48388031655cc691b267de96516a66" kindref="member">cudaStream::end_capture</ref>.</para>
<para>A thread&apos;s mode can be one of the following:<itemizedlist>
<listitem><para><computeroutput>cudaStreamCaptureModeGlobal:</computeroutput> This is the default mode. If the local thread has an ongoing capture sequence that was not initiated with <computeroutput>cudaStreamCaptureModeRelaxed</computeroutput> at <computeroutput>cuStreamBeginCapture</computeroutput>, or if any other thread has a concurrent capture sequence initiated with <computeroutput>cudaStreamCaptureModeGlobal</computeroutput>, this thread is prohibited from potentially unsafe API calls.</para>
</listitem><listitem><para><computeroutput>cudaStreamCaptureModeThreadLocal:</computeroutput> If the local thread has an ongoing capture sequence not initiated with <computeroutput>cudaStreamCaptureModeRelaxed</computeroutput>, it is prohibited from potentially unsafe API calls. Concurrent capture sequences in other threads are ignored.</para>
</listitem><listitem><para><computeroutput>cudaStreamCaptureModeRelaxed:</computeroutput> The local thread is not prohibited from potentially unsafe API calls. Note that the thread is still prohibited from API calls which necessarily conflict with stream capture, for example, attempting <computeroutput>cudaEventQuery</computeroutput> on an event that was last recorded inside a capture sequence. </para>
</listitem></itemizedlist>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="taskflow/cuda/cuda_stream.hpp" line="106" column="10" bodyfile="taskflow/cuda/cuda_stream.hpp" bodystart="106" bodyend="111"/>
</memberdef>
<memberdef kind="function" id="classtf_1_1cudaStream_1a9c48388031655cc691b267de96516a66" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
<type>cudaGraph_t</type>
<definition>cudaGraph_t tf::cudaStream::end_capture</definition>
<argsstring>() const</argsstring>
<name>end_capture</name>
<briefdescription>
<para>ends graph capturing on the stream </para>
</briefdescription>
<detaileddescription>
<para>Equivalently calling <computeroutput>cudaStreamEndCapture</computeroutput> to end capture on stream and returning the captured graph. Capture must have been initiated on stream via a call to <ref refid="classtf_1_1cudaStream_1ad98a025ff4306aa799e664a1e2aefd2e" kindref="member">cudaStream::begin_capture</ref>. If capture was invalidated, due to a violation of the rules of stream capture, then a NULL graph will be returned. </para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="taskflow/cuda/cuda_stream.hpp" line="122" column="17" bodyfile="taskflow/cuda/cuda_stream.hpp" bodystart="122" bodyend="129"/>
</memberdef>
<memberdef kind="function" id="classtf_1_1cudaStream_1a8343c234b4a3040b59626dc70e81d767" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
<type>void</type>
<definition>void tf::cudaStream::record</definition>
<argsstring>(cudaEvent_t event) const</argsstring>
<name>record</name>
<param>
<type>cudaEvent_t</type>
<declname>event</declname>
</param>
<briefdescription>
<para>records an event on the stream </para>
</briefdescription>
<detaileddescription>
<para>Equivalently calling <computeroutput>cudaEventRecord</computeroutput> to record an event on this stream, both of which must be on the same CUDA context. </para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="taskflow/cuda/cuda_stream.hpp" line="137" column="10" bodyfile="taskflow/cuda/cuda_stream.hpp" bodystart="137" bodyend="142"/>
</memberdef>
<memberdef kind="function" id="classtf_1_1cudaStream_1a6bb195945f7a580bec6105691c53c699" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
<type>void</type>
<definition>void tf::cudaStream::wait</definition>
<argsstring>(cudaEvent_t event) const</argsstring>
<name>wait</name>
<param>
<type>cudaEvent_t</type>
<declname>event</declname>
</param>
<briefdescription>
<para>waits on an event </para>
</briefdescription>
<detaileddescription>
<para>Equivalently calling <computeroutput>cudaStreamWaitEvent</computeroutput> to make all future work submitted to stream wait for all work captured in event. </para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="taskflow/cuda/cuda_stream.hpp" line="150" column="10" bodyfile="taskflow/cuda/cuda_stream.hpp" bodystart="150" bodyend="155"/>
</memberdef>
</sectiondef>
<briefdescription>
<para>class to create an RAII-styled wrapper over a native CUDA stream </para>
</briefdescription>
<detaileddescription>
<para>A <ref refid="classtf_1_1cudaStream" kindref="compound">cudaStream</ref> object is an RAII-styled wrapper over a native CUDA stream (<computeroutput>cudaStream_t</computeroutput>). A <ref refid="classtf_1_1cudaStream" kindref="compound">cudaStream</ref> object is move-only. </para>
</detaileddescription>
<inheritancegraph>
<node id="2">
<label>cudaObject&lt; cudaStream_t, cudaStreamCreator, cudaStreamDeleter &gt;</label>
</node>
<node id="1">
<label>tf::cudaStream</label>
<link refid="classtf_1_1cudaStream"/>
<childnode refid="2" relation="public-inheritance">
</childnode>
</node>
</inheritancegraph>
<collaborationgraph>
<node id="2">
<label>cudaObject&lt; cudaStream_t, cudaStreamCreator, cudaStreamDeleter &gt;</label>
</node>
<node id="1">
<label>tf::cudaStream</label>
<link refid="classtf_1_1cudaStream"/>
<childnode refid="2" relation="public-inheritance">
</childnode>
</node>
</collaborationgraph>
<location file="taskflow/cuda/cuda_stream.hpp" line="49" column="1" bodyfile="taskflow/cuda/cuda_stream.hpp" bodystart="51" bodyend="156"/>
<listofallmembers>
<member refid="classtf_1_1cudaStream_1ad98a025ff4306aa799e664a1e2aefd2e" prot="public" virt="non-virtual"><scope>tf::cudaStream</scope><name>begin_capture</name></member>
<member refid="classtf_1_1cudaStream_1ab29390d447e334d4945caf78b24d6ca6" prot="public" virt="non-virtual"><scope>tf::cudaStream</scope><name>cudaStream</name></member>
<member refid="classtf_1_1cudaStream_1a922ed633cf0670b22aca1430e7a810b1" prot="public" virt="non-virtual"><scope>tf::cudaStream</scope><name>cudaStream</name></member>
<member refid="classtf_1_1cudaStream_1a9c48388031655cc691b267de96516a66" prot="public" virt="non-virtual"><scope>tf::cudaStream</scope><name>end_capture</name></member>
<member refid="classtf_1_1cudaStream_1a8343c234b4a3040b59626dc70e81d767" prot="public" virt="non-virtual"><scope>tf::cudaStream</scope><name>record</name></member>
<member refid="classtf_1_1cudaStream_1a1a81d6005e8d60ad082dba2303a8aa30" prot="public" virt="non-virtual"><scope>tf::cudaStream</scope><name>synchronize</name></member>
<member refid="classtf_1_1cudaStream_1a6bb195945f7a580bec6105691c53c699" prot="public" virt="non-virtual"><scope>tf::cudaStream</scope><name>wait</name></member>
</listofallmembers>
</compounddef>
</doxygen>