快捷方式

量化運算符

量化是一種模型優化技術,旨在縮減大型模型的大小,以在準確度略微降低的情況下實現更好的儲存效能。

CUDA 運算符

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

float 值的張量轉換為 Brain Floating Point (bfloat16) 值的張量。

參數:

inputfloat 值的張量

返回:

一個新的張量,其值從輸入張量轉換為 bfloat16

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

將 Brain Floating Point (bfloat16) 值的張量轉換為 float 值的張量。

參數:

inputbfloat16 值的張量

返回:

一個新的張量,其值從輸入張量轉換為 float

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

float 值的張量轉換為 fp8 值的張量。

參數:
  • inputfloat 值的張量。dtype 可以是 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 值的張量。

參數:
  • inputfp8 值的張量

  • forward

  • output_dtype – 目標浮點類型,指定為 SparseType 列舉的整數表示

拋出:

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

返回:

一個新的張量,其值從輸入張量轉換為 float(具有 SparseType::FP32SparseType::FP16SparseType::BF16dtype)。

Tensor _float_to_fused8bitrowwise_gpu(const Tensor &input)

float 值的張量轉換為融合 8 位元逐行值的張量。

參數:

inputfloat 值的張量

返回:

一個新的張量,其值從輸入張量轉換為融合 8 位元逐行值。

Tensor _half_to_fused8bitrowwise_gpu(const Tensor &input)

at::Half 值的張量轉換為融合 8 位元逐行值的張量。

參數:

inputat::Half 值的張量

返回:

一個新的張量,其值從輸入張量轉換為融合 8 位元逐行值。

Tensor _single_or_half_precision_to_fused8bitrowwise_gpu(const Tensor &input)

at::Singleat::Half 值的張量轉換為融合 8 位元逐行值的張量。

參數:

inputat::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 位元逐行值的張量。

參數:
  • inputfloat 值的張量

  • bit_rate

返回:

一個新的張量,其值從輸入張量轉換為融合 N 位元逐行值。

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

at::Half 值的張量轉換為融合 N 位元逐行值的張量。

參數:
  • inputat::Half 值的張量

  • bit_rate

返回:

一個新的張量,其值從輸入張量轉換為融合 N 位元逐行值。

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

floatat::Half 值的張量轉換為融合 N 位元逐行值的張量。

參數:
  • inputfloatat::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, const bool scale_bias_last)

將融合 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) 值的張量。

參數:
  • inputfloat 值的張量

  • 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 值的張量。

參數:
  • inputhfp8 值的張量

  • 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 值的張量轉換為 Microsoft 浮點數 (msfp) 值的張量。

參數:
  • inputfloat 值的張量

  • 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 行式值的張量。

參數:
  • inputfloat 值的張量。dtype 可以是 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 的張量。

@param input A tensor of `float` values.  The dtype can be either
             `SparseType::FP32`, `SparseType::FP16`, or `SparseType::BF16`
@param forward
@param row_dim
@param output_last_dim
@param output_dtype The target floating point type, specified as integer
                    representation of `SparseType` enum

@return A new tensor with values from the input tensor converted to `float`.

@throw c10::Error if `output_dtype` is not one of (`SparseType::FP32`,
`SparseType::FP16`, `SparseType::BF16`).

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, const int64_t output_dtype)

將前置儲存了縮放和偏差的 int4/int2 行反量化為 float32/float16/Bfloat16。

將前置儲存了縮放和偏差的 int4/int2 行反量化為 float32。輸入張量應具有 torch.quint4x2 或 torch.quint2x4 dtype 和 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, const bool scale_bias_last)
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 的完整開發人員文件

檢視文件

教學課程

取得初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並取得您的問題解答

檢視資源