快捷方式

量化算子

量化是一种模型优化技术,用于减小大型模型的大小,以便在精度损失较小的情况下获得更好的存储性能。

CUDA 算子

at::Tensor _float_to_bfloat16_gpu(const at::Tensor &input)

float 值的张量转换为脑浮点 (bfloat16) 值的张量。

参数:

input – 一个 float 值的张量

返回值:

一个新的张量,其值来自输入张量并转换为 bfloat16

at::Tensor _bfloat16_to_float_gpu(const at::Tensor &input)

将脑浮点 (bfloat16) 值的张量转换为 float 值的张量。

参数:

input – 一个 bfloat16 值的张量

返回值:

一个新的张量,其值来自输入张量并转换为 float

Tensor _float_to_FP8rowwise_gpu(const Tensor &input, const bool forward)

float 值的张量转换为 fp8 值的张量。

参数:
  • input – 一个 float 值的张量。数据类型可以是 SparseType::FP32SparseType::FP16SparseType::BF16

  • forward

抛出:

c10::Error – 如果 input.dtype 不是 (SparseType::FP32SparseType::FP16SparseType::BF16) 之一。

返回值:

一个新的张量,其值来自输入张量并转换为 fp8

at::Tensor _FP8rowwise_to_float_gpu(const at::Tensor &input, bool forward, const int64_t output_dtype)

fp8 值的张量转换为 float 值的张量。

参数:
  • input – 一个 fp8 值的张量

  • forward

  • output_dtype – 目标浮点类型,指定为 SparseType 枚举的整数表示

抛出:

c10::Error – 如果 output_dtype 不是 (SparseType::FP32SparseType::FP16SparseType::BF16) 之一。

返回值:

一个新的张量,其值来自输入张量并转换为float(其dtypeSparseType::FP32SparseType::FP16SparseType::BF16)。

Tensor _float_to_fused8bitrowwise_gpu(const Tensor &input)

将一个包含float值的张量转换为一个包含融合8位行向值的张量。

参数:

input – 一个 float 值的张量

返回值:

一个新的张量,其值来自输入张量并转换为融合8位行向。

Tensor _half_to_fused8bitrowwise_gpu(const Tensor &input)

将一个包含at::Half值的张量转换为一个包含融合8位行向值的张量。

参数:

input – 一个包含at::Half值的张量

返回值:

一个新的张量,其值来自输入张量并转换为融合8位行向。

Tensor _single_or_half_precision_to_fused8bitrowwise_gpu(const Tensor &input)

将一个包含at::Singleat::Half值的张量转换为一个包含融合8位行向值的张量。

参数:

input – 一个包含at::Singleat::Half值的张量

返回值:

一个新的张量,其值来自输入张量并转换为融合8位行向。

at::Tensor _fused8bitrowwise_to_float_gpu(const at::Tensor &input)

将一个包含融合8位行向值的张量转换为一个包含float值的张量。

参数:

input – 一个包含融合8位行向值的张量

返回值:

一个新的张量,其值来自输入张量并转换为 float

at::Tensor _fused8bitrowwise_to_half_gpu(const at::Tensor &input)

将一个包含融合8位行向值的张量转换为一个包含at::Half值的张量。

参数:

input – 一个包含融合8位行向值的张量

返回值:

一个新的张量,其值来自输入张量并转换为at::Half

at::Tensor _fused8bitrowwise_to_single_or_half_precision_gpu(const at::Tensor &input, const int64_t output_dtype, const bool scale_bias_last, const bool quant_padding_float_type)

将一个包含融合8位行向值的张量转换为一个包含floatat::Halfat::BFloat16值的张量。

参数:
  • input – 一个包含融合8位行向值的张量

  • output_dtype – 目标浮点类型,指定为 SparseType 枚举的整数表示

抛出:

c10::Error – 如果 output_dtype 不是 (SparseType::FP32SparseType::FP16SparseType::BF16) 之一。

返回值:

一个新的张量,其值来自输入张量并转换为floatat::Halfat::BFloat16

at::Tensor _fused8bitrowwise_to_float_mixed_dim_gpu(const at::Tensor &input, const at::Tensor &D_offsets, const int64_t output_dtype)

将一个包含融合8位行向值的张量转换为一个包含at::kFloatat::kHalf值的张量。

