Mila
Deep Neural Network Library
Loading...
Searching...
No Matches
CodebookPacking.ixx File Reference

Normative packed layout and CPU reference codec for the codebook policies. More...

#include <bit>
#include <cstdint>
import Dnn.TensorTypes;

Namespaces

namespace  Mila
 Mila main API namespace.

Functions

void Mila::Dnn::Quant::Weight::dequantizeCodes (const std::uint8_t *codes, const std::uint16_t *scaleBits, const float *codebook, dim_t rows, dim_t columns, dim_t groupSize, float *output) noexcept
std::uint8_t Mila::Dnn::Quant::Weight::encodeNearestCode (float normalizedValue, const float *codebook, int entryCount) noexcept
std::uint16_t Mila::Dnn::Quant::Weight::floatToHalfBits (float value) noexcept
constexpr dim_t Mila::Dnn::Quant::Weight::groupsPerRow (dim_t columns, dim_t groupSize) noexcept
float Mila::Dnn::Quant::Weight::halfBitsToFloat (std::uint16_t half) noexcept
constexpr dim_t Mila::Dnn::Quant::Weight::packedRowBytesForOneBitPlane (dim_t columns) noexcept
constexpr dim_t Mila::Dnn::Quant::Weight::packedRowBytesForTwoBitCodes (dim_t columns) noexcept
void Mila::Dnn::Quant::Weight::packThreeBitCodes (const std::uint8_t *codes, dim_t rows, dim_t columns, std::uint8_t *planeTwoBits, std::uint8_t *planeOneBit) noexcept
void Mila::Dnn::Quant::Weight::packTwoBitCodes (const std::uint8_t *codes, dim_t rows, dim_t columns, std::uint8_t *packed) noexcept
void Mila::Dnn::Quant::Weight::unpackThreeBitCodes (const std::uint8_t *planeTwoBits, const std::uint8_t *planeOneBit, dim_t rows, dim_t columns, std::uint8_t *codes) noexcept
void Mila::Dnn::Quant::Weight::unpackTwoBitCodes (const std::uint8_t *packed, dim_t rows, dim_t columns, std::uint8_t *codes) noexcept

Detailed Description

Normative packed layout and CPU reference codec for the codebook policies.

The Python packer (converter) and the CUDA kernels must both match this file exactly; a disagreement between them is resolved in favor of this file.