Como as estimativas são feitas
Esta página foi escrita e traduzida automaticamente por IA e verificada por software em relação às suas fontes, sem edição humana. As especificações vêm das fontes listadas; os requisitos de memória e as velocidades são estimativas calculadas com fórmulas publicadas. Como usamos IA
Cada número deste site é uma especificação em que duas fontes abertas independentes concordam ou o resultado do código determinístico descrito abaixo. O mesmo código roda quando as páginas são geradas e no seu navegador.
O que é modelado
Modelado: llama.cpp carregando um arquivo GGUF, somente texto, todas as camadas na GPU, Flash Attention ativado, micro-lote de 512, um usuário. Para várias placas: placas idênticas em uma mesma máquina, com a divisão de camadas padrão do llama.cpp. Modelos multimodais são contabilizados sem o projetor de visão e sem o processamento de imagens.
Ollama e LM Studio usam llama.cpp, mas podem usar padrões diferentes. vLLM, MLX e Transformers alocam memória de forma diferente e não são modelados. Um resultado “Cabe” não significa que um determinado driver ou back end ofereça suporte à arquitetura ou à quantização do modelo.
Fórmula, termo a termo
Para cada placa d, a estimativa Q_d é a mesma quantidade que o llama.cpp exibe por dispositivo como buffers de modelo + KV + RS + computação. As camadas são distribuídas entre as placas com a divisão padrão do llama.cpp; o embedding de entrada permanece na memória do sistema.
Q_d = W_d + KV_d + S_d + C_d
W_d = Σ_{il ∈ d} layer_bytes[il] + [d = N] × out_bytes
KV_d = Σ_{il ∈ d} (k_il + v_il) × b_kv × cells_il; b_kv: F16 = 2, Q8_0 = 34/32, Q4_0 = 18/32
cells_full = ⌈ctx / 256⌉ × 256
cells_window = ⌈min(ctx, window × n_seq + 512) / 256⌉ × 256
S_d = Σ_{il ∈ d} state_il × 4 B × n_seq
M = (cells_full + cells_window) × 512 × 4 B
L = max(0,25 GiB, n_vocab × 512 × 4 B)
P = M + n_embd × 512 × 4 B
C_d = L + M (N = 1)
C_d = L + 3 × P (N > 1, d = N)
C_d = 0,25 GiB + 4 × P (N > 1, d < N)
X = max_d (Q⁺_d ÷ 0,95 + 1 GiB)
Cabe: ∀ d: Q⁺_d ÷ 0,95 + 1 GiB ≤ C_low
Não cabe: Q⁻ ÷ 1,10 > C_high (N = 1); Σ_d Q⁻_d ÷ 1,10 > N × C_high (N > 1)
No limite: caso contrário
C_low = G − D_card − U; C_high = G
tok/s ≤ B ÷ (R + R_KV) W_d- Pesos na placa d: os bytes das camadas colocadas nela, lidos da tabela de tensores do GGUF, mais a camada de saída na última placa.
KV_d- KV cache na placa d: elementos K e V por token de cada camada de atenção na placa, vezes bytes por elemento, vezes células em cache. A atenção latente multi-cabeça armazena apenas K.
S_d- Estado recorrente: estado de tamanho fixo das camadas recorrentes e de atenção linear (32 bits), um por sequência paralela.
C_d, L, M, P- Buffer de computação: L é o buffer de logits, M a máscara de atenção, P as entradas por cópia que o paralelismo em pipeline mantém em cada placa quando várias placas são usadas.
Q⁺- Q⁺: a estimativa por placa usada para “Cabe” — 4 sequências paralelas (o padrão -np auto do llama-server), camadas exatamente no limite entre placas contadas nas duas placas.
Q⁻- Q⁻: a estimativa usada para “Não cabe” — 1 sequência, cada camada contada uma única vez, conforme o código-fonte a atribui.
X- X: a memória disponível por placa necessária para “Cabe”. As páginas a exibem como “Memória disponível necessária para Cabe”.
G, N- G: a memória nominal de uma placa (os “24 GB” do fabricante contados como 24 GiB); N: o número de placas idênticas.
C_low- C_low: memória considerada disponível para “Cabe” — memória nominal menos a diferença entre o nominal e o informado da placa (D_card) e o maior uso de inicialização e de execução nos logs públicos do perfil (U), arredondada para baixo para um múltiplo de 64 MiB.
C_high- C_high: a memória nominal total, usada para “Não cabe”.
B, R, R_KV- B: largura de banda da memória (bytes por segundo); R: bytes de pesos lidos por token gerado (tensores não especialistas mais a parcela de especialistas em uso); R_KV: bytes de KV cache lidos por token.
Constantes
| Constante | Valor | Significado |
|---|---|---|
ubatch | 512 | Tamanho padrão de micro-lote do llama.cpp (-ub). |
ctxPad | 256 | As células do KV cache são preenchidas até um múltiplo deste número. |
computeFloorBytes | 0,25 GiB | Menor buffer de computação por placa. |
maskBytesPerCell | 4 B | Bytes por célula e por token do micro-lote da máscara de atenção (32 bits). |
fitReservePerDeviceBytes | 1,00 GiB | Reserva que o --fit padrão do llama.cpp mantém livre em cada placa (-fitt 1024 MiB). |
underestimateTolerance | 5% | Maior subestimativa permitida pelos testes de referência (gold standard); “Cabe” divide a estimativa por um menos este valor. |
overestimateTolerance | 10% | Maior superestimativa permitida pelos testes de referência (gold standard); “Não cabe” divide a estimativa por um mais este valor. |
stateBytesPerElem | 4 B | Bytes por elemento do estado recorrente. |
defaultCtx | 8.192 | Contexto padrão das tabelas: este número de tokens, ou o máximo do modelo, se for menor. |
defaultSeqs | 4 | Sequências paralelas assumidas para “Cabe” (llama-server -np auto, KV cache unificado). |
goldCoveredCtx | 262.144 | Maior contexto (células) em uma placa coberto pelos logs de referência (gold standard); a busca pelo maior contexto para aqui. |
maxCards | 8 | Maior número de placas idênticas consideradas. |
minUsefulCapacityBytes | 2,00 GiB | Menor quantidade de memória considerada disponível em uma placa para um veredito; abaixo disso o resultado é “Desconhecido” (exceto “Não cabe nem em 8 placas”). |
pipelineCopies | 4 | Cópias das entradas de camada por placa com paralelismo de pipeline em várias placas (GGML_SCHED_MAX_COPIES). |
goldCoveredCtxMulti | 131.072 | Maior contexto (células) em várias placas coberto pelos logs de referência (gold standard). |
cLowStepBytes | 64 MiB | O C_low de uma GPU dedicada (nominal − D_card − U) é arredondado para baixo para um múltiplo deste valor. |
Cabe, no limite ou não cabe
“Cabe” significa apenas isto: a verificação de carregamento do --fit padrão do llama.cpp colocaria todas as camadas na GPU. O llama.cpp faz essa verificação ao carregar um modelo (os buffers estimados mais uma reserva de 1 GiB por placa não devem ultrapassar a memória livre na inicialização); este site a recalcula com as mesmas regras de buffer e deixa margem para erros de estimativa. Isso não garante que o pico de memória durante a inferência (pools de memória, prompts longos e outras alocações em tempo de execução) caiba.
Os testes de referência (gold standard) permitem que a estimativa fique até 5% abaixo e até 10% acima do valor real, então cada lado da decisão usa seu próprio limite:
- Cabe quando, em cada placa, Q⁺ ÷ 0,95 + 1 GiB não é maior que C_low. Q⁺ assume 4 sequências paralelas.
- Não cabe quando Q⁻ ÷ 1,10 é maior que a memória total C_high (com várias placas: a soma das placas comparada com N × C_high, porque o --fit padrão ajusta a divisão por conta própria).
- No limite no meio: pode ou não caber. Reduza o contexto ou use uma quantização menor.
- Desconhecido quando nenhum perfil de execução cobre o dispositivo, para GPUs de estação de trabalho e de data center (a configuração de memória delas não é estabelecida por logs públicos), ou quando a memória contada como disponível é menor que 2 GiB: só X é mostrado, mais “Não cabe” se o modelo for grande demais até para a memória total.
X = o maior Q⁺ ÷ 0,95 + 1 GiB por placa é a memória disponível necessária para “Cabe”. As páginas escrevem “Memória disponível necessária para Cabe”, e não “pelo menos”, porque um resultado no limite precisa da mesma quantidade.
As tabelas verificam as quantizações da maior para a menor no contexto padrão. Uma linha mostra a maior quantização que cabe (com X, o maior contexto e o teto de velocidade) ou, se nenhuma couber, a maior que está no limite (com X) ou, se todas forem grandes demais, a menor quantização com seu X.
O maior contexto é buscado entre o contexto padrão e o menor valor entre o máximo do modelo e o maior contexto coberto por logs medidos (262.144 células em uma placa, 131.072 em várias). Se ainda couber ali, as páginas mostram “≥” esse valor: contextos maiores não foram verificados.
Várias placas idênticas só são consideradas quando uma placa não basta, apenas para GPUs de desktop, de estação de trabalho e de data center com perfil de execução, e cada quantidade de 2 a 8 é verificada separadamente (adicionar uma placa nem sempre reduz a carga da placa mais pesada, e o paralelismo de pipeline adiciona 4 cópias das entradas de camada). A página informa a menor quantidade que cabe com a divisão uniforme padrão; não é um mínimo, porque o --fit padrão pode ajustar a divisão e talvez funcione com menos placas. GPUs de estação de trabalho e de data center, e GPUs com menos de 2 GiB contados como disponíveis, recebem apenas “Não cabe nem em 8 placas” (ou nenhuma quantidade).
Perfis de execução
A quantidade de memória contada como disponível vem apenas de logs públicos do llama.cpp: o total que cada dispositivo informa, a memória livre quando a verificação --fit do llama.cpp é executada e, quando impressa, a memória não contabilizada após uma execução. D_card = nominal − total informado desse modelo de GPU (o maior, se houver vários logs); U = o maior valor entre total − livre na verificação --fit e a memória não contabilizada positiva após uma execução, entre todas as observações válidas do perfil. Quando um log tem apenas uma leitura da lista de dispositivos, soma-se a maior diferença entre a lista e a verificação observada no perfil. As observações são excluídas quando há um monitor conectado, outros programas já usavam a GPU, a memória livre excede o total, ou um servidor compartilhado adiciona uso não relacionado. Um perfil sem observações suficientes não gera veredictos.
| Perfil | U (MiB) | D para GPUs de desktop sem dados próprios (MiB) | Observações | Veredictos |
|---|---|---|---|---|
| CUDA (NVIDIA) | 2.112 | 1.054 | 17 | Fornecidos |
| Vulkan (Intel) | 832 | 0 | 1 | Não fornecidos: observações insuficientes |
| ROCm no Linux (AMD) | 1.216 | 144 | 11 | Fornecidos |
CUDA (NVIDIA)
llama.cpp, back end CUDA (GPU dedicada NVIDIA), todas as camadas na GPU, Flash Attention ativada, micro-batch (-ub) 512, KV cache em F16, contexto (-c) conforme indicado; “Cabe” é avaliado com as 4 sequências paralelas padrão do llama-server (-np auto, KV cache unificado) e “Não cabe” com 1 sequência; GPU ociosa, sem outros programas usando sua memória.
| GPU | D_card (MiB) |
|---|---|
| NVIDIA GeForce RTX 3060 12GB | 251 |
| NVIDIA GeForce RTX 3090 | 453 |
| NVIDIA GeForce RTX 4060 Ti 16GB | 5 |
| NVIDIA GeForce RTX 4090 | 496 |
| NVIDIA GeForce RTX 5060 | 484 |
| NVIDIA GeForce RTX 5090 | 659 |
| NVIDIA L4 | 2.098 |
| NVIDIA RTX A4000 | 410 |
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 1.054 |
| Dispositivo | Backend de execução | Compilação | Nominal | Total informado (MiB) | Livre na inicialização (MiB) | Usado antes do carregamento (MiB) | Não contabilizado após a execução (MiB) | Fonte |
|---|---|---|---|---|---|---|---|---|
| NVIDIA GeForce RTX 3090 (x2, CUDA0) | CUDA | b11415 | 24 GB | 24.575 | 23.054 | 1.522 | — | llama.cpp issues/29811 Linhas do log
|
| NVIDIA GeForce RTX 4090 | CUDA | b10567 (d7fa69b7d) | 24 GB | 24.563 | 23.040 | 1.575 | — | llama.cpp issues/27680 Linhas do log
|
| NVIDIA GeForce RTX 4090 (x2, CUDA0) | CUDA | 9293 (1acee6bf8) | 24 GB | 24.080 | 23.672 | 460 | — | llama.cpp issues/23679 Linhas do log
|
| NVIDIA GeForce RTX 3090 (x8) | CUDA | build 1 (0f7fada) ≈ b9557 | 24 GB | 24.123 | 23.858 | 317 | — | llama.cpp issues/24608 Linhas do log
|
| NVIDIA GeForce RTX 3090 | CUDA | 9274 (52fb93a) | 24 GB | 24.126 | 23.403 | 775 | — | llama.cpp issues/23472 Linhas do log
|
| NVIDIA GeForce RTX 3060 | CUDA | b7342 | 12 GB | 12.037 | — | 270 | 270 | llama.cpp issues/17931 Linhas do log
|
| NVIDIA GeForce RTX 4090 | CUDA | 7474 (f9ec8858e) | 24 GB | 24.082 | 23.687 | 447 | — | llama.cpp issues/18181 Linhas do log
|
| NVIDIA GeForce RTX 5090 | CUDA | 8241 (62b8143ad) | 32 GB | 32.606 | 30.927 | 2.050 | 2.050 | llama.cpp issues/20308 Linhas do log
|
| NVIDIA GeForce RTX 4090 | CUDA | 8241 (62b8143ad) | 24 GB | 24.563 | 22.988 | 1.910 | 1.910 | llama.cpp issues/20308 Linhas do log
|
| NVIDIA GeForce RTX 5090 | CUDA | 9692 (f3e182816) | 32 GB | 32.109 | 31.585 | 576 | — | llama.cpp issues/24758 Linhas do log
|
| NVIDIA GeForce RTX 5060 | CUDA | build 1 (fae3a28) | 8 GB | 7.708 | 7.573 | 187 | — | llama.cpp issues/21984 Linhas do log
|
| NVIDIA GeForce RTX 4060 Ti | CUDA | 0.3.0-dev build 10672 (511f9c1) | 16 GB | 16.379 | 15.233 | 1.198 | — | llama.cpp issues/27892 Linhas do log
|
| NVIDIA GeForce RTX 3080 (20 GB variant) | CUDA | build 1 (234a6eb) ≈ B10733 | 20 GB | 20.479 | 19.271 | 1.260 | — | llama.cpp issues/28167 Linhas do log
|
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | CUDA | 7474 (f9ec8858e) | 96 GB | 97.250 | 96.688 | 614 | — | llama.cpp issues/18181 Linhas do log
|
| NVIDIA RTX A4000 | CUDA | 9890 (74976e1) | 16 GB | 15.974 | 15.791 | 235 | — | llama.cpp issues/25594 Linhas do log
|
| NVIDIA A100-SXM4-40GB | CUDA | 8387 (45172df) | 40 GB | 40.444 | 39.968 | 528 | — | llama.cpp issues/20761 Linhas do log
|
| NVIDIA L4 | CUDA | b9036-b863d41c7 | 24 GB | 22.478 | 22.286 | 244 | 236 | llama.cpp pull/22546 Linhas do log
|
Vulkan (Intel)
llama.cpp, back end Vulkan (GPU dedicada Intel), todas as camadas na GPU, Flash Attention ativada, micro-batch (-ub) 512, KV cache em F16, contexto (-c) conforme indicado; “Cabe” é avaliado com 4 sequências paralelas e “Não cabe” com 1 sequência; GPU ociosa. Ainda não há medições públicas suficientes, então nenhum veredito usa este perfil.
| GPU | D_card (MiB) |
|---|---|
| Intel Arc Pro B70 | 138 |
| Dispositivo | Backend de execução | Compilação | Nominal | Total informado (MiB) | Livre na inicialização (MiB) | Usado antes do carregamento (MiB) | Não contabilizado após a execução (MiB) | Fonte |
|---|---|---|---|---|---|---|---|---|
| Intel Arc Pro B70 | Vulkan | build_info: b8871-7fc1c4ef7 | 32 GB | 32.630 | 31.861 | 769 | — | llama.cpp issues/22275 Linhas do log
|
ROCm no Linux (AMD)
llama.cpp, back end ROCm no Linux (GPU dedicada AMD), todas as camadas na GPU, Flash Attention ativada, micro-batch (-ub) 512, KV cache em F16, contexto (-c) conforme indicado; “Cabe” é avaliado com as 4 sequências paralelas padrão do llama-server (-np auto, KV cache unificado) e “Não cabe” com 1 sequência; GPU ociosa, sem outros programas usando sua memória.
| GPU | D_card (MiB) |
|---|---|
| AMD Radeon Instinct MI50 (32GB) | 16 |
| AMD Radeon AI PRO R9700 | 144 |
| AMD Radeon RX 6800 | 16 |
| AMD Radeon RX 6900 XT | 16 |
| AMD Radeon RX 7800 XT | 16 |
| AMD Radeon RX 7900 XTX | 16 |
| Dispositivo | Backend de execução | Compilação | Nominal | Total informado (MiB) | Livre na inicialização (MiB) | Usado antes do carregamento (MiB) | Não contabilizado após a execução (MiB) | Fonte |
|---|---|---|---|---|---|---|---|---|
| AMD Radeon RX 7900 XTX | ROCm | version: 9744 (063d9c1) | 24 GB | 24.560 | 24.494 | 266 | — | llama.cpp issues/24858 Linhas do log
|
| AMD Radeon RX 7800 XT (x2, ROCm0) | ROCm | version: b8929-9d34231bb | 16 GB | 16.368 | 16.036 | 467 | — | llama.cpp issues/22351 Linhas do log
|
| AMD Radeon RX 7900 XTX | ROCm | version: 9307 (549b9d8) | 24 GB | 24.560 | 24.510 | 1.135 | — | llama.cpp issues/23934 Linhas do log
|
| AMD Radeon RX 7900 XTX (x4) | ROCm | unknown | 24 GB | 24.560 | 24.510 | 1.135 | — | llama.cpp issues/27021 Linhas do log
|
| AMD Radeon AI PRO R9700 (x8) | ROCm | build 43 (5854625) | 32 GB | 32.624 | 32.534 | 1.175 | — | llama.cpp issues/26208 Linhas do log
|
| AMD Radeon AI PRO R9700 | ROCm | build 10616 (45bfc6f91) | 32 GB | 32.624 | 32.538 | 1.171 | — | llama.cpp issues/26208 Linhas do log
|
| AMD Instinct MI50 32GB | ROCm | build 9943 (c15c5c77a) | 32 GB | 32.752 | 32.722 | 1.115 | — | llama.cpp issues/25487 Linhas do log
|
| AMD Radeon RX 6800 | ROCm | version: 746 (da296d6) | 16 GB | 16.368 | — | 660 | — | llama.cpp issues/26038 Linhas do log
|
| AMD Radeon Pro VII (x3) | ROCm | build: aa374175c (6969) | 16 GB | 16.368 | — | 279 | 279 | llama.cpp issues/17058 Linhas do log
|
| AMD Radeon RX 6900 XT | ROCm | version: 9890 (74976e1) | 16 GB | 16.368 | 16.342 | 1.111 | — | llama.cpp issues/25594 Linhas do log
|
| AMD Radeon RX 7900 XTX | ROCm | version: 8707 (3bd9aa1) | 24 GB | 24.560 | 24.376 | 219 | — | llama.cpp issues/22052 Linhas do log
|
Testes de referência
Cada caso é um log público do llama.cpp que mostra os buffers por dispositivo. Os arquivos GGUF desse log são lidos, os buffers são recalculados por placa com o contexto, as sequências, o micro-lote e o tipo de KV do próprio log, e comparados com modelo + KV + RS + computação para a mesma placa. 38 casos (50 placas) rodam como testes automatizados a cada build e devem ficar entre −5% e +10%; o maior erro é +8,85%.
| Caso | GGUF | Backend de execução | Placas | Dispositivo | Contexto | Sequências | KV | Medido | Nossa estimativa | Erro |
|---|---|---|---|---|---|---|---|---|---|---|
| E01 | unsloth/GLM-4.7-Flash-GGUF | Metal | 1 | MTL0 | 65.536 | 4 | F16 | 34.053,1 MiB | 34.173,1 MiB | +0,35% |
| E02 | unsloth/GLM-4.7-Flash-GGUF | CUDA | 1 | CUDA0 | 380.416 | 2 | F16 | 76.784,3 MiB | 77.208,0 MiB | +0,55% |
| E03 | bartowski/gemma-2-2b-it-GGUF | CUDA | 1 | CUDA0 | 4.096 | 1 | F16 | 3.570,3 MiB | 3.581,7 MiB | +0,32% |
| E05 | ggml-org/gemma-3-4b-it-qat-GGUF | Vulkan | 1 | Vulkan0 | 131.072 | 4 | F16 | 6.001,9 MiB | 6.261,9 MiB | +4,33% |
| E06 | unsloth/gemma-3-27b-it-GGUF | CUDA | 1 | CUDA0 | 8.192 | 1 | Q8_0 | 14.257,9 MiB | 14.266,4 MiB | +0,06% |
| E07 | unsloth/gemma-4-26B-A4B-it-GGUF | ROCm | 1 | ROCm0 | 262.144 | 4 | F16 | 54.994,9 MiB | 55.203,4 MiB | +0,38% |
| E08 | bartowski/google_gemma-4-E2B-it-GGUF | Vulkan | 1 | Vulkan0 | 12.032 | 4 | F16 | 2.065,2 MiB | 2.090,7 MiB | +1,23% |
| E10 | lmstudio-community/gpt-oss-20b-GGUF | Metal | 1 | Metal | 4.096 | 1 | F16 | 12.048,6 MiB | 12.052,4 MiB | +0,03% |
| E11 | unsloth/gpt-oss-120b-GGUF | Vulkan | 1 | Vulkan0 | 131.072 | 1 | F16 | 65.418,0 MiB | 65.654,7 MiB | +0,36% |
| E12 | unsloth/gpt-oss-120b-GGUF | ROCm | 3 | ROCm0 | 131.072 | 1 | F16 | 24.085,8 MiB | 24.118,2 MiB | +0,13% |
| E12 | unsloth/gpt-oss-120b-GGUF | ROCm | 3 | ROCm1 | 131.072 | 1 | F16 | 21.826,8 MiB | 22.488,5 MiB | +3,03% |
| E12 | unsloth/gpt-oss-120b-GGUF | ROCm | 3 | ROCm2 | 131.072 | 1 | F16 | 21.101,6 MiB | 21.325,3 MiB | +1,06% |
| E13 | lmstudio-community/gpt-oss-120b-GGUF | ROCm | 3 | ROCm0 | 50.176 | 4 | F16 | 22.570,5 MiB | 22.681,7 MiB | +0,49% |
| E13 | lmstudio-community/gpt-oss-120b-GGUF | ROCm | 3 | ROCm1 | 50.176 | 4 | F16 | 20.664,3 MiB | 21.033,4 MiB | +1,79% |
| E13 | lmstudio-community/gpt-oss-120b-GGUF | ROCm | 3 | ROCm2 | 50.176 | 4 | F16 | 19.914,5 MiB | 20.003,2 MiB | +0,45% |
| E15 | bartowski/nvidia_Nemotron-H-47B-Reasoning-128K-GGUF | Vulkan | 1 | Vulkan0 | 32.768 | 1 | F16 | 27.959,0 MiB | 27.988,9 MiB | +0,11% |
| E17 | LiquidAI/LFM2.5-1.2B-Instruct-GGUF | CUDA | 1 | CUDA0 | 128.000 | 4 | Q8_0 | 2.370,8 MiB | 2.489,7 MiB | +5,02% |
| E18 | unsloth/Qwen3.5-27B-GGUF | CUDA | 1 | CUDA0 | 10.240 | 1 | F16 | 17.406,9 MiB | 17.406,9 MiB | +0,00% |
| E19 | unsloth/Qwen3.5-35B-A3B-GGUF | Vulkan | 1 | Vulkan0 | 16.384 | 1 | F16 | 21.566,6 MiB | 21.585,6 MiB | +0,09% |
| E20 | unsloth/Qwen3.5-9B-GGUF | CUDA | 1 | CUDA0 | 256.000 | 4 | Q8_0 | 20.381,1 MiB | 20.576,0 MiB | +0,96% |
| E23 | unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF | CUDA | 2 | CUDA0 | 131.072 | 1 | Q8_0 | 21.254,9 MiB | 21.294,9 MiB | +0,19% |
| E23 | unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF | CUDA | 2 | CUDA1 | 131.072 | 1 | Q8_0 | 4.032,3 MiB | 4.280,2 MiB | +6,15% |
| E24 | bartowski/Mistral-Large-Instruct-2411-GGUF | CUDA | 4 | CUDA0 | 32.768 | 1 | F16 | 32.775,5 MiB | 32.783,4 MiB | +0,02% |
| E24 | bartowski/Mistral-Large-Instruct-2411-GGUF | CUDA | 4 | CUDA1 | 32.768 | 1 | F16 | 15.712,7 MiB | 15.856,7 MiB | +0,92% |
| E24 | bartowski/Mistral-Large-Instruct-2411-GGUF | CUDA | 4 | CUDA2 | 32.768 | 1 | F16 | 18.503,9 MiB | 18.647,9 MiB | +0,78% |
| E24 | bartowski/Mistral-Large-Instruct-2411-GGUF | CUDA | 4 | CUDA3 | 32.768 | 1 | F16 | 15.874,9 MiB | 15.930,9 MiB | +0,35% |
| E25 | unsloth/Qwen3.5-27B-GGUF | CUDA | 2 | CUDA0 | 10.240 | 4 | F16 | 13.661,2 MiB | 13.738,2 MiB | +0,56% |
| E25 | unsloth/Qwen3.5-27B-GGUF | CUDA | 2 | CUDA1 | 10.240 | 4 | F16 | 14.767,9 MiB | 14.423,6 MiB | -2,33% |
| E26 | unsloth/Qwen3.5-27B-GGUF | Vulkan | 2 | Vulkan0 | 16.128 | 4 | F16 | 6.805,8 MiB | 6.908,0 MiB | +1,50% |
| E26 | unsloth/Qwen3.5-27B-GGUF | Vulkan | 2 | Vulkan1 | 16.128 | 4 | F16 | 11.830,8 MiB | 11.842,3 MiB | +0,10% |
| E27 | lmstudio-community/Qwen3-32B-GGUF | CUDA | 1 | CUDA0 | 32.768 | 1 | Q4_0 | 21.034,4 MiB | 21.088,4 MiB | +0,26% |
| E28 | bartowski/Meta-Llama-3.1-8B-Instruct-GGUF | CUDA | 1 | CUDA0 | 132.096 | 4 | F16 | 45.560,0 MiB | 45.655,0 MiB | +0,21% |
| E29 | lmstudio-community/granite-4.0-micro-GGUF | CUDA | 1 | CUDA0 | 2.050 | 1 | F16 | 2.381,0 MiB | 2.439,3 MiB | +2,45% |
| E30 | unsloth/Llama-3.2-3B-Instruct-GGUF | CUDA | 1 | CUDA0 | 74.000 | 1 | F16 | 10.294,9 MiB | 10.439,4 MiB | +1,40% |
| E31 | mradermacher/Sugoi-14B-Ultra-HF-i1-GGUF | CUDA | 1 | CUDA0 | 512 | 1 | F16 | 6.674,4 MiB | 6.665,4 MiB | -0,13% |
| E33 | unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF | ROCm | 1 | ROCm0 | 4.096 | 20 | F16 | 34.286,3 MiB | 34.717,0 MiB | +1,26% |
| E35 | mradermacher/Strawberrylemonade-70B-v1.2-i1-GGUF | ROCm | 2 | ROCm0 | 32.768 | 2 | F16 | 23.499,4 MiB | 23.651,3 MiB | +0,65% |
| E35 | mradermacher/Strawberrylemonade-70B-v1.2-i1-GGUF | ROCm | 2 | ROCm1 | 32.768 | 2 | F16 | 23.230,2 MiB | 23.267,7 MiB | +0,16% |
| E37 | Qwen/Qwen3-VL-30B-A3B-Instruct-GGUF | ROCm | 1 | ROCm0 | 20.224 | 4 | F16 | 19.721,2 MiB | 19.756,7 MiB | +0,18% |
| E38 | unsloth/Llama-3.2-3B-Instruct-GGUF | ROCm | 1 | ROCm0 | 10.240 | 4 | F16 | 3.300,9 MiB | 3.314,4 MiB | +0,41% |
| E39 | unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF | Vulkan | 1 | Vulkan0 | 100.864 | 4 | Q8_0 | 22.043,4 MiB | 22.215,6 MiB | +0,78% |
| E40 | bartowski/Meta-Llama-3.1-8B-Instruct-GGUF | Vulkan | 1 | Vulkan0 | 8.448 | 1 | F16 | 5.718,0 MiB | 5.732,0 MiB | +0,24% |
| E41 | unsloth/GLM-4.5-Air-GGUF | Vulkan | 1 | Vulkan0 | 24.576 | 4 | Q8_0 | 46.141,9 MiB | 46.179,1 MiB | +0,08% |
| E43 | unsloth/Qwen3-VL-8B-Thinking-GGUF | Vulkan | 2 | Vulkan0 | 24.576 | 4 | Q8_0 | 4.416,4 MiB | 4.560,3 MiB | +3,26% |
| E43 | unsloth/Qwen3-VL-8B-Thinking-GGUF | Vulkan | 2 | Vulkan1 | 24.576 | 4 | Q8_0 | 2.734,4 MiB | 2.766,3 MiB | +1,17% |
| E44 | ggml-org/Qwen2.5-Coder-1.5B-Instruct-Q8_0-GGUF | Vulkan | 1 | Vulkan0 | 4.096 | 1 | F16 | 1.976,4 MiB | 1.981,4 MiB | +0,25% |
| E45 | unsloth/Qwen3-30B-A3B-GGUF | Metal | 1 | Metal | 4.096 | 1 | F16 | 9.307,4 MiB | 9.307,4 MiB | -0,00% |
| E46 | bartowski/mistralai_Voxtral-Mini-3B-2507-GGUF | Metal | 1 | MTL0 | 16.384 | 4 | F16 | 6.256,0 MiB | 6.276,0 MiB | +0,32% |
| E47 | unsloth/Qwen3-0.6B-GGUF | Metal | 1 | Metal | 34.304 | 4 | F16 | 4.425,4 MiB | 4.488,4 MiB | +1,42% |
| E48 | sweepai/sweep-next-edit-1.5B | Metal | 1 | Metal | 32.768 | 4 | F16 | 2.462,6 MiB | 2.680,6 MiB | +8,85% |
Logs deixados de fora e por quê
- E04: Flash Attention estava desligado; este site modela Flash Attention ligado.
- E09: Executado com --swa-full, um cache de janela deslizante fora do padrão.
- E16: Várias sequências sem KV cache unificado; esse layout de cache não é modelado.
- E32: Flash Attention estava desligado; este site modela Flash Attention ligado.
- E34: Flash Attention estava desligado; este site modela Flash Attention ligado.
- E42: Flash Attention estava desligado; este site modela Flash Attention ligado.
Regras do llama.cpp por arquitetura
A forma como cada arquitetura organiza seu KV cache e seu estado foi transcrita do código-fonte do llama.cpp no commit 5aeac37a35.
| Arquitetura | Layout do KV cache | Fonte |
|---|---|---|
llama | atenção total em todas as camadas | src/models/llama.cpp |
qwen2 | atenção total em todas as camadas | src/models/qwen2.cpp |
qwen2moe | atenção total em todas as camadas | src/models/qwen2moe.cpp |
qwen2vl | atenção total em todas as camadas | src/models/qwen2vl.cpp |
qwen3 | atenção total em todas as camadas | src/models/qwen3.cpp |
qwen3moe | atenção total em todas as camadas | src/models/qwen3moe.cpp |
qwen3vl | atenção total em todas as camadas | src/models/qwen3vl.cpp |
qwen3vlmoe | atenção total em todas as camadas | src/models/qwen3vlmoe.cpp |
mistral3 | atenção total em todas as camadas | src/models/mistral3.cpp |
mistral4 | atenção total em todas as camadas | src/models/mistral4.cpp |
phi2 | atenção total em todas as camadas | src/models/phi2.cpp |
phi3 | atenção total em todas as camadas | src/models/phi3.cpp |
phimoe | atenção total em todas as camadas | src/models/phimoe.cpp |
gemma | atenção total em todas as camadas | src/models/gemma.cpp |
glm4 | atenção total em todas as camadas | src/models/glm4.cpp |
glm4moe | atenção total em todas as camadas | src/models/glm4-moe.cpp |
granite | atenção total em todas as camadas | src/models/granite.cpp |
granitemoe | atenção total em todas as camadas | src/models/granite-moe.cpp |
command-r | atenção total em todas as camadas | src/models/command-r.cpp |
olmo | atenção total em todas as camadas | src/models/olmo.cpp |
olmoe | atenção total em todas as camadas | src/models/olmoe.cpp |
starcoder2 | atenção total em todas as camadas | src/models/starcoder2.cpp |
internlm2 | atenção total em todas as camadas | src/models/internlm2.cpp |
minimax-m2 | atenção total em todas as camadas | src/models/minimax-m2.cpp |
hunyuan-moe | atenção total em todas as camadas | src/models/hunyuan-moe.cpp |
hunyuan-dense | atenção total em todas as camadas | src/models/hunyuan-dense.cpp |
hy_v3 | atenção total em todas as camadas | src/models/hy-v3.cpp |
ernie4_5 | atenção total em todas as camadas | src/models/ernie4-5.cpp |
ernie4_5-moe | atenção total em todas as camadas | src/models/ernie4-5-moe.cpp |
seed_oss | atenção total em todas as camadas | src/models/seed-oss.cpp |
smollm3 | atenção total em todas as camadas | src/models/smollm3.cpp |
apertus | atenção total em todas as camadas | src/models/apertus.cpp |
exaone | atenção total em todas as camadas | src/models/exaone.cpp |
nemotron | atenção total em todas as camadas | src/models/nemotron.cpp |
bailingmoe | atenção total em todas as camadas | src/models/bailingmoe.cpp |
bailingmoe2 | atenção total em todas as camadas | src/models/bailingmoe2.cpp |
dots1 | atenção total em todas as camadas | src/models/dots1.cpp |
arcee | atenção total em todas as camadas | src/models/arcee.cpp |
grovemoe | atenção total em todas as camadas | src/models/grovemoe.cpp |
nanbeige | atenção total em todas as camadas | src/models/nanbeige.cpp |
k2-horizon | atenção total em todas as camadas | src/models/k2-horizon.cpp |
deci | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/deci.cpp |
deepseek2 | atenção total em todas as camadas | src/models/deepseek2.cpp |
deepseek | atenção total em todas as camadas | src/models/deepseek.cpp |
minicpm3 | atenção total em todas as camadas | src/models/minicpm3.cpp |
deepseek32 | atenção esparsa com chaves de indexador (contadas como K extra) | src/models/deepseek32.cpp |
glm-dsa | atenção esparsa com chaves de indexador (contadas como K extra) | src/models/glm-dsa.cpp |
gemma2 | janela deslizante: 1 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/gemma2.cpp |
gemma3 | janela deslizante: 5 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/gemma3.cpp |
gemma3n | janela deslizante: 4 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada; layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/gemma3n.cpp |
gemma4 | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/gemma4.cpp |
cohere2 | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/cohere2.cpp |
cohere2moe | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/cohere2moe.cpp |
gpt-oss | janela deslizante: 1 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/openai-moe.cpp |
exaone4 | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/exaone4.cpp |
exaone-moe | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/exaone-moe.cpp |
afmoe | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/afmoe.cpp |
llama4 | atenção em blocos: 3 camadas em blocos por camada completa | src/models/llama4.cpp |
muse-glimmer | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/muse-glimmer.cpp |
muse-spark | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/muse-spark.cpp |
mellum | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/mellum.cpp |
smallthinker | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/smallthinker.cpp |
laguna | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/laguna.cpp |
granite_swa | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/granite-swa.cpp |
maple | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/maple.cpp |
spark2_5 | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/spark2-5.cpp |
step35 | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/step35.cpp |
mimo2 | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/mimo2.cpp |
kolibri1 | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/kolibri1.cpp |
beam | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/beam.cpp |
maion-coder | janela deslizante, com padrão por camada lido do arquivo GGUF | src/models/maion-coder.cpp |
olmo2 | janela deslizante: 3 camadas deslizantes por camada completa, a menos que o arquivo GGUF informe um padrão por camada | src/models/olmo2.cpp |
plamo3 | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/plamo3.cpp |
qwen3next | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/qwen3next.cpp |
qwen35 | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/qwen35.cpp |
qwen35moe | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/qwen35moe.cpp |
qwen4exp | camadas recorrentes / de atenção linear com um estado de tamanho fixo; layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/qwen4exp.cpp |
nemotron_h | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/nemotron-h.cpp |
nemotron_h_moe | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/nemotron-h.cpp |
granitehybrid | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/granite-hybrid.cpp |
jamba | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/jamba.cpp |
lfm2 | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/lfm2.cpp |
lfm2moe | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/lfm2moe.cpp |
falcon-h1 | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/falcon-h1.cpp |
kimi-linear | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/kimi-linear.cpp |
kimi-k3 | camadas recorrentes / de atenção linear com um estado de tamanho fixo | src/models/kimi-k3.cpp |
glm5-next | camadas recorrentes / de atenção linear com um estado de tamanho fixo; atenção esparsa com chaves de indexador (contadas como K extra) | src/models/glm5-next.cpp |
minimax-01 | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/minimax-01.cpp |
plamo2 | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/plamo2.cpp |
deepseek4 | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/deepseek4.cpp |
dots3note | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/dots3note.cpp |
hy_v4 | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/hy-v4.cpp |
minimax-m3 | layout do cache ainda não modelado — modelos com esta arquitetura não são listados | src/models/minimax-m3.cpp |
Fontes e como as especificações são verificadas
- Os sites dos fabricantes nunca são acessados, porque seus termos proíbem o acesso automatizado. A especificação do fabricante vem de conjuntos de dados abertos que vinculam, linha a linha, uma folha de dados do fabricante (GetDeploying e Epoch AI, quando a folha de dados está em um domínio do fabricante ou em um serviço de hospedagem de documentos que o próprio fabricante usa para suas folhas de dados) e da documentação do ROCm da AMD. Esses links de folhas de dados são exibidos como “referência do fabricante”, marcados como não acessados por este site. Os links de folhas de dados contam como do fabricante quando estão em um destes domínios (incluindo serviços de hospedagem de documentos que os fabricantes usam):
amd.com,apple.com,dam-cdn.nvd.orangelogic.com,geforce.com,intel.com,nvdam.widen.net,nvidia.com - A Wikipedia é usada como verificação cruzada independente. Suas notas de rodapé não são usadas como fonte de um valor, porque as notas de rodapé de colunas e de nomes de produtos não mostram de onde veio um campo específico.
- O voto da especificação do fabricante e o voto da verificação cruzada devem vir de editores diferentes, sem referência entre eles: se a página da Wikipedia (ou a linha do conjunto de dados) usada na verificação cruzada citar o outro editor, ela conta como derivada, e não como um segundo voto. Uma fonte que copia outra sem declarar isso não pode ser detectada a partir de evidências públicas.
- Um valor é exibido (two_source) quando um voto de especificação do fabricante e uma verificação cruzada independente concordam e nenhuma fonte saudável discorda. Caso contrário, é “conflict” (as fontes discordam), “single” (sem voto de especificação do fabricante ou sem verificação cruzada independente) ou “missing”.
- As linhas que um conjunto de dados aberto atribui à TechPowerUp (linhas da Epoch AI cujo link da folha de dados aponta para techpowerup.com) não são lidas de forma alguma, porque os termos da TechPowerUp proíbem conjuntos de dados derivados: elas não votam nem contam como divergência.
- Concordância significa: tamanho de memória exatamente igual, largura de banda dentro de 1%, outros números dentro de 2%, texto igual após normalização.
- O valor exibido é o que o maior número de fontes concordantes informa exatamente; o número e o link de cada fonte estão listados ao lado. Os links da Wikipedia apontam para a revisão exata usada.
- Computadores Apple Silicon, DGX Spark e Strix Halo não são publicados nesta versão: nenhuma fonte aberta vincula uma ficha técnica do fabricante a eles linha a linha.
- Os dados dos modelos vêm do Hugging Face em revisões fixas. Cada modelo usa um repositório GGUF para todas as suas quantizações, escolhido por uma ordem fixa de editores; a arquitetura é lida do cabeçalho GGUF e, quando o config.json original é legível, verificada em comparação com ele.
- Os pesos originais, mostrados apenas como referência, contam os arquivos safetensors do repositório no nível superior e em pastas model*: com um model.safetensors.index.json, os arquivos que ele nomeia mais os conjuntos completos em outras pastas model*; sem ele, todos os conjuntos completos, sendo que um arquivo unificado e uma cópia fragmentada idêntica são contados uma só vez. Outras pastas (por exemplo, decodificadores armazenados separadamente), original/, arquivos consolidated*, adaptadores LoRA e arquivos .bin / .pt não são contados. Quando os arquivos não formam um conjunto inequívoco, nenhum tamanho é informado.
Contagem de parâmetros
Os parâmetros são contados a partir da tabela de tensores do arquivo GGUF escolhido: todos os tensores que o llama.cpp carrega, incluindo a tabela de embedding de entrada. As camadas de previsão de vários tokens (MTP / NextN), que o llama.cpp não carrega por padrão, não são contadas; as páginas de modelos que as têm informam quantas são. Os parâmetros ativos por token contam os tensores que não são de especialistas mais os especialistas em uso (especialistas usados ÷ especialistas por camada), mas não a consulta à embedding de entrada, porque apenas uma linha dela é lida por token. Quando um modelo usa uma mesma matriz como embedding de entrada e como camada de saída (embeddings compartilhadas), cada token é multiplicado por ela inteira, por isso ela é contada uma vez, como camada de saída. Os cartões de modelo muitas vezes também contam a tabela de embedding de entrada e as camadas MTP, então seus valores podem ser visivelmente maiores, especialmente em modelos pequenos de mistura de especialistas com vocabulários grandes. A contagem do repositório original é mostrada separadamente.
Os parâmetros ativos são informados apenas para modelos de mistura de especialistas, isto é, modelos cujo cabeçalho GGUF lista mais de um especialista por camada. Um modelo com um único especialista por camada (contagem de especialistas 1) é denso: todos os parâmetros são usados para cada token, então nenhum valor ativo separado é exibido.
A contagem do repositório original é o total que o Hugging Face informa para os seus pesos em safetensors; alguns repositórios a declaram de forma incorreta nos metadados. Ela só é exibida, e só é incluída nos downloads, quando é confirmada: deve ser maior que 100M parâmetros, estar dentro de 1% das contagens de parâmetros por tipo que o Hugging Face lê dos arquivos de pesos do repositório e, para modelos com um arquivo GGUF, ficar entre 0,5 e 2,5 vezes a contagem do GGUF (o original também pode conter um codificador de visão ou de áudio ou camadas de predição de vários tokens; o GGUF pode ser maior quando armazena uma embedding compartilhada uma segunda vez como camada de saída). Modelos sem arquivo GGUF precisam passar pelas duas primeiras verificações. Caso contrário, a contagem é omitida.
O que cada status mostra
| Status | Na página |
|---|---|
two_source | Exibido: uma especificação do fabricante vinculada por uma fonte aberta concorda com uma verificação cruzada independente. |
conflict | As fontes abertas divergem, então este valor não é exibido; as estimativas que dependem dele (como a velocidade) também não são fornecidas. |
single | Não exibido: as fontes abertas não fornecem dois valores independentes e concordantes com uma referência do fabricante. |
missing | Não exibido: as fontes abertas não fornecem dois valores independentes e concordantes com uma referência do fabricante. |
withheld | A entrada foi publicada antes, mas agora suas fontes divergem, uma fonte mudou ou ela deixou de atender às regras de listagem. A página permanece (não indexada) com os links das fontes; valores, estimativas e veredictos ficam ocultos. Após 30 dias com fontes em bom estado, ela é aposentada; quando duas fontes voltarem a concordar, ela retorna. |
retired | Retida por 30 dias com fontes em bom estado. A página permanece como um marco de remoção (não indexada) e aponta para uma substituta quando houver. |
Teto de velocidade
Gerar um token lê os pesos ativos e o KV cache uma vez, portanto os tokens por segundo não podem exceder a largura de banda dividida pelos bytes lidos por token. Para modelos de mistura de especialistas, conta-se apenas a parcela de especialistas em uso, a partir da tabela de tensores do GGUF. É um limite superior teórico; nenhuma velocidade é informada quando a largura de banda não é confirmada por duas fontes.
Benchmarks públicos
Velocidades medidas do llama.cpp, publicadas pelo projeto llama.cpp em seu repositório (llama-bench, no commit fixado do llama.cpp). As máquinas citadas nestas notas (DGX Spark, Apple M2 Ultra) não recebem vereditos neste site nesta versão; os números mostram como a velocidade medida se compara com o limite superior de largura de banda e como ela cai conforme o contexto aumenta: llama.cpp benches/ (5aeac37a)
| Máquina | Modelo (repositório GGUF) | Backend | Teste | Tokens por segundo |
|---|---|---|---|---|
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | processamento do prompt, 2048 tokens | 4.505,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | geração, 32 tokens | 83,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 2.689,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | geração, 32 tokens · após 32.768 tokens de contexto | 61,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | processamento do prompt, 2048 tokens | 2.443,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | geração, 32 tokens | 58,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 1.567,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | geração, 32 tokens · após 32.768 tokens de contexto | 42,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | processamento do prompt, 2048 tokens | 2.987,0 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | geração, 32 tokens | 61,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 1.348,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | geração, 32 tokens · após 32.768 tokens de contexto | 30,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | processamento do prompt, 2048 tokens | 2.250,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | geração, 32 tokens | 29,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 1.471,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | geração, 32 tokens · após 32.768 tokens de contexto | 22,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | processamento do prompt, 2048 tokens | 5.948,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | geração, 32 tokens | 81,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 5.023,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | geração, 32 tokens · após 32.768 tokens de contexto | 62,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | processamento do prompt, 2048 tokens | 2.364,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | geração, 32 tokens | 48,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 567,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | geração, 32 tokens · após 32.768 tokens de contexto | 32,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | processamento do prompt, 2048 tokens | 768,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | geração, 32 tokens | 19,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 724,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | geração, 32 tokens · após 32.768 tokens de contexto | 19,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | processamento do prompt, 2048 tokens | 2.761,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | geração, 32 tokens | 52,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 2.041,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | geração, 32 tokens · após 32.768 tokens de contexto | 46,7 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens | 2.713,4 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | geração, 32 tokens | 130,0 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 1.122,6 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | geração, 32 tokens · após 32.768 tokens de contexto | 98,3 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens | 1.648,7 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | geração, 32 tokens | 85,6 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 721,1 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | geração, 32 tokens · após 32.768 tokens de contexto | 65,5 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens | 2.453,1 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | geração, 32 tokens | 79,0 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 431,3 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | geração, 32 tokens · após 32.768 tokens de contexto | 45,3 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens | 1.565,9 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | geração, 32 tokens | 79,7 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 612,2 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | geração, 32 tokens · após 32.768 tokens de contexto | 56,8 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens | 2.923,6 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | geração, 32 tokens | 134,3 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 2.129,2 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | geração, 32 tokens · após 32.768 tokens de contexto | 113,1 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens | 1.629,3 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | geração, 32 tokens | 59,6 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | processamento do prompt, 2048 tokens · após 32.768 tokens de contexto | 151,4 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | geração, 32 tokens · após 32.768 tokens de contexto | 21,8 |
Macs e outros computadores com memória unificada
Esses computadores permitem que a GPU use apenas parte da memória, e as fontes abertas para eles não citam referências por valor. Eles não são publicados nesta versão; os perfis de execução para eles são mantidos para quando as fontes permitirem.
Unidades
As quantidades de memória calculadas aqui estão em GiB (1.073.741.824 bytes). Os "24 GB" de memória de vídeo dos fabricantes de GPU são 24 GiB. O Hugging Face mostra tamanhos de arquivo em GB decimais, então um arquivo de 5,03 GB aparece aqui como 4,68 GiB. A largura de banda está em GB/s (10⁹ bytes por segundo).
Atualizações
O Hugging Face é verificado a cada 6 horas em busca de novos modelos e novos arquivos GGUF; as especificações de GPUs são reverificadas diariamente.