makepad/libs/ai/NOTICE
Admin 7f59912916 libs/ai: one AI stack, replacing libs/ggml, llama, mlx, cuda, tts, voice2 and pbr_paint
The model code was spread across eight crates that had grown into each other:
ggml and cuda and mlx each owned part of a tensor runtime, llama and tts and
voice2 each owned part of a model, and libs/diffusion owned everything else.
They are now one tree with an explicit shape:

  libs/ai/cuda     — kernels and launch surface
  libs/ai/metal    — Metal shaders and the shim
  libs/ai/llm      — the language-model runtime (sessions, lanes, contexts,
                     the CUDA and Metal executors, the compiled Metal path)
  libs/ai/models/  — common, flux, h3, music, paint, speech, stems, vision

libs/diffusion is not deleted but demoted: what remains is the VALIDATOR
crate — several dozen `*_validate.rs` oracles that check a native
implementation against a reference, which is where they belong now that the
implementations live next door.

The functional work inside the move is mostly in the LLM runtime: N lanes that
draft while one verify batch serves all of them, per-slot prefill over a shared
folded attention arena, speculation that survives batching, and a scheduler
that reports rather than publishes. And in the CUDA build: a machine without
usable CUDA must still LINK (and say so), the default kernel arch is the
building machine's GPU, `NO_CUDA` forces the stub even where the toolkit
exists, and kernels compile in parallel with progress.

libs/video_flow is new here: classical optical flow estimation and the `mkfl`
motion-field payload — a flow field measured from a clip without a model,
which is what drives free-rate bounce-looping playback and the uprez/tween
enhance pipe.
2026-08-23 01:34:35 +02:00

97 lines
4.6 KiB
Text

Third-party notices for the Makepad AI inference stack (`libs/ai`).
This file is the MIT attribution surface for vendored and ported sources.
Makepad's own code in this tree remains under the repository MIT license
(see `/LICENSE`). Publishing this repository is distribution of these
portions; the copyright notices and permission notices below must be
retained.
========================================================================
ggml / llama.cpp
========================================================================
License: MIT
Copyright (c) 2023-2026 The ggml authors
Upstream: https://github.com/ggml-org/llama.cpp
Upstream LICENSE: MIT License, "Copyright (c) 2023-2026 The ggml authors"
Substantial portions of the following are derived from ggml / llama.cpp
(quantized GEMM, flash-attention, K-quant layouts, Metal kernels, GGUF
container details, and related device code). Some files are close
transcriptions of a pinned llama.cpp revision; others are reimplementations
that still retain ggml block layouts, kernel structure, or constants.
libs/ai/cuda/kernels/llm/fattn/ CUDA flash-attn, MMQ, MMVQ, vec-dot
libs/ai/cuda/kernels/llm/kernels.cu K-quant decode / MMVQ launch path
libs/ai/cuda/kernels/kquants.cu K-quant / Q4_0 / related dequant
libs/ai/metal/shaders/ggml/ vendored ggml-metal snapshot
libs/ai/loader/src/formats/gguf.rs GGUF reader (moved from llama)
libs/ai/loader/src/quant.rs GGUF dtype / block metadata
Pinned Metal snapshot (see that directory's LICENSE):
commit 364c77f4ca2737e3287652e0e8a8c6dce3231bba
CUDA kernel comments name the llama.cpp revision they were ported from
(for example b10430 / commit 4c1a0af40d88c7fbb3b15c85bf2e8016d1d5b64c).
That pin is documentation of provenance, not a claim that every later
edit is still byte-identical to that commit.
The MIT permission notice for ggml / llama.cpp:
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.
========================================================================
Apple MLX (steel quantized GEMM)
========================================================================
License: MIT
Copyright © 2023-2025 Apple Inc.
Upstream: https://github.com/ml-explore/mlx
Vendored snapshot: v0.31.2
Location: libs/ai/metal/shaders/mlx_qmm/
Full license text: libs/ai/metal/shaders/mlx_qmm/LICENSE
Only the steel GEMM + quantized.h pieces needed for one instantiation
are vendored. Do not treat that directory as a full MLX Metal port.
========================================================================
Tokenizer tables bundled with Flux text encoders
========================================================================
libs/ai/models/flux/assets/clip_merges_utf8.txt
CLIP BPE merges table. CLIP (OpenAI) is MIT-licensed.
Copyright (c) 2021 OpenAI.
libs/ai/models/flux/assets/t5_tokenizer.json
T5 SentencePiece / HuggingFace tokenizer dump.
T5 (Google) is Apache License 2.0.
https://github.com/google-research/text-to-text-transfer-transformer
These files are data tables required to run the corresponding checkpoints.
They are not model weights.
========================================================================
What this NOTICE does not cover
========================================================================
Model *weights* that a user downloads (FLUX, Hunyuan, Qwen, MiniMax, …)
are licensed separately by their authors. This stack does not host or
redistribute those weights. The Asset UI requires an explicit per-model
acknowledgement of the registry license record before a model is cleared
for download or generation. See libs/asset/ai/registry.json `license`
objects and the Hunyuan paint `LicenseAcknowledgement` gate.