NVPL TENSOR Data Types#

nvpltensorDataType_t#

enum nvpltensorDataType_t#

This enum specifies the data precision. It is used when the data reference does not carry the type itself (e.g void *)

Values:

enumerator NVPLTENSOR_R_32F#

real as a float

enumerator NVPLTENSOR_C_32F#

complex as a pair of float numbers

enumerator NVPLTENSOR_R_64F#

real as a double

enumerator NVPLTENSOR_C_64F#

complex as a pair of double numbers


nvpltensorComputeDescriptor_t#

typedef struct nvpltensorComputeDescriptor *nvpltensorComputeDescriptor_t#

Opaque structure representing a compute descriptor.

NVPLTENSOR_EXTERN const nvpltensorComputeDescriptor_t NVPLTENSOR_COMPUTE_DESC_32F

floating-point: 8-bit exponent and 23-bit mantissa (aka float)

NVPLTENSOR_EXTERN const nvpltensorComputeDescriptor_t NVPLTENSOR_COMPUTE_DESC_64F

floating-point: 11-bit exponent and 52-bit mantissa (aka double)


nvpltensorHandle_t#

typedef struct nvpltensorHandle *nvpltensorHandle_t#

Opaque structure holding nvplTENSOR’s library context.


nvpltensorTensorDescriptor_t#

typedef struct nvpltensorTensorDescriptor *nvpltensorTensorDescriptor_t#

Opaque structure representing a tensor descriptor.


nvpltensorOperationDescriptor_t#

typedef struct nvpltensorOperationDescriptor *nvpltensorOperationDescriptor_t#

Opaque structure representing any type of problem descriptor (e.g., contraction, reduction, elementwise).


nvpltensorOperationDescriptorAttribute_t#

enum nvpltensorOperationDescriptorAttribute_t#

This enum lists all attributes of a nvpltensorOperationDescriptor_t that can be modified (see nvpltensorOperationDescriptorSetAttribute and nvpltensorOperationDescriptorGetAttribute).

Values:

enumerator NVPLTENSOR_OPERATION_DESCRIPTOR_TAG#

int32_t: enables users to distinguish two identical problems w.r.t. the sw-managed plan-cache. (default value: 0)

enumerator NVPLTENSOR_OPERATION_DESCRIPTOR_SCALAR_TYPE#

nvpltensorDataType_t: data type of the scaling factors

enumerator NVPLTENSOR_OPERATION_DESCRIPTOR_FLOPS#

float: number of floating-point operations necessary to perform this operation (assuming all scalar are not equal to zero, unless otherwise specified)

enumerator NVPLTENSOR_OPERATION_DESCRIPTOR_MOVED_BYTES#

float: minimal number of bytes transferred from/to global-memory (assuming all scalar are not equal to zero, unless otherwise specified)


nvpltensorPlanPreference_t#

typedef struct nvpltensorPlanPreference *nvpltensorPlanPreference_t#

Opaque structure that narrows down the space of applicable algorithms/variants/kernels.


nvpltensorPlanPreferenceAttribute_t#

enum nvpltensorPlanPreferenceAttribute_t#

This enum lists all attributes of a nvpltensorPlanPreference_t object that can be modified.

Values:

enumerator NVPLTENSOR_PLAN_PREFERENCE_ALGO#

nvpltensorAlgo_t: Fixes a certain nvpltensorAlgo_t


nvpltensorPlan_t#

typedef struct nvpltensorPlan *nvpltensorPlan_t#

Opaque structure representing a plan (e.g, contraction, reduction, elementwise).


nvpltensorPlanAttribute_t#

enum nvpltensorPlanAttribute_t#

This enum lists all attributes of a nvpltensorPlan_t object that can be retrieved via nvpltensorPlanGetAttribute.

Values:

enumerator NVPLTENSOR_PLAN_REQUIRED_WORKSPACE#

uint64_t: exact required workspace in bytes that is needed to execute the plan


nvpltensorJitMode_t#

enum nvpltensorJitMode_t#

This enum determines the mode w.r.t. nvplTENSOR’s just-in-time compilation capability.

Values:

enumerator NVPLTENSOR_JIT_MODE_NONE#

Indicates that no kernel will be just-in-time compiled.


nvpltensorAlgo_t#

enum nvpltensorAlgo_t#

Allows users to specify the algorithm to be used for performing the desired tensor operation.

Values:

enumerator NVPLTENSOR_ALGO_DEFAULT#

A performance model chooses the appropriate algorithm and kernel.


nvpltensorWorksizePreference_t#

enum nvpltensorWorksizePreference_t#

This enum gives users finer control over the suggested workspace.

This enum gives users finer control over the amount of workspace that is suggested by nvpltensorEstimateWorkspaceSize

Values:

enumerator NVPLTENSOR_WORKSPACE_MIN#

