pub struct RunCommand {Show 53 fields
pub model: Option<String>,
pub product_sources: ProductSourceArgs,
pub system: Option<String>,
pub max_tokens: u32,
pub stop: Vec<String>,
pub enable_thinking: bool,
pub disable_thinking: bool,
pub no_context_shift: bool,
pub temperature: f32,
pub backend: String,
pub gpu_devices: Option<String>,
pub layer_split_pipeline_mode: Option<LayerSplitPipelineModeArg>,
pub prompt: Option<String>,
pub tokenizer: Option<PathBuf>,
pub bench_mode: bool,
pub top_k: usize,
pub top_p: f32,
pub min_p: f32,
pub presence_penalty: f32,
pub repeat_penalty: f32,
pub repeat_last_n: usize,
pub seed: Option<u64>,
pub gpu_memory_utilization: f32,
pub runtime_memory_budget_bytes: Option<NonZeroUsize>,
pub max_model_len: Option<usize>,
pub max_num_seqs: Option<usize>,
pub max_num_batched_tokens: Option<usize>,
pub sequence_fit_policy: Option<SequenceFitPolicyArg>,
pub batched_graph: bool,
pub disable_batched_graph: bool,
pub reusable_execution: bool,
pub disable_reusable_execution: bool,
pub unified_graph: bool,
pub disable_unified_graph: bool,
pub unified_graph_layers_only: bool,
pub disable_unified_graph_layers_only: bool,
pub unified_graph_lm_head_eager: bool,
pub disable_unified_graph_lm_head_eager: bool,
pub kv_dtype: Option<String>,
pub kv_capacity: Option<usize>,
pub kv_max_blocks: Option<usize>,
pub effective_config_json: Option<PathBuf>,
pub decision_trace_jsonl: Option<PathBuf>,
pub observability_vertical_slice_out: Option<PathBuf>,
pub vnext_checkpoint: VNextCheckpointArgs,
pub profile_jsonl: Option<PathBuf>,
pub profile_detail: ProfileDetailArg,
pub vnext_diagnostic_fault: Option<VNextDiagnosticFaultArg>,
pub memory_profile_jsonl: Option<PathBuf>,
pub scheduler_trace_jsonl: Option<PathBuf>,
pub request_dump_dir: Option<PathBuf>,
pub profile_sample_rate: f64,
pub output_format: OutputFormat,
}Fields§
§model: Option<String>Model name (release alias, Hugging Face repository, local directory, or .gguf file).
product_sources: ProductSourceArgs§system: Option<String>System prompt (interactive chat mode only).
max_tokens: u32Maximum output-token ceiling. Context planning shrinks it to the remaining KV capacity before dropping any complete history turn.
stop: Vec<String>Stop generation when this text appears. Can be provided multiple times.
enable_thinking: boolEnable model reasoning for chat templates that support it.
disable_thinking: boolDisable model reasoning for chat templates that support it.
no_context_shift: boolDisable CLI context shift. By default, ferrum run keeps the REPL
alive by shrinking this turn’s output budget before dropping history.
Oldest complete turns are removed only when the rendered prompt itself
no longer fits in KV.
temperature: f32Sampling temperature (0.0–2.0). 0.0 = greedy / argmax (deterministic,
what you want for benchmarks). >0 = softmax sample with --top-k
and --top-p filtering applied.
backend: StringBackend: auto, cpu, metal, cuda (default: auto)
gpu_devices: Option<String>CUDA GPU ids to use, comma-separated. Multi-GPU requests select layer-split for supported Llama-family safetensors models.
layer_split_pipeline_mode: Option<LayerSplitPipelineModeArg>Layer-split decode pipeline mode for multi-GPU CUDA runs.
prompt: Option<String>One-shot prompt (skip interactive REPL). When supplied, ferrum runs a
single prefill+decode and exits — useful for benchmarking and shell
scripting. For .gguf paths, omitting this drops into the GGUF REPL.
tokenizer: Option<PathBuf>Path to a HuggingFace tokenizer.json (only used for .gguf paths).
If omitted, ferrum looks for <gguf-stem>.tokenizer.json and then
tokenizer.json next to the .gguf file.
bench_mode: boolBench mode: skip generated text output, print only timing summary.
Implies one-shot (--prompt is required).
top_k: usizeTop-K sampling cutoff (0 disables — keep all). Only the K highest- probability tokens compete in the softmax sample. Default 50, a conservative value that filters obvious garbage without flattening the distribution.
top_p: f32Top-P (nucleus) sampling cutoff (0.0 disables, 1.0 keeps all). Smallest set of tokens whose cumulative probability exceeds P is kept; the rest are zeroed before sampling. Default 0.95.
min_p: f32Minimum probability cutoff relative to the most likely token. A value of 0 disables min-p filtering.
presence_penalty: f32Presence penalty applied to tokens that already occurred in the request. Qwen3.5 recommends 1.5 for general thinking workloads.
repeat_penalty: f32Repetition penalty applied to logits before sampling. >1 discourages
repeats, <1 encourages, 1.0 disables. Defaults to 1.1 (OpenAI/llama.cpp
standard) because the chat default is greedy (temperature 0): greedy
with no penalty deterministically locks into token loops on some
inputs (the “2D/3D 2D/3D…” degeneration). Pass --repeat-penalty 1.0
for an unpenalized greedy baseline.
repeat_last_n: usizeNumber of recent tokens that the repetition penalty considers. Smaller = local repeat avoidance only.
seed: Option<u64>Random seed for sampling (when temperature > 0). Omit for non-deterministic chat.
gpu_memory_utilization: f32Fraction of GPU memory ferrum is allowed to use (mirrors vLLM’s
--gpu-memory-utilization). Auto-sizes the KV pool: at 0.9
ferrum will use ≤ 90 % of the GPU’s reported total memory,
reserving ~4 GB scratch + the weight bytes. Set to 1.0 for an
exclusive GPU; leave at 0.9 if other processes share the card.
runtime_memory_budget_bytes: Option<NonZeroUsize>Exact device-wide memory budget available to runtime weights and
dynamic resources. This is a typed capacity ceiling shared by run
and serve; omit it to use the normal pressure-threshold policy.
max_model_len: Option<usize>vLLM-compatible alias for FERRUM_MAX_MODEL_LEN.
max_num_seqs: Option<usize>vLLM-compatible alias for FERRUM_PAGED_MAX_SEQS.
max_num_batched_tokens: Option<usize>vLLM-compatible alias for FERRUM_MAX_BATCHED_TOKENS.
sequence_fit_policy: Option<SequenceFitPolicyArg>Sequence fit gate used before prefill admission.
batched_graph: boolEnable legacy Llama/Gemma batched decode CUDA graph replay.
disable_batched_graph: boolDisable legacy Llama/Gemma batched decode CUDA graph replay.
reusable_execution: boolEnable vNext reusable device-program preparation.
disable_reusable_execution: boolDisable vNext reusable device-program preparation.
unified_graph: boolEnable Llama/Gemma unified decode CUDA graph replay.
disable_unified_graph: boolDisable Llama/Gemma unified decode CUDA graph replay.
unified_graph_layers_only: boolCapture only Llama/Gemma unified transformer layers in CUDA graph replay.
disable_unified_graph_layers_only: boolDisable layers-only unified CUDA graph capture scope.
unified_graph_lm_head_eager: boolCapture unified layers plus final packing; leave lm_head eager.
disable_unified_graph_lm_head_eager: boolDisable lm-head-eager unified CUDA graph capture scope.
kv_dtype: Option<String>KV cache element dtype (Dim 5 polymorphism point). Accepts
fp16, bf16, int8, fp8. Default fp16. INT8 / FP8
require model wire-up; today only the kernel + type layer ships.
Override via FERRUM_KV_DTYPE env var.
kv_capacity: Option<usize>Per-sequence KV token capacity (FERRUM_KV_CAPACITY).
kv_max_blocks: Option<usize>KV block budget (FERRUM_KV_MAX_BLOCKS).
effective_config_json: Option<PathBuf>Write resolved startup runtime config JSON and exit artifacts.
decision_trace_jsonl: Option<PathBuf>Write one auto-config decision JSON record per line.
observability_vertical_slice_out: Option<PathBuf>Generate a synthetic/no-weight observability vertical-slice artifact and exit.
vnext_checkpoint: VNextCheckpointArgs§profile_jsonl: Option<PathBuf>Write product observability profile events to this JSONL path.
profile_detail: ProfileDetailArgProduct observability detail level.
vnext_diagnostic_fault: Option<VNextDiagnosticFaultArg>Inject one typed vNext diagnostic fault. Requires a latency profile.
memory_profile_jsonl: Option<PathBuf>Write product memory profile events to this JSONL path.
scheduler_trace_jsonl: Option<PathBuf>Write scheduler/admission trace events to this JSONL path.
request_dump_dir: Option<PathBuf>Write a sanitized request/replay bundle to this directory.
profile_sample_rate: f64Product observability sampling rate for resource lifecycle events.
output_format: OutputFormatOutput format. text (default) — streaming text + stats UX.
jsonl — one JSON record per event on stdout; used by tests and scripts.
Trait Implementations§
Source§impl Args for RunCommand
impl Args for RunCommand
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl FromArgMatches for RunCommand
impl FromArgMatches for RunCommand
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Auto Trait Implementations§
impl Freeze for RunCommand
impl RefUnwindSafe for RunCommand
impl Send for RunCommand
impl Sync for RunCommand
impl Unpin for RunCommand
impl UnsafeUnpin for RunCommand
impl UnwindSafe for RunCommand
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more