.. _omni_graph_tutorials_CudaData_1:

.. _omni_graph_tutorials_CudaData:

.. ================================================================================
.. THIS PAGE IS AUTO-GENERATED. DO NOT MANUALLY EDIT.
.. ================================================================================

:orphan:

.. meta::
    :title: Tutorial Node: Attributes With CUDA Data
    :keywords: lang-en omnigraph node tutorials threadsafe tutorials cuda-data


Tutorial Node: Attributes With CUDA Data
========================================

.. <description>

This is a tutorial node. It performs different functions on the GPU to illustrate different types of data access. The first adds inputs 'a' and 'b' to yield output 'sum', all of which are on the GPU. The second is a sample expansion deformation that multiplies every point on a set of input points, stored on the GPU, by a constant value, stored on the CPU, to yield a set of output points, also on the GPU. The third is an assortment of different data types illustrating how different data is passed to the GPU. This particular node uses CUDA for its GPU computations, as indicated in the memory type value. Normal use case for GPU compute is large amounts of data. For testing purposes this node only handles a very small amount but the principle is the same.

.. </description>


Installation
------------

To use this node enable :ref:`omni.graph.tutorials<ext_omni_graph_tutorials>` in the Extension Manager.


Inputs
------
.. csv-table::
    :header: "Name", "Type", "Descripton", "Default"
    :widths: 20, 20, 50, 10

    "inputs:a", "``float``", "First value to be added in algorithm 1", "0.0"
    "inputs:b", "``float``", "Second value to be added in algorithm 1", "0.0"
    "inputs:color", "``colord[3]``", "Input with three doubles as a color for algorithm 3", "[1.0, 0.5, 1.0]"
    "inputs:half", "``half``", "Input of type half for algorithm 3", "1.0"
    "inputs:matrix", "``matrixd[4]``", "Input with 16 doubles interpreted as a double-precision 4d matrix", "[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]"
    "inputs:multiplier", "``float[3]``", "Amplitude of the expansion for the input points in algorithm 2", "[1.0, 1.0, 1.0]"
    "inputs:points", "``float[3][]``", "Points to be moved by algorithm 2", "[]"


Outputs
-------
.. csv-table::
    :header: "Name", "Type", "Descripton", "Default"
    :widths: 20, 20, 50, 10

    "outputs:color", "``colord[3]``", "Output with three doubles as a color for algorithm 3", "None"
    "outputs:half", "``half``", "Output of type half for algorithm 3", "None"
    "outputs:matrix", "``matrixd[4]``", "Output with 16 doubles interpreted as a double-precision 4d matrix", "None"
    "outputs:points", "``float[3][]``", "Final positions of points from algorithm 2", "None"
    "outputs:sum", "``float``", "Sum of the two inputs from algorithm 1", "None"


Metadata
--------
.. csv-table::
    :header: "Name", "Value"
    :widths: 30,70

    "Unique ID", "omni.graph.tutorials.CudaData"
    "Version", "1"
    "Extension", "omni.graph.tutorials"
    "Icon", "ogn/icons/omni.graph.tutorials.CudaData.svg"
    "Has State?", "False"
    "Implementation Language", "C++"
    "Default Memory Type", "cuda"
    "Generated Code Exclusions", "None"
    "uiName", "Tutorial Node: Attributes With CUDA Data"
    "__memoryType", "cuda"
    "Categories", "tutorials"
    "Generated Class Name", "OgnTutorialCudaDataDatabase"
    "Python Module", "omni.graph.tutorials"