Least memory requirement; at least one algorithm will be available.

enumerator NVPLTENSOR_WORKSPACE_DEFAULT#

Aims to attain high performance while also reducing the workspace requirement.

enumerator NVPLTENSOR_WORKSPACE_MAX#

Highest memory requirement; all algorithms will be available (choose this option if memory footprint is not a concern)


nvpltensorOperator_t#

enum nvpltensorOperator_t#

This enum captures all unary and binary element-wise operations supported by the nvplTENSOR library.

Values:

enumerator NVPLTENSOR_OP_IDENTITY#

Identity operator (i.e., elements are not changed)

enumerator NVPLTENSOR_OP_SQRT#

Square root.

enumerator NVPLTENSOR_OP_RELU#

Rectified linear unit.

enumerator NVPLTENSOR_OP_CONJ#

Complex conjugate.

enumerator NVPLTENSOR_OP_RCP#

Reciprocal.

enumerator NVPLTENSOR_OP_SIGMOID#

y=1/(1+exp(-x))

enumerator NVPLTENSOR_OP_TANH#

y=tanh(x)

enumerator NVPLTENSOR_OP_EXP#

Exponentiation.

enumerator NVPLTENSOR_OP_LOG#

Log (base e).

enumerator NVPLTENSOR_OP_ABS#

Absolute value.

enumerator NVPLTENSOR_OP_NEG#

Negation.

enumerator NVPLTENSOR_OP_SIN#

Sine.

enumerator NVPLTENSOR_OP_COS#

Cosine.

enumerator NVPLTENSOR_OP_TAN#

Tangent.

enumerator NVPLTENSOR_OP_SINH#

Hyperbolic sine.

enumerator NVPLTENSOR_OP_COSH#

Hyperbolic cosine.

enumerator NVPLTENSOR_OP_ASIN#

Inverse sine.

enumerator NVPLTENSOR_OP_ACOS#

Inverse cosine.

enumerator NVPLTENSOR_OP_ATAN#

Inverse tangent.

enumerator NVPLTENSOR_OP_ASINH#

Inverse hyperbolic sine.

enumerator NVPLTENSOR_OP_ACOSH#

Inverse hyperbolic cosine.

enumerator NVPLTENSOR_OP_ATANH#

Inverse hyperbolic tangent.

enumerator NVPLTENSOR_OP_CEIL#

Ceiling.

enumerator NVPLTENSOR_OP_FLOOR#

Floor.

enumerator NVPLTENSOR_OP_MISH#

Mish y=x*tanh(softplus(x)).

enumerator NVPLTENSOR_OP_SWISH#

Swish y=x*sigmoid(x).

enumerator NVPLTENSOR_OP_SOFT_PLUS#

Softplus y=log(exp(x)+1).

enumerator NVPLTENSOR_OP_SOFT_SIGN#

Softsign y=x/(abs(x)+1).

enumerator NVPLTENSOR_OP_ADD#

Addition of two elements.

enumerator NVPLTENSOR_OP_MUL#

Multiplication of two elements.

enumerator NVPLTENSOR_OP_MAX#

Maximum of two elements.

enumerator NVPLTENSOR_OP_MIN#

Minimum of two elements.

enumerator NVPLTENSOR_OP_UNKNOWN#

reserved for internal use only


nvpltensorStatus_t#

enum nvpltensorStatus_t#

nvplTENSOR status type returns

The type is used for function status returns. All nvplTENSOR library functions return their status, which can have the following values.

Values:

enumerator NVPLTENSOR_STATUS_SUCCESS#

The operation completed successfully.

enumerator NVPLTENSOR_STATUS_NOT_INITIALIZED#

The opaque data structure was not initialized.

enumerator NVPLTENSOR_STATUS_ALLOC_FAILED#

Resource allocation failed inside the nvplTENSOR library.

enumerator NVPLTENSOR_STATUS_INVALID_VALUE#

An unsupported value or parameter was passed to the function (indicates an user error).

enumerator NVPLTENSOR_STATUS_INTERNAL_ERROR#

An internal nvplTENSOR error has occurred.

enumerator NVPLTENSOR_STATUS_NOT_SUPPORTED#

The requested operation is not supported.

enumerator NVPLTENSOR_STATUS_LICENSE_ERROR#

The functionality requested requires some license and an error was detected when trying to check the current licensing.

enumerator NVPLTENSOR_STATUS_INSUFFICIENT_WORKSPACE#

The provided workspace was insufficient.

enumerator NVPLTENSOR_STATUS_IO_ERROR#

Indicates an error related to file I/O.


nvpltensorLoggerCallback_t#

typedef void (*nvpltensorLoggerCallback_t)(int32_t logLevel, const char *functionName, const char *message)#

A function pointer type for logging.