cuTENSOR 数据类型¶
cutensorDataType_t
¶
-
enum cutensorDataType_t¶
此枚举指定数据精度。当数据引用本身不携带类型时(例如 void *)使用。
值
-
enumerator CUTENSOR_R_16F¶
半精度实数
-
enumerator CUTENSOR_C_16F¶
由一对半精度数字表示的复数
-
enumerator CUTENSOR_R_16BF¶
nv_bfloat16 实数
-
enumerator CUTENSOR_C_16BF¶
由一对 nv_bfloat16 数字表示的复数
-
enumerator CUTENSOR_R_32F¶
单精度浮点实数
-
enumerator CUTENSOR_C_32F¶
由一对单精度浮点数字表示的复数
-
enumerator CUTENSOR_R_64F¶
双精度浮点实数
-
enumerator CUTENSOR_C_64F¶
由一对双精度浮点数字表示的复数
-
enumerator CUTENSOR_R_4I¶
4 位有符号整数实数
-
enumerator CUTENSOR_C_4I¶
由一对 4 位有符号整数表示的复数
-
enumerator CUTENSOR_R_4U¶
4 位无符号整数实数
-
enumerator CUTENSOR_C_4U¶
由一对 4 位无符号整数表示的复数
-
enumerator CUTENSOR_R_8I¶
8 位有符号整数实数
-
enumerator CUTENSOR_C_8I¶
由一对 8 位有符号整数表示的复数
-
enumerator CUTENSOR_R_8U¶
8 位无符号整数实数
-
enumerator CUTENSOR_C_8U¶
由一对 8 位无符号整数表示的复数
-
enumerator CUTENSOR_R_16I¶
16 位有符号整数实数
-
enumerator CUTENSOR_C_16I¶
由一对 16 位有符号整数表示的复数
-
enumerator CUTENSOR_R_16U¶
16 位无符号整数实数
-
enumerator CUTENSOR_C_16U¶
由一对 16 位无符号整数表示的复数
-
enumerator CUTENSOR_R_32I¶
32 位有符号整数实数
-
enumerator CUTENSOR_C_32I¶
由一对 32 位有符号整数表示的复数
-
enumerator CUTENSOR_R_32U¶
32 位无符号整数实数
-
enumerator CUTENSOR_C_32U¶
由一对 32 位无符号整数表示的复数
-
enumerator CUTENSOR_R_64I¶
64 位有符号整数实数
-
enumerator CUTENSOR_C_64I¶
由一对 64 位有符号整数表示的复数
-
enumerator CUTENSOR_R_64U¶
64 位无符号整数实数
-
enumerator CUTENSOR_C_64U¶
由一对 64 位无符号整数表示的复数
-
enumerator CUTENSOR_R_16F¶
cutensorComputeDescriptor_t
¶
-
typedef struct cutensorComputeDescriptor *cutensorComputeDescriptor_t¶
表示计算描述符的不透明结构。
- CUTENSOR_EXTERN const cutensorComputeDescriptor_t CUTENSOR_COMPUTE_DESC_16F
浮点型:5 位指数和 10 位尾数(又名半精度)
- CUTENSOR_EXTERN const cutensorComputeDescriptor_t CUTENSOR_COMPUTE_DESC_16BF
浮点型:8 位指数和 7 位尾数(又名 bfloat)
- CUTENSOR_EXTERN const cutensorComputeDescriptor_t CUTENSOR_COMPUTE_DESC_TF32
浮点型:8 位指数和 10 位尾数(又名 tensor-float-32)
- CUTENSOR_EXTERN const cutensorComputeDescriptor_t CUTENSOR_COMPUTE_DESC_3XTF32
浮点型:比 TF32 更精确,但比 float 精度低
- CUTENSOR_EXTERN const cutensorComputeDescriptor_t CUTENSOR_COMPUTE_DESC_32F
浮点型:8 位指数和 23 位尾数(又名单精度浮点数)
- CUTENSOR_EXTERN const cutensorComputeDescriptor_t CUTENSOR_COMPUTE_DESC_64F
浮点型:11 位指数和 52 位尾数(又名双精度浮点数)
cutensorHandle_t
¶
-
typedef struct cutensorHandle *cutensorHandle_t¶
保存 cuTENSOR 库上下文的不透明结构。
cutensorTensorDescriptor_t
¶
-
typedef struct cutensorTensorDescriptor *cutensorTensorDescriptor_t¶
表示张量描述符的不透明结构。
cutensorOperationDescriptor_t
¶
-
typedef struct cutensorOperationDescriptor *cutensorOperationDescriptor_t¶
表示任何类型问题描述符(例如,缩并、归约、逐元素)的不透明结构。
cutensorOperationDescriptorAttribute_t
¶
-
enum cutensorOperationDescriptorAttribute_t¶
此枚举列出了 cutensorOperationDescriptor_t 的所有可以修改的属性(参见 cutensorOperationDescriptorSetAttribute 和 cutensorOperationDescriptorGetAttribute)。
值
-
enumerator CUTENSOR_OPERATION_DESCRIPTOR_TAG¶
int32_t:使用户能够区分关于软件管理计划缓存的两个相同问题。(默认值:0)
-
enumerator CUTENSOR_OPERATION_DESCRIPTOR_SCALAR_TYPE¶
cutensorDataType_t:缩放因子数据类型
-
enumerator CUTENSOR_OPERATION_DESCRIPTOR_FLOPS¶
float:执行此操作所需的浮点运算次数(假设所有标量都不等于零,除非另有说明)
-
enumerator CUTENSOR_OPERATION_DESCRIPTOR_MOVED_BYTES¶
float:从/到全局内存传输的最小字节数(假设所有标量都不等于零,除非另有说明)
-
enumerator CUTENSOR_OPERATION_DESCRIPTOR_PADDING_LEFT¶
uint32_t[](大小为 descOut->numModes):每个条目 i 保存应在第 i 个维度左侧填充的填充值数量
-
enumerator CUTENSOR_OPERATION_DESCRIPTOR_PADDING_RIGHT¶
uint32_t[](大小为 descOut->numModes):每个条目 i 保存应在第 i 个维度右侧填充的填充值数量
-
enumerator CUTENSOR_OPERATION_DESCRIPTOR_PADDING_VALUE¶
主机端指向与输出张量类型相同的元素的指针:常量填充值
-
enumerator CUTENSOR_OPERATION_DESCRIPTOR_TAG¶
cutensorPlanPreference_t
¶
-
typedef struct cutensorPlanPreference *cutensorPlanPreference_t¶
缩小适用算法/变体/内核空间的不透明结构。
cutensorPlanPreferenceAttribute_t
¶
-
enum cutensorPlanPreferenceAttribute_t¶
此枚举列出了 cutensorPlanPreference_t 对象的所有可以修改的属性。
值
-
enumerator CUTENSOR_PLAN_PREFERENCE_AUTOTUNE_MODE¶
cutensorAutotuneMode_t:确定计划的重复执行(例如,通过 cutensorContract、cutensorPermute)是否应自动调优(即,尝试不同的内核);有关详细信息,请参见“计划缓存”部分。
-
enumerator CUTENSOR_PLAN_PREFERENCE_CACHE_MODE¶
cutensorCacheMode_t:确定此计划的相应算法/内核是否应被缓存,并可以精细控制何种情况被视为缓存命中。
-
enumerator CUTENSOR_PLAN_PREFERENCE_INCREMENTAL_COUNT¶
int32_t:仅当 CUTENSOR_PLAN_PREFERENCE_CACHE_MODE 设置为 CUTENSOR_AUTOTUNE_MODE_INCREMENTAL 时适用
-
enumerator CUTENSOR_PLAN_PREFERENCE_ALGO¶
cutensorAlgo_t:固定特定的 cutensorAlgo_t
-
enumerator CUTENSOR_PLAN_PREFERENCE_KERNEL_RANK¶
int32_t:固定内核(算法的子变体;例如,kernel_rank==1 而 algo == CUTENSOR_ALGO_TGETT 将根据 cuTENSOR 的性能模型选择次佳 GETT 内核/变体;kernel_rank==2 将选择第三佳)
-
enumerator CUTENSOR_PLAN_PREFERENCE_JIT¶
cutensorJitMode_t:确定是否启用或禁用即时编译(默认值:CUTENSOR_JIT_MODE_NONE)
-
enumerator CUTENSOR_PLAN_PREFERENCE_AUTOTUNE_MODE¶
cutensorPlan_t
¶
-
typedef struct cutensorPlan *cutensorPlan_t¶
表示计划(例如,缩并、归约、逐元素)的不透明结构。
cutensorPlanAttribute_t
¶
-
enum cutensorPlanAttribute_t¶
此枚举列出了可以通过 cutensorPlanGetAttribute 检索的 cutensorPlan_t 对象的所有属性。
值
-
enumerator CUTENSOR_PLAN_REQUIRED_WORKSPACE¶
uint64_t:执行计划所需的准确工作空间大小(以字节为单位)
-
enumerator CUTENSOR_PLAN_REQUIRED_WORKSPACE¶
cutensorAutotuneMode_t
¶
-
enum cutensorAutotuneMode_t¶
此枚举确定关于 cuTENSOR 自动调优功能的模式。
值
-
enumerator CUTENSOR_AUTOTUNE_MODE_NONE¶
指示不进行自动调优(默认);在这种情况下,缓存将有助于减少计划创建开销。在缓存命中的情况下:将重用缓存的计划,否则将忽略计划缓存。
-
enumerator CUTENSOR_AUTOTUNE_MODE_INCREMENTAL¶
指示增量式自动调优(即,每次调用相应的 cutensorCreatePlan() 将基于不同的算法/内核创建一个 plan;将被测试的最大内核数由 cutensorPlanPreferenceAttribute_t 的 CUTENSOR_PLAN_PREFERENCE_INCREMENTAL_COUNT 定义)。警告:如果选择了此自动调优模式,则我们无法保证按位完全相同的结果(因为可能会执行不同的算法)。
-
enumerator CUTENSOR_AUTOTUNE_MODE_NONE¶
cutensorJitMode_t
¶
cutensorCacheMode_t
¶
-
enum cutensorCacheMode_t¶
此枚举定义了什么被认为是缓存命中。
值
-
enumerator CUTENSOR_CACHE_MODE_NONE¶
Plan 将不会被缓存。
-
enumerator CUTENSOR_CACHE_MODE_PEDANTIC¶
相应描述符的所有参数必须与缓存的 plan 完全相同(默认)。
-
enumerator CUTENSOR_CACHE_MODE_NONE¶
cutensorAlgo_t
¶
-
enum cutensorAlgo_t¶
允许用户指定用于执行所需张量运算的算法。
值
-
enumerator CUTENSOR_ALGO_DEFAULT_PATIENT¶
比 CUTENSOR_DEFAULT 更耗时,但通常提供更准确的内核选择。
-
enumerator CUTENSOR_ALGO_GETT¶
选择 GETT 算法(仅适用于 contraction)
-
enumerator CUTENSOR_ALGO_TGETT¶
转置 (A 或 B) + GETT(仅适用于 contraction)
-
enumerator CUTENSOR_ALGO_TTGT¶
转置-转置-GEMM-转置(需要额外的内存)(仅适用于 contraction)
-
enumerator CUTENSOR_ALGO_DEFAULT¶
性能模型选择合适的算法和内核。
-
enumerator CUTENSOR_ALGO_DEFAULT_PATIENT¶
cutensorWorksizePreference_t
¶
-
enum cutensorWorksizePreference_t¶
此枚举让用户可以更精细地控制建议的工作区大小。
此枚举让用户可以更精细地控制 cutensorEstimateWorkspaceSize 建议的工作区大小。
值
-
enumerator CUTENSOR_WORKSPACE_MIN¶
最低内存需求;至少一个算法可用。
-
enumerator CUTENSOR_WORKSPACE_DEFAULT¶
旨在在减少工作区需求的同时获得高性能。
-
enumerator CUTENSOR_WORKSPACE_MAX¶
最高内存需求;所有算法都将可用(如果内存占用不是问题,请选择此选项)
-
enumerator CUTENSOR_WORKSPACE_MIN¶
cutensorOperator_t
¶
-
enum cutensorOperator_t¶
此枚举捕获 cuTENSOR 库支持的所有一元和二元逐元素运算。
值
-
enumerator CUTENSOR_OP_IDENTITY¶
恒等运算符(即,元素不会更改)
-
enumerator CUTENSOR_OP_SQRT¶
平方根。
-
enumerator CUTENSOR_OP_RELU¶
修正线性单元。
-
enumerator CUTENSOR_OP_CONJ¶
复共轭。
-
enumerator CUTENSOR_OP_RCP¶
倒数。
-
enumerator CUTENSOR_OP_SIGMOID¶
y=1/(1+exp(-x))
-
enumerator CUTENSOR_OP_TANH¶
y=tanh(x)
-
enumerator CUTENSOR_OP_EXP¶
指数运算。
-
enumerator CUTENSOR_OP_LOG¶
对数(以 e 为底)。
-
enumerator CUTENSOR_OP_ABS¶
绝对值。
-
enumerator CUTENSOR_OP_NEG¶
取反。
-
enumerator CUTENSOR_OP_SIN¶
正弦。
-
enumerator CUTENSOR_OP_COS¶
余弦。
-
enumerator CUTENSOR_OP_TAN¶
正切。
-
enumerator CUTENSOR_OP_SINH¶
双曲正弦。
-
enumerator CUTENSOR_OP_COSH¶
双曲余弦。
-
enumerator CUTENSOR_OP_ASIN¶
反正弦。
-
enumerator CUTENSOR_OP_ACOS¶
反余弦。
-
enumerator CUTENSOR_OP_ATAN¶
反正切。
-
enumerator CUTENSOR_OP_ASINH¶
反双曲正弦。
-
enumerator CUTENSOR_OP_ACOSH¶
反双曲余弦。
-
enumerator CUTENSOR_OP_ATANH¶
反双曲正切。
-
enumerator CUTENSOR_OP_CEIL¶
向上取整。
-
enumerator CUTENSOR_OP_FLOOR¶
向下取整。
-
enumerator CUTENSOR_OP_MISH¶
Mish y=x*tanh(softplus(x)).
-
enumerator CUTENSOR_OP_SWISH¶
Swish y=x*sigmoid(x).
-
enumerator CUTENSOR_OP_SOFT_PLUS¶
Softplus y=log(exp(x)+1).
-
enumerator CUTENSOR_OP_SOFT_SIGN¶
Softsign y=x/(abs(x)+1).
-
enumerator CUTENSOR_OP_ADD¶
两个元素相加。
-
enumerator CUTENSOR_OP_MUL¶
两个元素相乘。
-
enumerator CUTENSOR_OP_MAX¶
两个元素的最大值。
-
enumerator CUTENSOR_OP_MIN¶
两个元素的最小值。
-
enumerator CUTENSOR_OP_UNKNOWN¶
保留仅供内部使用
-
enumerator CUTENSOR_OP_IDENTITY¶
cutensorStatus_t
¶
-
enum cutensorStatus_t¶
cuTENSOR 状态类型返回值
此类型用于函数状态返回。所有 cuTENSOR 库函数都返回其状态,状态可以具有以下值。
值
-
enumerator CUTENSOR_STATUS_SUCCESS¶
操作已成功完成。
-
enumerator CUTENSOR_STATUS_NOT_INITIALIZED¶
不透明数据结构未初始化。
-
enumerator CUTENSOR_STATUS_ALLOC_FAILED¶
cuTENSOR 库内部资源分配失败。
-
enumerator CUTENSOR_STATUS_INVALID_VALUE¶
向函数传递了不支持的值或参数(指示用户错误)。
-
enumerator CUTENSOR_STATUS_ARCH_MISMATCH¶
指示设备未就绪,或者目标架构不受支持。
-
enumerator CUTENSOR_STATUS_MAPPING_ERROR¶
访问 GPU 内存空间失败,这通常是由于未能绑定纹理而引起的。
-
enumerator CUTENSOR_STATUS_EXECUTION_FAILED¶
GPU 程序执行失败。这通常是由 GPU 上内核启动失败引起的,这可能是由多种原因引起的。
-
enumerator CUTENSOR_STATUS_INTERNAL_ERROR¶
发生了 cuTENSOR 内部错误。
-
enumerator CUTENSOR_STATUS_NOT_SUPPORTED¶
请求的操作不受支持。
-
enumerator CUTENSOR_STATUS_LICENSE_ERROR¶
请求的功能需要一些许可证,并且在尝试检查当前许可时检测到错误。
-
enumerator CUTENSOR_STATUS_CUBLAS_ERROR¶
调用 CUBLAS 未成功。
-
enumerator CUTENSOR_STATUS_CUDA_ERROR¶
发生了一些未知的 CUDA 错误。
-
enumerator CUTENSOR_STATUS_INSUFFICIENT_WORKSPACE¶
提供的工作区不足。
-
enumerator CUTENSOR_STATUS_INSUFFICIENT_DRIVER¶
指示驱动程序版本不足。
-
enumerator CUTENSOR_STATUS_IO_ERROR¶
指示与文件 I/O 相关的错误。
-
enumerator CUTENSOR_STATUS_SUCCESS¶
cudaDataType_t
¶
-
enum cudaDataType_t¶
cudaDataType_t 是 CUDA 库支持的类型的枚举。 cuTENSOR 支持实数 FP16、BF16、FP32 和 FP64 以及复数 FP32 和 FP64 输入类型。
值
-
enumerator CUDA_R_16F¶
16 位实数半精度浮点类型
-
enumerator CUDA_R_16BF¶
16 位实数 BF16 浮点类型
-
enumerator CUDA_R_32F¶
32 位实数单精度浮点类型
-
enumerator CUDA_C_32F¶
32 位复数单精度浮点类型(表示为实部和虚部对)
-
enumerator CUDA_R_64F¶
64 位实数双精度浮点类型
-
enumerator CUDA_C_64F¶
64 位复数双精度浮点类型(表示为实部和虚部对)
-
enumerator CUDA_R_16F¶
cutensorLoggerCallback_t
¶
-
typedef void (*cutensorLoggerCallback_t)(int32_t logLevel, const char *functionName, const char *message)¶
用于日志记录的函数指针类型。