参数:
  • input – 一个包含融合8位行向值的张量

  • D_offsets

  • output_dtype – 目标浮点类型,指定为 SparseType 枚举的整数表示

抛出:

c10::Error – 如果output_dtype不是SparseType::FP32SparseType::FP16之一

返回值:

一个新的张量,其值来自输入张量并转换为at::kFloatat::kHalf

Tensor _float_to_fusednbitrowwise_gpu(const Tensor &input, const int64_t bit_rate)

将一个包含float值的张量转换为一个包含融合N位行向值的张量。

参数:
  • input – 一个 float 值的张量

  • bit_rate

返回值:

一个新的张量,其值来自输入张量并转换为融合N位行向。

at::Tensor _half_to_fusednbitrowwise_gpu(const at::Tensor &input, const int64_t bit_rate)

将一个包含at::Half值的张量转换为一个包含融合N位行向值的张量。

参数:
  • input – 一个包含at::Half值的张量

  • bit_rate

返回值:

一个新的张量,其值来自输入张量并转换为融合N位行向。

Tensor _single_or_half_precision_to_fusednbitrowwise_gpu(const Tensor &input, const int64_t bit_rate)

将一个包含 floatat::Half 值的张量转换为一个包含融合 N 位行向值的张量。

参数:
  • **input** – 一个包含 floatat::Half 值的张量

  • bit_rate

返回值:

一个新的张量,其值来自输入张量并转换为融合N位行向。

at::Tensor _fusednbitrowwise_to_float_gpu(const at::Tensor &input, const int64_t bit_rate)

将一个包含融合 N 位行向值的张量转换为一个包含 float 值的张量。

参数:
  • **input** – 一个包含融合 N 位行向值的张量

  • bit_rate

返回值:

一个新的张量,其值来自输入张量并转换为 float

at::Tensor _fusednbitrowwise_to_half_gpu(const at::Tensor &input, const int64_t bit_rate)

将一个包含融合 N 位行向值的张量转换为一个包含 at::Half 值的张量。

参数:
  • **input** – 一个包含融合 N 位行向值的张量

  • bit_rate

返回值:

一个新的张量,其值来自输入张量并转换为at::Half

at::Tensor _fusednbitrowwise_to_single_or_half_precision_gpu(const at::Tensor &input, const int64_t bit_rate, const int64_t output_dtype)

将一个包含融合 N 位行向值的张量转换为一个包含 floatat::Halfat::Bf16 值的张量。

参数:
  • **input** – 一个包含融合 N 位行向值的张量

  • bit_rate

  • output_dtype – 目标浮点类型,指定为 SparseType 枚举的整数表示

抛出:

c10::Error – 如果 output_dtype 不是以下值之一:(SparseType::FP32SparseType::FP16SparseType::BF16)。

返回值:

一个新的张量,其值来自输入张量并转换为 floatat::Halfat::Bf16,具体取决于 output_dtype

at::Tensor _float_to_hfp8_gpu(const at::Tensor &input, const int64_t ebits, const int64_t exponent_bias, const double max_pos)

将一个包含 float 值的张量转换为一个包含混合 8 位浮点数 (hfp8) 值的张量。

参数:
  • input – 一个 float 值的张量

  • **ebits** –

  • **exponent_bias** –

  • **max_pos** –

抛出:

c10::Error – 如果 ebits > 0exponent_bias > 0

返回值:

一个新的张量,其值来自输入张量并转换为 hfp8

at::Tensor _hfp8_to_float_gpu(const at::Tensor &input, const int64_t ebits, const int64_t exponent_bias)

将一个包含混合 8 位浮点数 (hfp8) 值的张量转换为一个包含 float 值的张量。

参数:
  • **input** – 一个包含 hfp8 值的张量

  • **ebits** –

  • **exponent_bias** –

抛出:

c10::Error – 如果 ebits > 0exponent_bias > 0

返回值:

一个新的张量,其值来自输入张量并转换为 float

at::Tensor _float_to_msfp_gpu(const at::Tensor &input, const int64_t bounding_box_size, const int64_t ebits, const int64_t mbits, const int64_t bias, const double min_pos, const double max_pos)

将一个包含 float 值的张量转换为一个包含微软浮点数 (msfp) 值的张量。

