The NOTICE named candle as the only upstream, but this repo also carries material ported from llama.cpp/ggml, and the source says so itself: quantized/iq_grids.rs:1 "Auto-extracted verbatim from llama.cpp ggml/src/ggml-common.h" quantized/k_quants.rs:28 "Bit-for-bit replica of llama.cpp ggml-impl.h:477" quantized/k_quants.rs:24 "From llama.cpp ggml-common.h:1117 (kvalues_mxfp4)" 44 files across hanzo-ml, hanzo-kernel, hanzo-kernels, hanzo-metal-kernels, hanzo-rocm-kernels, hanzo-transformers and tensor-tools cite llama.cpp/ggml. llama.cpp is MIT, so porting from it is fine -- but the license requires its copyright and permission notice to travel with the copies, and they were absent. Adds the ggml section under the existing Hanzo-first pattern (matching iam/gateway/ai): Hanzo copyright on top, then the upstream retained below. The MIT text is reproduced verbatim from the upstream LICENSE at the pinned commit (0821c5fc), diff-verified byte-identical rather than written from memory. States plainly that this is a port, and that copyright in the ported material remains with The ggml authors -- Hanzo claims none of it. No code change.
98 lines
5.2 KiB
Plaintext
98 lines
5.2 KiB
Plaintext
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.
|