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 流。