1898 lines
68 KiB
XML
1898 lines
68 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="namespacetf_1_1detail" kind="namespace" language="C++">
|
|
<compoundname>tf::detail</compoundname>
|
|
<innerclass refid="structtf_1_1detail_1_1cudaBlockReduce" prot="private">tf::detail::cudaBlockReduce</innerclass>
|
|
<innerclass refid="structtf_1_1detail_1_1cudaScanResult" prot="private">tf::detail::cudaScanResult</innerclass>
|
|
<innerclass refid="structtf_1_1detail_1_1cudaScanResult_3_01T_00_01vt_00_01true_01_4" prot="private">tf::detail::cudaScanResult< T, vt, true ></innerclass>
|
|
<innerclass refid="structtf_1_1detail_1_1cudaBlockScan" prot="private">tf::detail::cudaBlockScan</innerclass>
|
|
<innerclass refid="structtf_1_1detail_1_1cudaMergePair" prot="private">tf::detail::cudaMergePair</innerclass>
|
|
<innerclass refid="structtf_1_1detail_1_1cudaMergeRange" prot="private">tf::detail::cudaMergeRange</innerclass>
|
|
<innerclass refid="structtf_1_1detail_1_1cudaBlockSort" prot="private">tf::detail::cudaBlockSort</innerclass>
|
|
<innerclass refid="structtf_1_1detail_1_1cudaFindPair" prot="private">tf::detail::cudaFindPair</innerclass>
|
|
<sectiondef kind="enum">
|
|
<memberdef kind="enum" id="scan_8hpp_1a1f08990983d8305f1592fee1a3fdc593" prot="private" static="no" strong="yes">
|
|
<type>int</type>
|
|
<name>cudaScanType</name>
|
|
<enumvalue id="scan_8hpp_1a1f08990983d8305f1592fee1a3fdc593af45c3a0bb3687ed8e221253b3fd4a2ce" prot="private">
|
|
<name>EXCLUSIVE</name>
|
|
<initializer>= 1</initializer>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
</enumvalue>
|
|
<enumvalue id="scan_8hpp_1a1f08990983d8305f1592fee1a3fdc593a572d795e2d044f895cc511e5c05030e5" prot="private">
|
|
<name>INCLUSIVE</name>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
</enumvalue>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/scan.hpp" line="20" column="1" bodyfile="taskflow/cuda/algorithm/scan.hpp" bodystart="20" bodyend="23"/>
|
|
</memberdef>
|
|
<memberdef kind="enum" id="merge_8hpp_1a93988a64371309e28f815e1266b875f9" prot="private" static="no" strong="yes">
|
|
<type></type>
|
|
<name>cudaMergeBoundType</name>
|
|
<enumvalue id="merge_8hpp_1a93988a64371309e28f815e1266b875f9aa7c48ba367e019d004bfb0239b85f2b3" prot="private">
|
|
<name>LOWER</name>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
</enumvalue>
|
|
<enumvalue id="merge_8hpp_1a93988a64371309e28f815e1266b875f9a9e43f5291e6fcb2ad99c8e3f91acd179" prot="private">
|
|
<name>UPPER</name>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
</enumvalue>
|
|
<briefdescription>
|
|
<para>merge bound type </para>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="16" column="1" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="16" bodyend="19"/>
|
|
</memberdef>
|
|
</sectiondef>
|
|
<sectiondef kind="var">
|
|
<memberdef kind="variable" id="scan_8hpp_1acb48d657669121bb9dfd45662e5bf9e1" prot="private" static="no" constexpr="yes" mutable="no">
|
|
<type>constexpr unsigned</type>
|
|
<definition>constexpr unsigned tf::detail::cudaScanRecursionThreshold</definition>
|
|
<argsstring></argsstring>
|
|
<name>cudaScanRecursionThreshold</name>
|
|
<initializer>= 8</initializer>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/scan.hpp" line="17" column="27" bodyfile="taskflow/cuda/algorithm/scan.hpp" bodystart="17" bodyend="-1"/>
|
|
</memberdef>
|
|
</sectiondef>
|
|
<sectiondef kind="func">
|
|
<memberdef kind="function" id="small__vector_8hpp_1af7219c0a48eb7108171068b23dd93c92" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
|
|
<type>uint64_t</type>
|
|
<definition>uint64_t tf::detail::NextCapacity</definition>
|
|
<argsstring>(uint64_t A)</argsstring>
|
|
<name>NextCapacity</name>
|
|
<param>
|
|
<type>uint64_t</type>
|
|
<declname>A</declname>
|
|
</param>
|
|
<briefdescription>
|
|
<para>NextCapacity - Returns the next power of two (in 64-bits) that is strictly greater than A. Returns zero on overflow. this function assumes A to be positive. </para>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/utility/small_vector.hpp" line="30" column="17" bodyfile="taskflow/utility/small_vector.hpp" bodystart="30" bodyend="38"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="for__each_8hpp_1a25cd7b4ecddff9e32d577eba0f8455bb" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__global__ void</type>
|
|
<definition>__global__ void tf::detail::cuda_for_each_kernel</definition>
|
|
<argsstring>(I first, unsigned count, C c)</argsstring>
|
|
<name>cuda_for_each_kernel</name>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>first</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>c</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/for_each.hpp" line="18" column="17" bodyfile="taskflow/cuda/algorithm/for_each.hpp" bodystart="18" bodyend="28"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="for__each_8hpp_1aa5625b737f69747c9fe334fc91b9dcb2" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__global__ void</type>
|
|
<definition>__global__ void tf::detail::cuda_for_each_index_kernel</definition>
|
|
<argsstring>(I first, I inc, unsigned count, C c)</argsstring>
|
|
<name>cuda_for_each_index_kernel</name>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>first</declname>
|
|
</param>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>inc</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>c</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/for_each.hpp" line="32" column="17" bodyfile="taskflow/cuda/algorithm/for_each.hpp" bodystart="32" bodyend="42"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="transform_8hpp_1ac3c389313dfd125f579cd879bacb5b81" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__global__ void</type>
|
|
<definition>__global__ void tf::detail::cuda_transform_kernel</definition>
|
|
<argsstring>(I first, unsigned count, O output, C op)</argsstring>
|
|
<name>cuda_transform_kernel</name>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>first</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>output</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/transform.hpp" line="22" column="17" bodyfile="taskflow/cuda/algorithm/transform.hpp" bodystart="22" bodyend="34"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="transform_8hpp_1a9b628fdc2171542fc80538207da90f76" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename I1</type>
|
|
</param>
|
|
<param>
|
|
<type>typename I2</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__global__ void</type>
|
|
<definition>__global__ void tf::detail::cuda_transform_kernel</definition>
|
|
<argsstring>(I1 first1, I2 first2, unsigned count, O output, C op)</argsstring>
|
|
<name>cuda_transform_kernel</name>
|
|
<param>
|
|
<type>I1</type>
|
|
<declname>first1</declname>
|
|
</param>
|
|
<param>
|
|
<type>I2</type>
|
|
<declname>first2</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>output</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/transform.hpp" line="40" column="17" bodyfile="taskflow/cuda/algorithm/transform.hpp" bodystart="40" bodyend="54"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="reduce_8hpp_1a9b9598d1760f0473831ba440e2334fc3" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__global__ void</type>
|
|
<definition>__global__ void tf::detail::cuda_reduce_kernel</definition>
|
|
<argsstring>(I input, unsigned count, T *res, O op, void *ptr)</argsstring>
|
|
<name>cuda_reduce_kernel</name>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>T *</type>
|
|
<declname>res</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>ptr</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/reduce.hpp" line="93" column="17" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="93" bodyend="122"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="reduce_8hpp_1ab2081cd1728759054a34c21a16453db6" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_reduce_loop</definition>
|
|
<argsstring>(P &&p, I input, unsigned count, T *res, O op, void *ptr)</argsstring>
|
|
<name>cuda_reduce_loop</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>T *</type>
|
|
<declname>res</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>ptr</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/reduce.hpp" line="126" column="6" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="126" bodyend="143"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="reduce_8hpp_1a7f47a6f1da83330ac06a00b85a88c556" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>size_t</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__global__ void</type>
|
|
<definition>__global__ void tf::detail::cuda_uninitialized_reduce_kernel</definition>
|
|
<argsstring>(I input, unsigned count, T *res, O op, void *ptr)</argsstring>
|
|
<name>cuda_uninitialized_reduce_kernel</name>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>T *</type>
|
|
<declname>res</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>ptr</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/reduce.hpp" line="153" column="17" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="153" bodyend="183"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="reduce_8hpp_1a6694b88dc343d87df2104809002583cc" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_uninitialized_reduce_loop</definition>
|
|
<argsstring>(P &&p, I input, unsigned count, T *res, O op, void *ptr)</argsstring>
|
|
<name>cuda_uninitialized_reduce_loop</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>T *</type>
|
|
<declname>res</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>ptr</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/reduce.hpp" line="189" column="6" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="189" bodyend="206"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="scan_8hpp_1a2c9669b414231e12f66e9d40ca9ae3a3" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_single_pass_scan</definition>
|
|
<argsstring>(P &&p, cudaScanType scan_type, I input, unsigned count, O output, C op)</argsstring>
|
|
<name>cuda_single_pass_scan</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaScanType</type>
|
|
<declname>scan_type</declname>
|
|
</param>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>output</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<briefdescription>
|
|
<para>single-pass scan for small input </para>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/scan.hpp" line="176" column="6" bodyfile="taskflow/cuda/algorithm/scan.hpp" bodystart="176" bodyend="222"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="scan_8hpp_1a10be6941d3e42a5583d07a092a7b083d" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_scan_loop</definition>
|
|
<argsstring>(P &&p, cudaScanType scan_type, I input, unsigned count, O output, C op, void *ptr)</argsstring>
|
|
<name>cuda_scan_loop</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaScanType</type>
|
|
<declname>scan_type</declname>
|
|
</param>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>output</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>ptr</declname>
|
|
</param>
|
|
<briefdescription>
|
|
<para>main scan loop </para>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/scan.hpp" line="230" column="6" bodyfile="taskflow/cuda/algorithm/scan.hpp" bodystart="230" bodyend="321"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1ae9d3db5c9457ebec7cbdd3a3d8c65e94" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>cudaMergeBoundType</type>
|
|
<declname>bounds</declname>
|
|
<defname>bounds</defname>
|
|
<defval>cudaMergeBoundType::LOWER</defval>
|
|
</param>
|
|
<param>
|
|
<type>typename a_keys_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename b_keys_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename comp_t</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_merge_path</definition>
|
|
<argsstring>(a_keys_it a_keys, unsigned a_count, b_keys_it b_keys, unsigned b_count, unsigned diag, comp_t comp)</argsstring>
|
|
<name>cuda_merge_path</name>
|
|
<param>
|
|
<type>a_keys_it</type>
|
|
<declname>a_keys</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>b_keys_it</type>
|
|
<declname>b_keys</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>diag</declname>
|
|
</param>
|
|
<param>
|
|
<type>comp_t</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="77" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="77" bodyend="98"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1afc818e3bceee479b5dc1af7f0e6da282" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>cudaMergeBoundType</type>
|
|
<declname>bounds</declname>
|
|
<defname>bounds</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename keys_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename comp_t</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_merge_path</definition>
|
|
<argsstring>(keys_it keys, cudaMergeRange range, unsigned diag, comp_t comp)</argsstring>
|
|
<name>cuda_merge_path</name>
|
|
<param>
|
|
<type>keys_it</type>
|
|
<declname>keys</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaMergeRange</type>
|
|
<declname>range</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>diag</declname>
|
|
</param>
|
|
<param>
|
|
<type>comp_t</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="102" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="102" bodyend="110"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1ae27cfa73d1f4b90114cd513e98c56d62" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>cudaMergeBoundType</type>
|
|
<declname>bounds</declname>
|
|
<defname>bounds</defname>
|
|
</param>
|
|
<param>
|
|
<type>bool</type>
|
|
<declname>range_check</declname>
|
|
<defname>range_check</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename comp_t</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ bool</type>
|
|
<definition>__device__ bool tf::detail::cuda_merge_predicate</definition>
|
|
<argsstring>(T a_key, T b_key, cudaMergeRange range, comp_t comp)</argsstring>
|
|
<name>cuda_merge_predicate</name>
|
|
<param>
|
|
<type>T</type>
|
|
<declname>a_key</declname>
|
|
</param>
|
|
<param>
|
|
<type>T</type>
|
|
<declname>b_key</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaMergeRange</type>
|
|
<declname>range</declname>
|
|
</param>
|
|
<param>
|
|
<type>comp_t</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="114" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="114" bodyend="130"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a9c104811415e59c6f7116eb2553d656e" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_compute_merge_range</definition>
|
|
<argsstring>(unsigned a_count, unsigned b_count, unsigned partition, unsigned spacing, unsigned mp0, unsigned mp1)</argsstring>
|
|
<name>cuda_compute_merge_range</name>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>partition</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>spacing</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>mp0</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>mp1</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="133" column="24" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="133" bodyend="143"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a433a26ef6a2aa8e1d737fea93a42ecf4" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_load_two_streams_reg</definition>
|
|
<argsstring>(const T *a, unsigned a_count, const T *b, unsigned b_count, unsigned tid)</argsstring>
|
|
<name>cuda_load_two_streams_reg</name>
|
|
<param>
|
|
<type>const T *</type>
|
|
<declname>a</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>const T *</type>
|
|
<declname>b</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>tid</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
<para>Specialization that emits just one LD instruction. Can only reliably used with raw pointer types. Fixed not to use pointer arithmetic so that we don't get undefined behaviors with unaligned types. </para>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="153" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="153" bodyend="165"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a87f27d6553efe6c32e4eaef800d2787c" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename a_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename b_it</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ std::enable_if_t< !(<ref refid="cpp/types/is_pointer" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::is_pointer</ref>< a_it >::value &&<ref refid="cpp/types/is_pointer" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::is_pointer</ref>< b_it >::value), cudaArray< T, vt >></type>
|
|
<definition>__device__ std::enable_if_t< !(std::is_pointer<a_it>::value && std::is_pointer<b_it>::value), cudaArray<T, vt>> tf::detail::load_two_streams_reg</definition>
|
|
<argsstring>(a_it a, unsigned a_count, b_it b, unsigned b_count, unsigned tid)</argsstring>
|
|
<name>load_two_streams_reg</name>
|
|
<param>
|
|
<type>a_it</type>
|
|
<declname>a</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>b_it</type>
|
|
<declname>b</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>tid</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="173" column="2" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="173" bodyend="180"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a6da5d76af53a630241f6aade1bf76969" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename A</type>
|
|
</param>
|
|
<param>
|
|
<type>typename B</type>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>S</declname>
|
|
<defname>S</defname>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ void</type>
|
|
<definition>__device__ void tf::detail::cuda_load_two_streams_shared</definition>
|
|
<argsstring>(A a, unsigned a_count, B b, unsigned b_count, unsigned tid, T(&shared)[S], bool sync=true)</argsstring>
|
|
<name>cuda_load_two_streams_shared</name>
|
|
<param>
|
|
<type>A</type>
|
|
<declname>a</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>B</type>
|
|
<declname>b</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>tid</declname>
|
|
</param>
|
|
<param>
|
|
<type>T(&)</type>
|
|
<declname>shared</declname>
|
|
<array>[S]</array>
|
|
</param>
|
|
<param>
|
|
<type>bool</type>
|
|
<declname>sync</declname>
|
|
<defval>true</defval>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="184" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="184" bodyend="190"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1afefa562dcaa4b71ace44ee6b4be764d6" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_gather_two_streams_strided</definition>
|
|
<argsstring>(const T *a, unsigned a_count, const T *b, unsigned b_count, cudaArray< unsigned, vt > indices, unsigned tid)</argsstring>
|
|
<name>cuda_gather_two_streams_strided</name>
|
|
<param>
|
|
<type>const T *</type>
|
|
<declname>a</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>const T *</type>
|
|
<declname>b</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaArray< unsigned, vt ></type>
|
|
<declname>indices</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>tid</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="194" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="194" bodyend="209"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a9f8cf7550f2b00d99ffa12aa30374237" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename a_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename b_it</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ std::enable_if_t< !(<ref refid="cpp/types/is_pointer" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::is_pointer</ref>< a_it >::value &&<ref refid="cpp/types/is_pointer" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::is_pointer</ref>< b_it >::value), cudaArray< T, vt >></type>
|
|
<definition>__device__ std::enable_if_t< !(std::is_pointer<a_it>::value && std::is_pointer<b_it>::value), cudaArray<T, vt>> tf::detail::cuda_gather_two_streams_strided</definition>
|
|
<argsstring>(a_it a, unsigned a_count, b_it b, unsigned b_count, cudaArray< unsigned, vt > indices, unsigned tid)</argsstring>
|
|
<name>cuda_gather_two_streams_strided</name>
|
|
<param>
|
|
<type>a_it</type>
|
|
<declname>a</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>b_it</type>
|
|
<declname>b</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaArray< unsigned, vt ></type>
|
|
<declname>indices</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>tid</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="217" column="2" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="217" bodyend="227"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1ac4e1e83b946b3ef78e5dcb3e9bfc3c48" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename a_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename b_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename c_it</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ void</type>
|
|
<definition>__device__ void tf::detail::cuda_transfer_two_streams_strided</definition>
|
|
<argsstring>(a_it a, unsigned a_count, b_it b, unsigned b_count, cudaArray< unsigned, vt > indices, unsigned tid, c_it c)</argsstring>
|
|
<name>cuda_transfer_two_streams_strided</name>
|
|
<param>
|
|
<type>a_it</type>
|
|
<declname>a</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>b_it</type>
|
|
<declname>b</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaArray< unsigned, vt ></type>
|
|
<declname>indices</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>tid</declname>
|
|
</param>
|
|
<param>
|
|
<type>c_it</type>
|
|
<declname>c</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="231" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="231" bodyend="242"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a9d4d00a3dbc0158eac24e4603548bdbd" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>cudaMergeBoundType</type>
|
|
<declname>bounds</declname>
|
|
<defname>bounds</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename comp_t</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_serial_merge</definition>
|
|
<argsstring>(const T *keys_shared, cudaMergeRange range, comp_t comp, bool sync=true)</argsstring>
|
|
<name>cuda_serial_merge</name>
|
|
<param>
|
|
<type>const T *</type>
|
|
<declname>keys_shared</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaMergeRange</type>
|
|
<declname>range</declname>
|
|
</param>
|
|
<param>
|
|
<type>comp_t</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<param>
|
|
<type>bool</type>
|
|
<declname>sync</declname>
|
|
<defval>true</defval>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
<para>This function must be able to dereference keys[a_begin] and keys[b_begin], no matter the indices for each. The caller should allocate at least nt * vt + 1 elements for </para>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="253" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="253" bodyend="275"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a79b4c5f2bace6ae958abd8573e00a849" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>cudaMergeBoundType</type>
|
|
<declname>bounds</declname>
|
|
<defname>bounds</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>nt</declname>
|
|
<defname>nt</defname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename a_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename b_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>typename comp_t</type>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>S</declname>
|
|
<defname>S</defname>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::block_merge_from_mem</definition>
|
|
<argsstring>(a_it a, b_it b, cudaMergeRange range_mem, unsigned tid, comp_t comp, T(&keys_shared)[S])</argsstring>
|
|
<name>block_merge_from_mem</name>
|
|
<param>
|
|
<type>a_it</type>
|
|
<declname>a</declname>
|
|
</param>
|
|
<param>
|
|
<type>b_it</type>
|
|
<declname>b</declname>
|
|
</param>
|
|
<param>
|
|
<type>cudaMergeRange</type>
|
|
<declname>range_mem</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>tid</declname>
|
|
</param>
|
|
<param>
|
|
<type>comp_t</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<param>
|
|
<type>T(&)</type>
|
|
<declname>keys_shared</declname>
|
|
<array>[S]</array>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
<para>Load arrays a and b from global memory and merge unsignedo register. </para>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="286" column="17" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="286" bodyend="314"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a9a1b1d78a16e27a208e90d75d4885f05" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>cudaMergeBoundType</type>
|
|
<declname>bounds</declname>
|
|
<defname>bounds</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename a_keys_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename b_keys_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename comp_t</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_merge_path_partitions</definition>
|
|
<argsstring>(P &&p, a_keys_it a, unsigned a_count, b_keys_it b, unsigned b_count, unsigned spacing, comp_t comp, unsigned *buf)</argsstring>
|
|
<name>cuda_merge_path_partitions</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>a_keys_it</type>
|
|
<declname>a</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>b_keys_it</type>
|
|
<declname>b</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>spacing</declname>
|
|
</param>
|
|
<param>
|
|
<type>comp_t</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned *</type>
|
|
<declname>buf</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="320" column="6" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="320" bodyend="347"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="merge_8hpp_1a9a1d50803593cc703ed79f2baf9cfa78" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename a_keys_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename a_vals_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename b_keys_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename b_vals_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename c_keys_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename c_vals_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename comp_t</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_merge_loop</definition>
|
|
<argsstring>(P &&p, a_keys_it a_keys, a_vals_it a_vals, unsigned a_count, b_keys_it b_keys, b_vals_it b_vals, unsigned b_count, c_keys_it c_keys, c_vals_it c_vals, comp_t comp, void *ptr)</argsstring>
|
|
<name>cuda_merge_loop</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>a_keys_it</type>
|
|
<declname>a_keys</declname>
|
|
</param>
|
|
<param>
|
|
<type>a_vals_it</type>
|
|
<declname>a_vals</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>a_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>b_keys_it</type>
|
|
<declname>b_keys</declname>
|
|
</param>
|
|
<param>
|
|
<type>b_vals_it</type>
|
|
<declname>b_vals</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>b_count</declname>
|
|
</param>
|
|
<param>
|
|
<type>c_keys_it</type>
|
|
<declname>c_keys</declname>
|
|
</param>
|
|
<param>
|
|
<type>c_vals_it</type>
|
|
<declname>c_vals</declname>
|
|
</param>
|
|
<param>
|
|
<type>comp_t</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>ptr</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/merge.hpp" line="381" column="6" bodyfile="taskflow/cuda/algorithm/merge.hpp" bodystart="381" bodyend="440"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1a95a5212f3d79eb1bba3ca3f8e373ae16" prot="private" static="no" constexpr="yes" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<type>constexpr int</type>
|
|
<definition>constexpr int tf::detail::cuda_clz</definition>
|
|
<argsstring>(int x)</argsstring>
|
|
<name>cuda_clz</name>
|
|
<param>
|
|
<type>int</type>
|
|
<declname>x</declname>
|
|
</param>
|
|
<briefdescription>
|
|
<para>counts the number of leading zeros starting from the most significant bit </para>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="20" column="15" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="20" bodyend="27"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1a9a76c046987683e12f4a4381d1559a69" prot="private" static="no" constexpr="yes" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<type>constexpr int</type>
|
|
<definition>constexpr int tf::detail::cuda_find_log2</definition>
|
|
<argsstring>(int x, bool round_up=false)</argsstring>
|
|
<name>cuda_find_log2</name>
|
|
<param>
|
|
<type>int</type>
|
|
<declname>x</declname>
|
|
</param>
|
|
<param>
|
|
<type>bool</type>
|
|
<declname>round_up</declname>
|
|
<defval>false</defval>
|
|
</param>
|
|
<briefdescription>
|
|
<para>finds log2(x) and optionally round up to the next integer logarithm. </para>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="33" column="15" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="33" bodyend="39"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1a899f77e74e47867dac8c4eb08b92577e" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename T</type>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_odd_even_sort</definition>
|
|
<argsstring>(cudaArray< T, vt > x, C comp, int flags=0)</argsstring>
|
|
<name>cuda_odd_even_sort</name>
|
|
<param>
|
|
<type>cudaArray< T, vt ></type>
|
|
<declname>x</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<param>
|
|
<type>int</type>
|
|
<declname>flags</declname>
|
|
<defval>0</defval>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="43" column="17" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="43" bodyend="54"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1ad452d61656e6301ef16e8241f05c8918" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename K</type>
|
|
</param>
|
|
<param>
|
|
<type>typename V</type>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>vt</declname>
|
|
<defname>vt</defname>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_odd_even_sort</definition>
|
|
<argsstring>(cudaKVArray< K, V, vt > x, C comp, int flags=0)</argsstring>
|
|
<name>cuda_odd_even_sort</name>
|
|
<param>
|
|
<type>cudaKVArray< K, V, vt ></type>
|
|
<declname>x</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<param>
|
|
<type>int</type>
|
|
<declname>flags</declname>
|
|
<defval>0</defval>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="58" column="17" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="58" bodyend="71"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1a2b01469cc11053017b1cfea2a6409057" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
|
|
<type>__device__ int</type>
|
|
<definition>__device__ int tf::detail::cuda_out_of_range_flags</definition>
|
|
<argsstring>(int first, int vt, int count)</argsstring>
|
|
<name>cuda_out_of_range_flags</name>
|
|
<param>
|
|
<type>int</type>
|
|
<declname>first</declname>
|
|
</param>
|
|
<param>
|
|
<type>int</type>
|
|
<declname>vt</declname>
|
|
</param>
|
|
<param>
|
|
<type>int</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="78" column="23" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="78" bodyend="86"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1af2d7d0e939a7d1a07ced94221a24683c" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_compute_merge_sort_frame</definition>
|
|
<argsstring>(unsigned partition, unsigned coop, unsigned spacing)</argsstring>
|
|
<name>cuda_compute_merge_sort_frame</name>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>partition</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>coop</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>spacing</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="89" column="24" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="89" bodyend="104"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1a1a8d810065126154d47114e93bbfea57" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_compute_merge_sort_range</definition>
|
|
<argsstring>(unsigned count, unsigned partition, unsigned coop, unsigned spacing)</argsstring>
|
|
<name>cuda_compute_merge_sort_range</name>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>partition</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>coop</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>spacing</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="107" column="24" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="107" bodyend="119"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1a4705874f6abf58283ecae02f60cdf8d2" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
|
|
<type>__device__ auto</type>
|
|
<definition>__device__ auto tf::detail::cuda_compute_merge_sort_range</definition>
|
|
<argsstring>(unsigned count, unsigned partition, unsigned coop, unsigned spacing, unsigned mp0, unsigned mp1)</argsstring>
|
|
<name>cuda_compute_merge_sort_range</name>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>partition</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>coop</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>spacing</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>mp0</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>mp1</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="122" column="24" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="122" bodyend="146"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1ab4d357fb63d82334ea784ee72beaf600" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename K</type>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_merge_sort_partitions</definition>
|
|
<argsstring>(P &&p, K keys, unsigned count, unsigned coop, unsigned spacing, C comp, unsigned *buf)</argsstring>
|
|
<name>cuda_merge_sort_partitions</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>K</type>
|
|
<declname>keys</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>coop</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>spacing</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned *</type>
|
|
<declname>buf</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="224" column="6" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="224" bodyend="251"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="sort_8hpp_1a1d70c013b280d4f811275e892af15c18" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename K_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename V_it</type>
|
|
</param>
|
|
<param>
|
|
<type>typename C</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::merge_sort_loop</definition>
|
|
<argsstring>(P &&p, K_it keys_input, V_it vals_input, unsigned count, C comp, void *buf)</argsstring>
|
|
<name>merge_sort_loop</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>K_it</type>
|
|
<declname>keys_input</declname>
|
|
</param>
|
|
<param>
|
|
<type>V_it</type>
|
|
<declname>vals_input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>C</type>
|
|
<declname>comp</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>buf</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/sort.hpp" line="255" column="6" bodyfile="taskflow/cuda/algorithm/sort.hpp" bodystart="255" bodyend="397"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="find_8hpp_1a3941b09790867beb42f502c08e08b908" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename U</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_find_if_loop</definition>
|
|
<argsstring>(P &&p, I input, unsigned count, unsigned *idx, U pred)</argsstring>
|
|
<name>cuda_find_if_loop</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned *</type>
|
|
<declname>idx</declname>
|
|
</param>
|
|
<param>
|
|
<type>U</type>
|
|
<declname>pred</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/find.hpp" line="25" column="6" bodyfile="taskflow/cuda/algorithm/find.hpp" bodystart="25" bodyend="89"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="find_8hpp_1a72820903215a409e1e3d47a073579918" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_min_element_loop</definition>
|
|
<argsstring>(P &&p, I input, unsigned count, unsigned *idx, O op, void *ptr)</argsstring>
|
|
<name>cuda_min_element_loop</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned *</type>
|
|
<declname>idx</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>ptr</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/find.hpp" line="93" column="6" bodyfile="taskflow/cuda/algorithm/find.hpp" bodystart="93" bodyend="115"/>
|
|
</memberdef>
|
|
<memberdef kind="function" id="find_8hpp_1a442fbc4beb897580a46164147d7db2c9" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
|
<templateparamlist>
|
|
<param>
|
|
<type>typename P</type>
|
|
</param>
|
|
<param>
|
|
<type>typename I</type>
|
|
</param>
|
|
<param>
|
|
<type>typename O</type>
|
|
</param>
|
|
</templateparamlist>
|
|
<type>void</type>
|
|
<definition>void tf::detail::cuda_max_element_loop</definition>
|
|
<argsstring>(P &&p, I input, unsigned count, unsigned *idx, O op, void *ptr)</argsstring>
|
|
<name>cuda_max_element_loop</name>
|
|
<param>
|
|
<type>P &&</type>
|
|
<declname>p</declname>
|
|
</param>
|
|
<param>
|
|
<type>I</type>
|
|
<declname>input</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned</type>
|
|
<declname>count</declname>
|
|
</param>
|
|
<param>
|
|
<type>unsigned *</type>
|
|
<declname>idx</declname>
|
|
</param>
|
|
<param>
|
|
<type>O</type>
|
|
<declname>op</declname>
|
|
</param>
|
|
<param>
|
|
<type>void *</type>
|
|
<declname>ptr</declname>
|
|
</param>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<inbodydescription>
|
|
</inbodydescription>
|
|
<location file="taskflow/cuda/algorithm/find.hpp" line="119" column="6" bodyfile="taskflow/cuda/algorithm/find.hpp" bodystart="119" bodyend="141"/>
|
|
</memberdef>
|
|
</sectiondef>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<location file="taskflow/utility/small_vector.hpp" line="22" column="12"/>
|
|
</compounddef>
|
|
</doxygen>
|