Hanzo ML
Copyright (c) 2024 Hanzo AI, Inc.

This product includes software from candle (https://github.com/huggingface/candle),
licensed under the MIT License or the Apache License 2.0:

    Copyright (c) The candle authors

The upstream candle license texts are retained in this repository as LICENSE-MIT
and LICENSE-APACHE. This work is a derivative of candle and remains dual-licensed
under "MIT OR Apache-2.0"; the upstream license has not been changed.

This product also includes software PORTED FROM llama.cpp / ggml
(https://github.com/ggml-org/llama.cpp), licensed under the MIT License:

    MIT License

    Copyright (c) 2023-2026 The ggml authors

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

Ported from https://github.com/ggml-org/llama.cpp at commit
0821c5fcfd729af70037bc1e9e60769d42c081ba. These are ports, not reimplementations:
the GGUF/GGML on-disk quantization formats and their reference decode define the
bit layout our kernels must reproduce, so the upstream source is the specification.
The ported material is quantization-related and spans hanzo-ml, hanzo-kernel,
hanzo-kernels, hanzo-metal-kernels, hanzo-rocm-kernels, hanzo-transformers and
tensor-tools; the per-file provenance is recorded in source comments naming the
upstream file (and, where useful, the line). It includes at least:

- GGUF/GGML block formats and their CPU reference decode (quantized/k_quants.rs,
  ggml_file.rs, gguf_file.rs) -- e.g. kvalues_mxfp4 from ggml-common.h and a
  bit-for-bit replica of ggml_e8m0_to_fp32_half from ggml-impl.h.
- The IQ-quant codebook grids and sign table (quantized/iq_grids.rs), extracted
  verbatim from ggml/src/ggml-common.h, and the CUDA MMQ codebook tables.
- GPU quantized matmul/matvec kernels whose structure follows the corresponding
  ggml kernels (the q8_1 block-quantized dot-product decode used by the CUDA/ROCm
  dp4a cores and the Vulkan dp4a shaders, and the expert-grouped MoE GEMM).

Copyright in the ported material remains with The ggml authors; Hanzo AI claims
no copyright over it. Hanzo's own contributions around it (the backends, the
kernel DSL, and the original kernels) are covered by the Hanzo copyright above.
llama.cpp ships no NOTICE file; there are no further attributions to propagate.

PROVENANCE

Forked from https://github.com/huggingface/candle. The candle sources are vendored
and renamed to hanzo-* crates, so no pinned candle crate version is declared; this
fork tracks upstream candle main. The nearest upstream reference point on this line
of development is candle commit 3091caf9 (upstream PR #3408).

Upstream candle ships no NOTICE file; no Apache-2.0 section 4(d) attributions to
propagate.

DEVIATIONS

Changes from upstream candle in this fork:

- Rebranded to "Hanzo ML"; the top-level crate candle-core is renamed to hanzo-ml
  (core module hanzo_ml_core).
- Companion crates renamed: candle-nn -> hanzo-nn, candle-transformers ->
  hanzo-transformers, candle-datasets -> hanzo-datasets, candle-onnx -> hanzo-onnx,
  candle-flash-attn -> hanzo-flash-attn, candle-kernels -> hanzo-kernels,
  candle-metal-kernels -> hanzo-metal-kernels, candle-pyo3 -> hanzo-ml-pyo3,
  candle-examples -> hanzo-ml-examples, candle-book -> hanzo-ml-book.
- Added a first-party GPU kernel DSL (hanzo-kernel + hanzo-kernel-macros): one Rust
  source lowered to CUDA, ROCm, Vulkan, and Metal.
- Added a ROCm/HIP backend and kernels (hanzo-rocm-kernels; rocm-rs vendored and
  renamed to the hanzo-rocm package; hanzo-cubecl-hip fork).
- Added a Vulkan compute backend.
- Added FlashAttention-3 for Hopper/sm90 (hanzo-flash-attn-v3).
- Added NVIDIA GB10 / DGX Spark unified/managed-memory support in the CUDA backend.
- Extended quantization: the full GGUF quant zoo (Q/K, legacy, IQ1-4, TQ; 22 types)
  decodes resident and bit-exact on AMD gfx1151 through one unified compute core.
- Added hanzo-3d (generative-3D geometry and mesh I/O: Pixal3D / TRELLIS / TripoSR)
  and native-Rust training crates (hanzo-train, hanzo-training) targeting the
  zen-agentic and zen-identity datasets and DSpark speculative-draft models.
- Integrated with Hanzo Engine (OpenAI + Anthropic + MCP serving APIs) and the
  Hanzo/zen model hubs.
- Dependency and layout changes: cudarc pinned at 0.19.4; an orphaned duplicate
  crate cluster is excluded from the workspace build.
