
Threat Research
/Security News
Searchjacked: Hidden Browser Extensions Hijack Searches for 13 Million Users
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.
@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 0 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.

Threat Research
/Security News
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.

Threat Research
Malicious Firefox extensions mimic Phantom, Jupiter, and Bitget wallets to steal recovery phrases and private keys, with one fetching its payload remotely.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.