vendor/blake3-gpu/ — BLAKE3 compression primitives derived from
Blaze-3/BLAKE3-gpu.

  Upstream: https://github.com/Blaze-3/BLAKE3-gpu
  Commit:   f23e8ad889bd472607d39091b9931715d89cc4a8
  License:  MIT (see LICENSE in this directory)
  Author:   Rehan Vipin (2021)

What we use:
  - BLAKE3 IV / message-permutation constants
  - g/round/permute/compress primitives translated for __device__
  - leaf-chunk compression (CHUNK_START / CHUNK_END / ROOT flags)
  - parent-node compression flag layout

What we replaced:
  - Tree-mode merkle dispatch (dynamic parallelism, recursive kernel
    launches, Thrust pinned-vector factory) — our workload is per-item
    fan-out where each input is small enough to hash serially inside a
    single CUDA thread. We do not need cudaLimitDevRuntimeSyncDepth or
    SNICKER staging; we spawn one thread per input and walk the chunk
    tree on the device side. SIMT divergence stays bounded by input
    length distribution within a warp.
  - thrust / iostream / vector includes — pure C kernel uses neither.

The wrapping `blake3-fanout.cu` binary (host driver + per-input kernel
+ wire-protocol I/O) is AGPLv3, written from scratch in this repo,
under the same protocol as `shake256-fanout.cu` / `cgbn-batch-worker.cu`
/ `secp256k1-batch-mul.cu`. MIT terms above satisfy AGPLv3 inbound
license compatibility (MIT is permissive, no copyleft conflict).
