@startuml
skinparam shadowing false
title GPU kernel and GPU-direct data-path model

start
:Admit request batch;
:RDMA KV/object hydrate;
:prefill_attention_gemm kernel;
:decode_attention_kv kernel;
if (USM path?) then (yes)
  :checksum_compress_or_vector_index kernel;
else (PCS path)
  :gpu_collective SEND / all-reduce-like packet batch;
endif
:KV/object writeback via RDMA_WRITE;
:OpenZFS TXG dirty accounting;
stop

note right
Kernel duration is max(compute_us, HBM_us)
plus launch overhead, RDMA wait, and queue time.
Compute scales with GPU count, TFLOP/s and occupancy.
Memory scales with aggregate HBM bandwidth.
end note
@enduml
