Skip to content

sgns::neoswarm::fp4::FP4Codec

Encodes and decodes FP32 weight matrices to/from FP4.

#include <fp4_codec.hpp>

Public Functions

Name
FP4Codec() =default
outcome::result< FP4Tensor > Encode(const float * weights, size_t rows, size_t cols, const float * activation_stats =nullptr) const
Quantize a row-major FP32 weight matrix to FP4.
outcome::result< void > Decode(const FP4Tensor & tensor, float * output) const
Dequantize an FP4Tensor to a FP32 output buffer.
float ComputeError(const float * original, const FP4Tensor & encoded) const
Compute mean squared error between original and round-tripped weights.

Public Functions Documentation

function FP4Codec

FP4Codec() =default

function Encode

outcome::result< FP4Tensor > Encode(
    const float * weights,
    size_t rows,
    size_t cols,
    const float * activation_stats =nullptr
) const

Quantize a row-major FP32 weight matrix to FP4.

Parameters:

  • weights Pointer to rows×cols FP32 values.
  • rows Number of rows.
  • cols Number of columns.
  • activation_stats Optional per-column activation magnitudes (may be nullptr).

Return: Encoded FP4Tensor or FP4DecodeFailed.

function Decode

outcome::result< void > Decode(
    const FP4Tensor & tensor,
    float * output
) const

Dequantize an FP4Tensor to a FP32 output buffer.

Parameters:

  • tensor Encoded tensor.
  • output Pre-allocated buffer of tensor.rows_ × tensor.cols_ floats.

Return: outcome::success or FP4DecodeFailed.

function ComputeError

float ComputeError(
    const float * original,
    const FP4Tensor & encoded
) const

Compute mean squared error between original and round-tripped weights.

Parameters:

  • original Original FP32 weights.
  • encoded Encoded FP4Tensor.

Return: MSE value.


Updated on 2026-07-25 at 22:56:56 +0000