References — Hurray Format Specification
Status: Draft
Normative References
The following documents are referenced normatively by one or more sections of the Hurray format specification. Conforming implementations MUST comply with the relevant portions of these documents as cited.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
https://www.rfc-editor.org/rfc/rfc2119
Used by: All sections. Normative keywords (MUST, SHOULD, MAY, etc.)
are interpreted as defined in this document.
[IEEE754]
IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2019, July 2019.
https://ieeexplore.ieee.org/document/8766229
Used by: element-types.md — float16 (binary16), float32 (binary32),
float64 (binary64) bit-pattern definitions and NaN/infinity handling rules.
[OFP8]
Open Compute Project, "OCP 8-bit Floating Point Specification (OFP8)", Version 1.0, September 2023.
Used by: element-types.md — float8_e4m3 and float8_e5m2 bit-pattern
definitions. quantization/mxfp.md — float8_e8m0 scale factor encoding and
the MXFP8 element type definitions.
[OCPMX]
Open Compute Project, "OCP Microscaling Formats (MX) Specification", Version 1.0, 2023.
https://www.opencompute.org/documents/ocp-microscaling-formats-mx-v1-0-spec-final-pdf
Used by: quantization/mxfp.md — MXFP block size (32), float8_e8m0
shared exponent scale encoding, and valid MXFP element types.
[QLoRA]
Dettmers, T., Pagnoni, A., Rodola, G., and Zettlemoyer, L., "QLoRA: Efficient Finetuning of Quantized LLMs", arXiv:2305.14314, May 2023.
https://arxiv.org/abs/2305.14314
Used by: quantization/nf4.md — the NF4 lookup table values and the NF4
dequantization formula are taken from the reference implementation accompanying
this paper.
[SKILLING2004]
Skilling, J., "Programming the Hilbert Curve", AIP Conference Proceedings, Volume 707, pp. 381–387, 2004.
https://doi.org/10.1063/1.1751381
Used by: layouts/hilbert.md — the normative CoordsToHilbert and
HilbertToCoords algorithms are the algorithms defined in this paper.
Informative References
The following documents are referenced for context or as prior art. They are not normative; conforming implementations need not comply with them.
[DLPACK]
DLPack: Open In-Memory Tensor Structure.
https://github.com/dmlc/dlpack
Referenced by: buffer-protocol.md — the release callback (single deleter)
model is inspired by DLManagedTensor.deleter. docs/impl/python-bindings.md —
the __dlpack__ / __dlpack_device__ protocol for Python zero-copy interop.
[ARROW]
Apache Arrow: A cross-language development platform for in-memory data.
Referenced by: buffer-protocol.md and interchange.md — IPC framing and
buffer protocol design reference. docs/prior-art.md § 4.2.1.
[ARROWFLIGHT]
Apache Arrow Flight: A framework for high-performance data services.
https://arrow.apache.org/docs/format/Flight.html
Referenced by: interchange.md — streaming RPC model reference.
docs/prior-art.md § 4.2.2.
[SAFETENSORS]
Hugging Face SafeTensors: Safe serialization for tensors.
https://github.com/huggingface/safetensors
Referenced by: docs/prior-art.md § 4.3.1.
[GGUF]
GGUF: GPT-Generated Unified Format (llama.cpp).
https://github.com/ggerganov/ggml/blob/master/docs/gguf.md
Referenced by: quantization/per-block-affine.md — per-block affine
quantization covers the GGUF block quantization family (Q4_0, Q4_1, Q8_0).
docs/prior-art.md § 4.3.2.
[ONNX]
Open Neural Network Exchange (ONNX): An open standard for machine learning interoperability.
Referenced by: element-types.md — type system breadth reference.
data-model.md — zero-size dimension policy comparison.
[ZARR]
Zarr: Chunked, compressed, N-dimensional arrays.
Referenced by: docs/prior-art.md § 4.3.3 — chunk/shard layout reference.
[ARRAYAPI]
Consortium for Python Data API Standards, "Python Array API Standard".
https://data-apis.org/array-api
Referenced by: element-types.md — Tier 1 type vocabulary alignment with
the Python Array API Standard.
[UCX]
Unified Communication X (UCX): An optimized communication layer.
Referenced by: interchange.md — RDMA data plane, UCX packed rkey blob as
one possible RDMA key encoding.
[BITSANDBYTES]
Dettmers, T. et al., bitsandbytes: 8-bit optimizers and quantization.
https://github.com/TimDettmers/bitsandbytes
Referenced by: quantization/nf4.md — block_size = 64 is the bitsandbytes
default for NF4 quantization.