A class that implements a configurable deep neural network using PyTorch with CUDA support, inheriting from MLFunction.
More...
#include <functions.h>
|
| | TorchDNNV2CUDA (std::vector< velox::dl::KernelType > kernelTypes, std::vector< float * > weights, std::vector< int > dimensions) |
| | Constructor that initializes the neural network with kernel types, weights, and dimensions.
|
| |
| void | apply (const SelectivityVector &rows, std::vector< VectorPtr > &args, const TypePtr &type, exec::EvalCtx &context, VectorPtr &output) const override |
| | Applies the neural network to the input array using CUDA.
|
| |
| float * | getTensor () const override |
| | Returns the tensor associated with this function.
|
| |
| const std::vector< float * > & | getWeights () const |
| | Returns the weights of the neural network.
|
| |
| const std::vector< float * > & | getBias () const |
| | Returns the biases of the neural network.
|
| |
| std::string | getFuncName () |
| | Returns the name of the function.
|
| |
| std::vector< velox::dl::KernelType > | getKernelTypes () const |
| | Returns the kernel types used in the neural network.
|
| |
| CostEstimate | getCost (std::vector< int > inputDims) |
| | Estimates the computational cost of applying the neural network.
|
| |
|
virtual | ~MLFunction ()=default |
| | Virtual destructor.
|
| |
| virtual std::vector< int > | getDims () |
| | Returns the dimensions of the function.
|
| |
| virtual int | getNumDims () |
| | Returns the number of dimensions of the function.
|
| |
|
| static std::vector< std::shared_ptr< exec::FunctionSignature > > | signatures () |
| | Returns the function signatures supported by this class.
|
| |
| static std::string | getName () |
| | Static method to return the name of the function.
|
| |
|
| double | getWeightedCost (std::string name, float cost) |
| | Calculates the weighted cost of the function.
|
| |
| std::vector< double > | getCoefficientVector (std::string name) |
| | Retrieves the cost coefficients for the function.
|
| |
|
std::vector< int > | dims |
| | Dimensions of the function.
|
| |
A class that implements a configurable deep neural network using PyTorch with CUDA support, inheriting from MLFunction.
This class provides functionality to apply a neural network with configurable layers (e.g., MatMul, ReLU, Softmax, etc.) on a CUDA device.
◆ TorchDNNV2CUDA()
| TorchDNNV2CUDA::TorchDNNV2CUDA |
( |
std::vector< velox::dl::KernelType > | kernelTypes, |
|
|
std::vector< float * > | weights, |
|
|
std::vector< int > | dimensions ) |
|
inline |
Constructor that initializes the neural network with kernel types, weights, and dimensions.
- Parameters
-
| kernelTypes | A vector of KernelType specifying the types of layers in the network. |
| weights | A vector of pointers to weight matrices for each layer. |
| dimensions | A vector containing the dimensions of the neural network layers. |
◆ apply()
| void TorchDNNV2CUDA::apply |
( |
const SelectivityVector & | rows, |
|
|
std::vector< VectorPtr > & | args, |
|
|
const TypePtr & | type, |
|
|
exec::EvalCtx & | context, |
|
|
VectorPtr & | output ) const |
|
inlineoverride |
Applies the neural network to the input array using CUDA.
This method processes the input array, applies the neural network on a CUDA device, and stores the result in the output vector.
- Parameters
-
| rows | A SelectivityVector specifying the rows to process. |
| args | A vector of input arguments (e.g., the input array). |
| type | The type of the output vector. |
| context | The execution context. |
| output | The output vector where the result will be stored. |
◆ getBias()
| const std::vector< float * > & TorchDNNV2CUDA::getBias |
( |
| ) |
const |
|
inline |
Returns the biases of the neural network.
- Returns
- A vector of pointers to bias vectors.
◆ getCost()
| CostEstimate TorchDNNV2CUDA::getCost |
( |
std::vector< int > | inputDims | ) |
|
|
inlinevirtual |
Estimates the computational cost of applying the neural network.
- Parameters
-
| inputDims | A vector containing the dimensions of the input. |
- Returns
- A CostEstimate object representing the estimated cost.
Reimplemented from MLFunction.
◆ getFuncName()
| std::string TorchDNNV2CUDA::getFuncName |
( |
| ) |
|
|
inlinevirtual |
Returns the name of the function.
- Returns
- The name of the function as a string.
Reimplemented from MLFunction.
◆ getKernelTypes()
Returns the kernel types used in the neural network.
- Returns
- A vector of KernelType specifying the types of layers.
◆ getName()
| static std::string TorchDNNV2CUDA::getName |
( |
| ) |
|
|
inlinestatic |
Static method to return the name of the function.
- Returns
- The name of the function as a string ("complexTorchNN_GPU").
◆ getTensor()
| float * TorchDNNV2CUDA::getTensor |
( |
| ) |
const |
|
inlineoverridevirtual |
Returns the tensor associated with this function.
- Returns
- A pointer to an empty float array (no weights for TorchDNNV2CUDA).
Implements MLFunction.
◆ getWeights()
| const std::vector< float * > & TorchDNNV2CUDA::getWeights |
( |
| ) |
const |
|
inline |
Returns the weights of the neural network.
- Returns
- A vector of pointers to weight matrices.
◆ signatures()
| static std::vector< std::shared_ptr< exec::FunctionSignature > > TorchDNNV2CUDA::signatures |
( |
| ) |
|
|
inlinestatic |
Returns the function signatures supported by this class.
- Returns
- A vector of shared pointers to FunctionSignature objects.
The documentation for this class was generated from the following file: