MarvinLabs vram_fit
Will a QLoRA fine-tune of gemma-3-4b-it fit your GPU? Verdicts from measured AMD and NVIDIA probes.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"vram-fit": {
"url": "https://marvinlabs.org/mcp"
}
}
}Remote endpoints
https://marvinlabs.org/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢vram_fit(vram_gb, rank, seq_len, response_len, quant, ...)
Will this LoRA config train on a card with vram_gb GB? Returns verdict fits / tight / does_not_fit, the predicted peak in MB, the margin, how each part was derived, and any measured probe with the same settings.
Input Schema
{
"type": "object",
"properties": {
"vram_gb": {
"type": "number",
"description": "Card memory as sold, in GB (8, 12, 16, 24...)"
},
"rank": {
"type": "integer",
"minimum": 1
},
"seq_len": {
"type": "integer",
"default": 7177,
"description": "Longest training example, in tokens"
},
"response_len": {
"type": "integer",
"default": 237,
"description": "Tokens the loss covers (the response span)"
},
"quant": {
"type": "string",
"enum": [
"4bit",
"bf16"
],
"default": "4bit",
"description": "Base weights: bitsandbytes nf4 or bf16"
},
"lora_dropout": {
"type": "number",
"default": 0
},
"dora": {
"type": "boolean",
"default": false
},
"other_processes_mb": {
"type": "number",
"default": 0,
"description": "VRAM already held by other programs"
},
"model": {
"type": "string",
"default": "unsloth/gemma-3-4b-it"
},
"os": {
"type": "string",
"default": "linux",
"description": "windows or linux; Windows spills instead of OOM"
}
},
"required": [
"vram_gb",
"rank"
]
}🟢vram_max_rank(vram_gb, seq_len, response_len, quant, lora_dropout, ...)
Largest LoRA rank (multiple of 8) that fits with margin on a card with vram_gb GB, and the largest that is tight (a real run may fit, the one-step probe would not).
Input Schema
{
"type": "object",
"properties": {
"vram_gb": {
"type": "number",
"description": "Card memory as sold, in GB (8, 12, 16, 24...)"
},
"seq_len": {
"type": "integer",
"default": 7177,
"description": "Longest training example, in tokens"
},
"response_len": {
"type": "integer",
"default": 237,
"description": "Tokens the loss covers (the response span)"
},
"quant": {
"type": "string",
"enum": [
"4bit",
"bf16"
],
"default": "4bit",
"description": "Base weights: bitsandbytes nf4 or bf16"
},
"lora_dropout": {
"type": "number",
"default": 0
},
"dora": {
"type": "boolean",
"default": false
},
"other_processes_mb": {
"type": "number",
"default": 0,
"description": "VRAM already held by other programs"
},
"model": {
"type": "string",
"default": "unsloth/gemma-3-4b-it"
}
},
"required": [
"vram_gb"
]
}🟢vram_probes(rank, seq_len, quant, lora_dropout, dora, ...)
The raw measured probe rows (RX 7900 XTX and RTX 3060 Ti), filtered by any of the given settings. gpu matches part of the card name, e.g. '7900' or '3060'.
Input Schema
{
"type": "object",
"properties": {
"rank": {
"type": "integer"
},
"seq_len": {
"type": "integer"
},
"quant": {
"type": "string"
},
"lora_dropout": {
"type": "number"
},
"dora": {
"type": "boolean"
},
"gpu": {
"type": "string"
}
}
}Community
Evidence