参数:
  • input – 一个 float 值的张量

  • **bounding_box_size** –

  • **ebits** –

  • **mbits** –

  • **bias** –

  • **min_pos** –

  • **max_pos** –

返回值:

一个新的张量,其值来自输入张量并转换为 msfp

at::Tensor _msfp_to_float_gpu(const at::Tensor &input, const int64_t ebits, const int64_t mbits, const int64_t bias)

将 Microsoft 浮点数 (msfp) 值的张量转换为 float 值的张量。

参数:
  • inputmsfp 值的张量

  • **ebits** –

  • **mbits** –

  • **bias** –

返回值:

一个新的张量,其值来自输入张量并转换为 float

Tensor _float_to_paddedFP8rowwise_gpu(const Tensor &input, const bool forward, const int64_t row_dim)

float 值的张量转换为填充的 fp8 行优先值的张量。

参数:
  • input – 一个 float 值的张量。数据类型可以是 SparseType::FP32SparseType::FP16SparseType::BF16

  • forward

  • row_dim

返回值:

一个新的张量,其值来自输入张量并转换为填充的 fp8 行优先值。

at::Tensor _paddedFP8rowwise_to_float_gpu(const at::Tensor &input, const bool forward, const int64_t row_dim, const int64_t output_last_dim, const int64_t output_dtype)

将填充的 fp8 行优先值的张量转换为 float values 的张量。

参数:
  • input – 一个 float 值的张量。数据类型可以是 SparseType::FP32SparseType::FP16SparseType::BF16

  • forward

  • row_dim

  • output_last_dim

  • output_dtype – 目标浮点类型,指定为 SparseType 枚举的整数表示

抛出:

c10::Error – 如果 output_dtype 不是以下之一:(SparseType::FP32, SparseType::FP16, SparseType::BF16)。

返回值:

一个新的张量,其值来自输入张量并转换为 float

CPU 运算符

Tensor &_fused8bitrowwise_to_float_cpu_out(Tensor &output, const Tensor &input)
Tensor &_float_to_fused8bitrowwise_cpu_out(Tensor &output, const Tensor &input)
Tensor float_to_fused8bitrowwise_cpu(const Tensor &input)
Tensor half_to_fused8bitrowwise_cpu(const Tensor &input)
Tensor float_or_half_to_fused8bitrowwise_cpu(const Tensor &input)
Tensor fused8bitrowwise_to_float_cpu(const Tensor &input)
Tensor fused8bitrowwise_to_half_cpu(const Tensor &input)
Tensor fused8bitrowwise_to_float_or_half_cpu(const Tensor &input, const int64_t output_dtype, const bool scale_bias_last, const bool quant_padding_float_type)
Tensor float_to_FP8rowwise_cpu(const Tensor &input, bool forward)


Tensor FP8rowwise_to_float_cpu(const Tensor &input, bool forward, const int64_t output_dtype)
Tensor fusednbitrowwise_to_float_cpu(const Tensor &input, const int64_t bit_rate)
Tensor fusednbitrowwise_sbfront_to_float_cpu(const Tensor &input, const int64_t bit_rate)

将前置缩放和偏差的 int4/int2 行反量化为 float32。

将前置缩放和偏差的 int4/int2 行反量化为 float32。输入张量应具有 torch.quint4x2 或 torch.quint2x4 数据类型和 QuantizedCPU 后端。此运算符仅推荐用于测试目的,因为其内核是参考实现,未经优化。

参数:
  • input – 前置缩放和偏差的 int4/int2 行张量。

  • bit_rate – 每个元素的比特率。应为 4 或 2。

返回值:

float32 张量,包含反量化后的数字。

Tensor fusednbitrowwise_to_half_cpu(const Tensor &input, const int64_t bit_rate)
Tensor fusednbitrowwise_to_float_or_half_cpu(const Tensor &input, const int64_t bit_rate, const int64_t output_dtype)
void FloatToFP8Quantized_ref(const float *const input, const size_t nrows, const size_t ncols, uint8_t *const output, const int ebits, const int exponent_bias, const double max_pos)
void FP8QuantizedToFloat_ref(const uint8_t *const input, const size_t nrows, const size_t ncols, float *const output, const int ebits, const int exponent_bias)

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源