
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
@nodegrove/llm-math
Advanced tools
How much VRAM an open LLM needs and how fast it can run on a GPU: the memory, KV-cache and speed arithmetic behind nodegrove.io, with model data read from config.json and GPU specs from the makers.
How much memory an open-weight LLM needs on a GPU, how fast it can generate, and what to change when it does not fit.
This is the arithmetic behind every figure on nodegrove.io. Its model and GPU pages, its calculators, its open dataset and its MCP server all import this package, so they cannot disagree. Nothing in it is measured: memory is a stated formula over each model's config.json, speed is a stated bandwidth ceiling, and GPU figures are the makers' specifications.
npm install @nodegrove/llm-math
import { modelById, gpus, models, estimate, check, cardOf } from '@nodegrove/llm-math';
const llama = modelById('llama-3.3-70b')!;
estimate({ ...llama, quant: 'q4', context: 8192 });
// { weightsGb: 40.95, kvGb: 2.68, overheadGb: 2.14, totalGb: 45.77 }
const rtx4090 = cardOf(gpus.find((g) => g.id === 'rtx-4090')!);
const answer = check({ model: llama, card: rtx4090, quant: 'q4', context: 8192 }, { models, cards: gpus.map(cardOf) });
answer.verdict; // 'no'
answer.suggestions.map((s) => s.kind); // ['no-context', 'near-miss-card', 'smallest-card', 'biggest-model']
Any model, described by its shape:
estimate({ params: 8, layers: 32, kvHeads: 8, headDim: 128, quant: 'q4', context: 32768 }).totalGb; // 9.6
Any Hugging Face model, read from its config.json by the same rules as the built-in table:
import { shapeFromConfig } from '@nodegrove/llm-math';
const config = await (await fetch('https://huggingface.co/Qwen/Qwen3-8B/resolve/main/config.json')).json();
const shape = shapeFromConfig(config); // layers, KV heads, cache groups, attention kind, warnings
| Export | Answers |
|---|---|
estimate, kvCacheGb, kvPerTokenGb, maxContextTokens | Memory at a quantisation and context, and the longest context a budget holds |
tokensPerSecond, isCeiling, describeSpeed | The decode-speed ceiling, and how it reads |
fitModel, summarise | One model on one card; every model on one card, with a recommendation |
check | The verdict on a model and a card, and every computed alternative when it does not fit |
shapeFromConfig, attentionOf | A Hugging Face config.json read into the shape the formulas need |
models, gpus, MODELS_UPDATED | The data: the open-weight models and the GPUs and machines nodegrove.io covers, each with its source |
The code is MIT. The model and GPU tables, src/models.ts and src/gpus.ts, are CC BY 4.0: use them for anything, and credit Nodegrove (nodegrove.io).
FAQs
How much VRAM an open LLM needs and how fast it can run on a GPU: the memory, KV-cache and speed arithmetic behind nodegrove.io, with model data read from config.json and GPU specs from the makers.
The npm package @nodegrove/llm-math receives a total of 186 weekly downloads. As such, @nodegrove/llm-math popularity was classified as not popular.
We found that @nodegrove/llm-math demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.