activation.h
激活函数。
枚举
-
enum class NVTE_Activation_Type
计算输入的激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- Param input:
[in] 激活的输入张量。
- Param output:
[inout] 输出张量。
- Param stream:
[in] 用于操作的 CUDA 流。
值
-
enumerator GELU
-
enumerator GEGLU
-
enumerator SILU
-
enumerator SWIGLU
-
enumerator RELU
-
enumerator REGLU
-
enumerator QGELU
-
enumerator QGEGLU
-
enumerator SRELU
-
enumerator SREGLU
函数
-
void nvte_gelu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的 GeLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_silu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的 SiLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_relu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的 ReLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_qgelu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的 Quick GeLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_srelu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的 Squared ReLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dgelu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算 GeLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 输入梯度。
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dsilu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算 SiLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 输入梯度。
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_drelu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算 ReLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 输入梯度。
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dqgelu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算 Quick GeLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 输入梯度。
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dsrelu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算 Squared ReLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 输入梯度。
input – [in] 激活的输入张量。
output – [inout] 输出张量。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_geglu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的门控 GeLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 形状为 [N, H * 2] 的输入张量。
output – [inout] 形状为 [N, H] 的输出张量。它计算 Act(input[N, :H]) x input[N, H:]
stream – [in] 用于操作的 CUDA 流。
-
void nvte_swiglu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的门控 Swish 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 形状为 [N, H * 2] 的输入张量。
output – [inout] 形状为 [N, H] 的输出张量。它计算 Act(input[N, :H]) x input[N, H:]
stream – [in] 用于操作的 CUDA 流。
-
void nvte_reglu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的门控 ReLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 形状为 [N, H * 2] 的输入张量。
output – [inout] 形状为 [N, H] 的输出张量。它计算 Act(input[N, :H]) x input[N, H:]
stream – [in] 用于操作的 CUDA 流。
-
void nvte_qgeglu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的门控 Quick GeLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 形状为 [N, H * 2] 的输入张量。
output – [inout] 形状为 [N, H] 的输出张量。它计算 Act(input[N, :H]) x input[N, H:]
stream – [in] 用于操作的 CUDA 流。
-
void nvte_sreglu(const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算输入的门控 Squared ReLU 激活值。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
input – [in] 形状为 [N, H * 2] 的输入张量。
output – [inout] 形状为 [N, H] 的输出张量。它计算 Act(input[N, :H]) x input[N, H:]
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dgeglu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算门控 GeLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 形状为 [N, H] 的输入梯度。
input – [in] 形状为 [N, H * 2] 的前向输入张量。
output – [inout] 形状为 [N, H * 2] 的输出梯度。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dswiglu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算门控 Swish 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,则将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 形状为 [N, H] 的输入梯度。
input – [in] 形状为 [N, H * 2] 的前向输入张量。
output – [inout] 形状为 [N, H * 2] 的输出梯度。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dreglu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算门控 ReLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 形状为 [N, H] 的输入梯度。
input – [in] 形状为 [N, H * 2] 的前向输入张量。
output – [inout] 形状为 [N, H * 2] 的输出梯度。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dqgeglu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算门控 Quick GeLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 形状为 [N, H] 的输入梯度。
input – [in] 形状为 [N, H * 2] 的前向输入张量。
output – [inout] 形状为 [N, H * 2] 的输出梯度。
stream – [in] 用于操作的 CUDA 流。
-
void nvte_dsreglu(const NVTETensor grad, const NVTETensor input, NVTETensor output, cudaStream_t stream)
计算门控平方 ReLU 激活梯度。如果输出张量的缩放模式设置为 NVTE_MXFP8_1D_SCALING,将使用指定形状块的块量化 (MXFP8)。
- 参数:
grad – [in] 形状为 [N, H] 的输入梯度。
input – [in] 形状为 [N, H * 2] 的前向输入张量。
output – [inout] 形状为 [N, H * 2] 的输出梯度。
stream – [in] 用于操作的 CUDA 流。