commitbench

← all comparisons

GPT-5.5 vs GLM-5.2 for coding

GPT-5.5 ranks higher on real GitHub commits. Each agent gets a repository at a past commit and a description of the next change, edits the code on its own, and is graded from 0 to 10. Pick any two models below to switch the comparison.

vs
BT rating · GPT-5.5
27elo
BT rating · GLM-5.2
-84elo
Per-task wins
88246
Tasks · repos
132 · 4
Edge
GPT-5.5

What the numbers say

Over 132 benchmarked tasks from 4 public repositories, GPT-5.5 has a Bradley-Terry rating of 27 and GLM-5.2 -84 (Elo-scaled, with the human commit anchored at 0). On the 118 tasks where both ran, GPT-5.5 won more often (88 to 6, with 24 tied). On cost, GPT-5.5 runs at about $102.265 and GLM-5.2 at about $45.754 per run.

Head-to-head, per task (rubric scores, 0–10)

RepoTaskGPT-5.5GLM-5.2
pooled: unsloth-zoo + vllm + llama.cpp[DeepEP V2] Fill invalid recv_topk_idx with -1 (#46432) · vllm10.00.0
vllm-project/vllm[DeepEP V2] Fill invalid recv_topk_idx with -1 (#46432) · vllm10.00.0
ggml-org/llama.cppmodel : support granite multilingual embeddings R2 (ibm-granite/granite-embedding-{97,311}m-multilingual-r2) (#22716) · conversion9.00.0
ggml-org/llama.cppconvert : minor fixes for numpy 2.x (#23571) · examples9.00.0
pooled: unsloth-zoo + vllm + llama.cppmodel : support granite multilingual embeddings R2 (ibm-granite/granite-embedding-{97,311}m-multilingual-r2) (#22716) · conversion9.00.0
pooled: unsloth-zoo + vllm + llama.cppconvert : minor fixes for numpy 2.x (#23571) · examples9.00.0
ggml-org/llama.cppcuda : fix KQ mask offset integer overflow in fattn MMA kernel (#23610) · ggml10.01.5
pooled: unsloth-zoo + vllm + llama.cppcuda : fix KQ mask offset integer overflow in fattn MMA kernel (#23610) · ggml10.01.5
pooled: unsloth-zoo + vllm + llama.cpp[Model]Fix MiniMaxM2ForCausalLM perf regression (#45935) · tests8.20.0
vllm-project/vllm[Model]Fix MiniMaxM2ForCausalLM perf regression (#45935) · tests8.20.0
pooled: unsloth-zoo + vllm + llama.cpp[Kernel] Add swap AB optimization to fused_moe_kernel (#36559) · vllm10.02.0
pooled: unsloth-zoo + vllm + llama.cpp[Bugfix][Model Runner V2][Spec Decode] Fix int32 offset overflow in sampler kernels (#46560) · tests9.01.0
vllm-project/vllm[Kernel] Add swap AB optimization to fused_moe_kernel (#36559) · vllm10.02.0
vllm-project/vllm[Bugfix][Model Runner V2][Spec Decode] Fix int32 offset overflow in sampler kernels (#46560) · tests9.01.0
pooled: unsloth-zoo + vllm + llama.cppfix(moe_wna16): access tp_size via moe_config for RoutedExperts compatibility (#45404) · vllm9.32.0
vllm-project/vllmfix(moe_wna16): access tp_size via moe_config for RoutedExperts compatibility (#45404) · vllm9.32.0
pooled: unsloth-zoo + vllm + llama.cppfix(moe-fp8): inline weight/quant-state lookup; narrow ImportError scope · unsloth_zoo9.03.0
unslothai/unsloth-zoofix(moe-fp8): inline weight/quant-state lookup; narrow ImportError scope · unsloth_zoo9.03.0
pooled: unsloth-zoo + vllm + llama.cppAuto-install fused lm_head + cross_entropy forward across transformers · tests9.84.0
unslothai/unsloth-zooAuto-install fused lm_head + cross_entropy forward across transformers · tests9.84.0
pooled: unsloth-zoo + vllm + llama.cpp[AMD][OCP MX][CI] Fix tests to not dispatch on `UNFUSED_TRITON` backend on MI300, improve w_mxfp4_a_fp8 emulation support (#46142) · tests10.04.5
pooled: unsloth-zoo + vllm + llama.cppHumming support for 2/3/5/6/7-bit pack-quantized weight-only inference (#46389) · vllm10.04.5
vllm-project/vllm[AMD][OCP MX][CI] Fix tests to not dispatch on `UNFUSED_TRITON` backend on MI300, improve w_mxfp4_a_fp8 emulation support (#46142) · tests10.04.5
vllm-project/vllmHumming support for 2/3/5/6/7-bit pack-quantized weight-only inference (#46389) · vllm10.04.5
pooled: unsloth-zoo + vllm + llama.cppadd fixes for moe · unsloth_zoo10.05.2
unslothai/unsloth-zooadd fixes for moe · unsloth_zoo10.05.2
pooled: unsloth-zoo + vllm + llama.cppFix gptoss 4bit (#524) · unsloth_zoo6.52.0
unslothai/unsloth-zooFix gptoss 4bit (#524) · unsloth_zoo6.52.0
pooled: unsloth-zoo + vllm + llama.cpp[Bugfix] Default tie_weights to sharing the weight (fix tied quantized embeddings, e.g. ModelOpt Gemma4) (#45544) · vllm5.81.5
vllm-project/vllm[Bugfix] Default tie_weights to sharing the weight (fix tied quantized embeddings, e.g. ModelOpt Gemma4) (#45544) · vllm5.81.5
pooled: unsloth-zoo + vllm + llama.cppFix dense vLLM state dict parity · tests6.52.3
pooled: unsloth-zoo + vllm + llama.cpp[Perf][1/N] Expand Triton kernel warmup coverage, DSv4 (#46634) · vllm9.55.3
unslothai/unsloth-zooFix dense vLLM state dict parity · tests6.52.3
vllm-project/vllm[Perf][1/N] Expand Triton kernel warmup coverage, DSv4 (#46634) · vllm9.55.3
ggml-org/llama.cppsycl : support MUL_MAT and OUT_PROD with Q1_0 (#24721) · ggml9.75.5
pooled: unsloth-zoo + vllm + llama.cppsycl : support MUL_MAT and OUT_PROD with Q1_0 (#24721) · ggml9.75.5
pooled: unsloth-zoo + vllm + llama.cppCapture outputs fixes for transformers v5 (#713) · tests9.05.0
unslothai/unsloth-zooCapture outputs fixes for transformers v5 (#713) · tests9.05.0
pooled: unsloth-zoo + vllm + llama.cppperf(moe-fp8): batched 3D dequant + FP8Experts dispatcher + Trainer guard · unsloth_zoo9.55.9
unslothai/unsloth-zooperf(moe-fp8): batched 3D dequant + FP8Experts dispatcher + Trainer guard · unsloth_zoo9.55.9
ggml-org/llama.cppggml-webgpu: support non-square subgroup matrix configs for Intel GPUs (#21669) · ggml8.55.0
pooled: unsloth-zoo + vllm + llama.cppfix(moe): loud-fail on silent fallbacks in MoE merge + FP8 forward paths · unsloth_zoo10.06.5
pooled: unsloth-zoo + vllm + llama.cppFix review findings for PR #3: Gemma4 LoRA/BnB patches, GDN extraction, finalize_huggingface_model · unsloth_zoo9.56.0
pooled: unsloth-zoo + vllm + llama.cppggml-webgpu: support non-square subgroup matrix configs for Intel GPUs (#21669) · ggml8.55.0
unslothai/unsloth-zoofix(moe): loud-fail on silent fallbacks in MoE merge + FP8 forward paths · unsloth_zoo10.06.5
unslothai/unsloth-zooFix review findings for PR #3: Gemma4 LoRA/BnB patches, GDN extraction, finalize_huggingface_model · unsloth_zoo9.56.0
ggml-org/llama.cppcuda: Q1_0 initial backend (#21629) · ggml9.76.3
pooled: unsloth-zoo + vllm + llama.cppcuda: Q1_0 initial backend (#21629) · ggml9.76.3
pooled: unsloth-zoo + vllm + llama.cpp[XPU][MoE] Add WNA16 oracle backend for GPTQ sym-int4 (xpu_fused_moe) (#41426) · vllm9.35.9
vllm-project/vllm[XPU][MoE] Add WNA16 oracle backend for GPTQ sym-int4 (xpu_fused_moe) (#41426) · vllm9.35.9
ggml-org/llama.cpp[SYCL] Add BF16 support to GET_ROWS operation (#21391) · ggml10.07.3
pooled: unsloth-zoo + vllm + llama.cpp[SYCL] Add BF16 support to GET_ROWS operation (#21391) · ggml10.07.3
pooled: unsloth-zoo + vllm + llama.cpp[Bugfix] Fix corrupt outputs in MoE FP8 LoRA responses and MoE base model responses when LoRAs are loaded (#42120) · tests3.50.8
vllm-project/vllm[Bugfix] Fix corrupt outputs in MoE FP8 LoRA responses and MoE base model responses when LoRAs are loaded (#42120) · tests3.50.8
ggml-org/llama.cppggml: `gguf_init_from_callback` and `gguf_init_from_buffer` (#22341) · ggml10.07.4
pooled: unsloth-zoo + vllm + llama.cppggml: `gguf_init_from_callback` and `gguf_init_from_buffer` (#22341) · ggml10.07.4
ggml-org/llama.cppggml: support concat for scalar types at cuda backend (#24011) · ggml10.07.5
ggml-org/llama.cpp[SYCL] support bf16 on bin_bcast OP and unary OPs (#24838) · ggml10.07.5
pooled: unsloth-zoo + vllm + llama.cpp[DSv4 Perf] DSv4 flashinfer sparse index cache for metadata, 2%~4% TTFT improvement (#45863) · tests10.07.5
pooled: unsloth-zoo + vllm + llama.cppnixl_ep: Skip post-receive quantization for NVFP4 (#45606) · vllm9.06.5
pooled: unsloth-zoo + vllm + llama.cppggml: support concat for scalar types at cuda backend (#24011) · ggml10.07.5
pooled: unsloth-zoo + vllm + llama.cpp[SYCL] support bf16 on bin_bcast OP and unary OPs (#24838) · ggml10.07.5
vllm-project/vllm[DSv4 Perf] DSv4 flashinfer sparse index cache for metadata, 2%~4% TTFT improvement (#45863) · tests10.07.5
vllm-project/vllmnixl_ep: Skip post-receive quantization for NVFP4 (#45606) · vllm9.06.5
ggml-org/llama.cppvulkan: Switch MUL_MAT_VEC to 4 K per iteration for F16/32 (#22887) · ggml10.08.0
pooled: unsloth-zoo + vllm + llama.cppvulkan: Switch MUL_MAT_VEC to 4 K per iteration for F16/32 (#22887) · ggml10.08.0
pooled: unsloth-zoo + vllm + llama.cppHarden fused-forward AST rewriter and adapter · unsloth_zoo7.59.2
unslothai/unsloth-zooHarden fused-forward AST rewriter and adapter · unsloth_zoo7.59.2
ggml-org/llama.cppsycl : fix failed ut cases of norm (#25044) · ggml10.08.5
ggml-org/llama.cppggml : fix ARM NEON nvfp4 dot product on non-dotprod targets (#21559) · ggml10.08.5
pooled: unsloth-zoo + vllm + llama.cppfix(peft-param-wrapper): handle merge_and_unload for 4-bit MoE experts (B4) · unsloth_zoo10.08.5
pooled: unsloth-zoo + vllm + llama.cppsycl : fix failed ut cases of norm (#25044) · ggml10.08.5
pooled: unsloth-zoo + vllm + llama.cppggml : fix ARM NEON nvfp4 dot product on non-dotprod targets (#21559) · ggml10.08.5
unslothai/unsloth-zoofix(peft-param-wrapper): handle merge_and_unload for 4-bit MoE experts (B4) · unsloth_zoo10.08.5
pooled: unsloth-zoo + vllm + llama.cppfeat(mlx): add save_method to save_pretrained_merged · unsloth_zoo10.08.6
unslothai/unsloth-zoofeat(mlx): add save_method to save_pretrained_merged · unsloth_zoo10.08.6
pooled: unsloth-zoo + vllm + llama.cppfix(moe-quant): gate v5-only patches · tests10.08.7
unslothai/unsloth-zoofix(moe-quant): gate v5-only patches · tests10.08.7
ggml-org/llama.cppdflash: refactor draft model conversion (#25110) · conversion10.09.0
pooled: unsloth-zoo + vllm + llama.cppfix(mlx): repair stub injection on Apple Silicon (3 sub-bugs) · unsloth_zoo10.09.0
pooled: unsloth-zoo + vllm + llama.cppFp8 compressed (#358) · unsloth_zoo10.09.0
pooled: unsloth-zoo + vllm + llama.cpp[Bugfix] Fix minimax_qk_norm_fusion (#44983) · vllm5.54.5
pooled: unsloth-zoo + vllm + llama.cppdflash: refactor draft model conversion (#25110) · conversion10.09.0
unslothai/unsloth-zoofix(mlx): repair stub injection on Apple Silicon (3 sub-bugs) · unsloth_zoo10.09.0
unslothai/unsloth-zooFp8 compressed (#358) · unsloth_zoo10.09.0
vllm-project/vllm[Bugfix] Fix minimax_qk_norm_fusion (#44983) · vllm5.54.5
pooled: unsloth-zoo + vllm + llama.cppfix(moe-bnb): dequant Params4bit experts in transformers v5 grouped/batched MoE forward (B6) · unsloth_zoo10.09.5
pooled: unsloth-zoo + vllm + llama.cppFix ModuleNotFoundError when loading gpt-oss models without triton_kernels (#4088) (#539) · unsloth_zoo10.09.5
pooled: unsloth-zoo + vllm + llama.cpp[XPU] Fix Triton attn fp8/bf16 check failing (#45758) · vllm9.510.0
pooled: unsloth-zoo + vllm + llama.cpp[Kernel][Bugfix] Fix INT8 per-token-head KV cache rounding in Triton reshape-and-cache (#45361) · tests9.510.0
unslothai/unsloth-zoofix(moe-bnb): dequant Params4bit experts in transformers v5 grouped/batched MoE forward (B6) · unsloth_zoo10.09.5
unslothai/unsloth-zooFix ModuleNotFoundError when loading gpt-oss models without triton_kernels (#4088) (#539) · unsloth_zoo10.09.5
vllm-project/vllm[XPU] Fix Triton attn fp8/bf16 check failing (#45758) · vllm9.510.0
vllm-project/vllm[Kernel][Bugfix] Fix INT8 per-token-head KV cache rounding in Triton reshape-and-cache (#45361) · tests9.510.0
ggml-org/llama.cpp[SYCL] Add Q8_0 reorder optimization (~3x tg speedup on Intel Arc) (#21527) · ggml10.010.0
ggml-org/llama.cppCUDA: Various fixes to `cpy.cu` (#25000) · ggml10.010.0
ggml-org/llama.cppmetal: Q1_0 backend (#21528) · ggml10.010.0
ggml-org/llama.cppggml: vectorize ggml_vec_dot_q4_1_q8_1 with WASM SIMD128 (#22209) · ggml10.010.0
ggml-org/llama.cppfix: GLM-DSA crash in llama-tokenize when using vocab_only (#22102) · src10.010.0
ggml-org/llama.cppmetal : fix FA support logic (#21898) · ggml8.58.5
pooled: unsloth-zoo + vllm + llama.cppUse torch.Tensor.reshape for non-contiguous tensor in ce loss function (#591) · unsloth_zoo10.010.0
pooled: unsloth-zoo + vllm + llama.cpp[Bugfix] Restrict FlashInfer cuDNN FP8 ViT attention gate to Blackwell (SM 100) (#45251) · vllm10.010.0
pooled: unsloth-zoo + vllm + llama.cpp[Bugfix][Quantization] Fix W8A8 int-quantized scheme selection regression (#46860) · tests10.010.0
pooled: unsloth-zoo + vllm + llama.cpp[Kernel] Enable TritonW4A16LinearKernel as CUDA fallback for non-Marlin-aligned W4A16 shapes (#43731) · vllm10.010.0
pooled: unsloth-zoo + vllm + llama.cppAdd weights padding for fp8 per-block online quantization (#44763) · vllm10.010.0
pooled: unsloth-zoo + vllm + llama.cpp[Perf] Fix dsv3_router_gemm heuristic (#44217) · vllm10.010.0
pooled: unsloth-zoo + vllm + llama.cpp[SYCL] Add Q8_0 reorder optimization (~3x tg speedup on Intel Arc) (#21527) · ggml10.010.0
pooled: unsloth-zoo + vllm + llama.cppCUDA: Various fixes to `cpy.cu` (#25000) · ggml10.010.0
pooled: unsloth-zoo + vllm + llama.cppmetal: Q1_0 backend (#21528) · ggml10.010.0
pooled: unsloth-zoo + vllm + llama.cppggml: vectorize ggml_vec_dot_q4_1_q8_1 with WASM SIMD128 (#22209) · ggml10.010.0
pooled: unsloth-zoo + vllm + llama.cppfix: GLM-DSA crash in llama-tokenize when using vocab_only (#22102) · src10.010.0
pooled: unsloth-zoo + vllm + llama.cppmetal : fix FA support logic (#21898) · ggml8.58.5
unslothai/unsloth-zooUse torch.Tensor.reshape for non-contiguous tensor in ce loss function (#591) · unsloth_zoo10.010.0
vllm-project/vllm[Bugfix] Restrict FlashInfer cuDNN FP8 ViT attention gate to Blackwell (SM 100) (#45251) · vllm10.010.0
vllm-project/vllm[Bugfix][Quantization] Fix W8A8 int-quantized scheme selection regression (#46860) · tests10.010.0
vllm-project/vllm[Kernel] Enable TritonW4A16LinearKernel as CUDA fallback for non-Marlin-aligned W4A16 shapes (#43731) · vllm10.010.0
vllm-project/vllmAdd weights padding for fp8 per-block online quantization (#44763) · vllm10.010.0
vllm-project/vllm[Perf] Fix dsv3_router_gemm heuristic (#44217) · vllm10.010.0
ggml-org/llama.cppmodel: mistral small 4 support (#20649) · convert_hf_to_gguf.py-9.7
ggml-org/llama.cppCUDA & CPU: support F32 kernel type for `CONV_TRANSPOSE_2D` (#17094) · ggml-10.0
ggml-org/llama.cppsycl: support reordered Q4_K/Q5_K/Q6_K MoE MUL_MAT_ID (#24452) · ggml9.7-
ggml-org/llama.cppsycl : fix the failed UT cases of conv_3d (#24900) · ggml10.0-
pooled: unsloth-zoo + vllm + llama.cppFix LoRA scaling count mismatch on merge for Qwen2.5-VL exports (#2966) (#806) · tests8.3-
pooled: unsloth-zoo + vllm + llama.cpp[Bugfix] Support non-power-of-2 top_k in legacy triton_kernels routing (#46406) · vllm10.0-
pooled: unsloth-zoo + vllm + llama.cpp[Bugfix][Kernel] Fix mHC fused-RMSNorm big-fuse miscompile for hidden_size != 4096 (#44692) · vllm10.0-
pooled: unsloth-zoo + vllm + llama.cppmodel: mistral small 4 support (#20649) · convert_hf_to_gguf.py-9.7
pooled: unsloth-zoo + vllm + llama.cppCUDA & CPU: support F32 kernel type for `CONV_TRANSPOSE_2D` (#17094) · ggml-10.0
pooled: unsloth-zoo + vllm + llama.cppsycl: support reordered Q4_K/Q5_K/Q6_K MoE MUL_MAT_ID (#24452) · ggml9.7-
pooled: unsloth-zoo + vllm + llama.cppsycl : fix the failed UT cases of conv_3d (#24900) · ggml10.0-
unslothai/unsloth-zooFix LoRA scaling count mismatch on merge for Qwen2.5-VL exports (#2966) (#806) · tests8.3-
vllm-project/vllm[Bugfix] Support non-power-of-2 top_k in legacy triton_kernels routing (#46406) · vllm10.0-
vllm-project/vllm[Bugfix][Kernel] Fix mHC fused-RMSNorm big-fuse miscompile for hidden_size != 4096 (#44692) · vllm10.0-

Scores run from 0 to 10. Head-to-head counts only the 118 tasks where both models ran. Bold marks the winner on that task.

By area of the codebase

AreaTasksGPT-5.5GLM-5.2
ggml369.87.7
vllm329.25.9
unsloth_zoo289.47.3
tests248.64.9
conversion49.54.5
examples29.00.0
src210.010.0
convert_hf_to_gguf.py2-9.7

How the benchmark works

A task here is a single commit. CommitBench checks out the repository one commit before the change, writes a short description of the work from the diff, and gives the agent nothing but that description and the codebase. The agent navigates and edits the files itself, the same way it would on a real ticket.

Every agent's change is then compared head-to-head against every other one — and against the human commit — by a blind judge that never sees which model wrote which diff. Those pairwise wins become a Bradley-Terry rating (Elo-scaled, with the human commit anchored at 0), which is the ranking shown here. A fixed rubric still scores each change for the per-task detail. Cost and speed come from each run's own token and timing reports, priced at one consistent rate so the numbers line up across agents.

Common questions

Which is better for coding, GPT-5.5 or GLM-5.2?

GPT-5.5 ranks higher overall across 132 tasks from 4 public repositories. On the pairwise Bradley-Terry rating (Elo-scaled, anchored on the human commit at 0), GPT-5.5 sits at 27 and GLM-5.2 at -84. GPT-5.5 costs about $102.265 per run, GLM-5.2 about $45.754 per run.

How is the ranking calculated?

Each task is a real commit from a public repository. The agent gets the code at the commit before the change and a written description of the work, then edits the files itself. Every agent's diff is then compared head-to-head against every other one — and against the human commit — by a blind judge that never sees which model produced which diff. Those pairwise wins and losses become a Bradley-Terry rating (Elo-scaled), so the ranking reflects which changes actually win comparisons, not whether they match the original wording.

Could the agents have seen the answers already?

Two things limit that. The task description is rewritten from the change rather than copied from the commit message, and the grader is given the rubric instead of the original answer. Building tasks from recent commits also reduces how much a model could have trained on the result.

Can I compare GPT-5.5 and GLM-5.2 on my own code?

Yes. Point CommitBench at your repository and it builds the same kind of tasks from your own commit history, so the ranking reflects the code you actually work on.

Other comparisons

Claude Opus vs Claude SonnetClaude Opus vs GPT-5.5Claude Opus vs GLM-5.2Claude Sonnet vs GPT-5.5Claude Sonnet vs GLM-5.2
Run this on your codebase

Public repos give the general picture. Benchmark GPT-5.5 against GLM-5.2 on your own commit history to see which one does better on the code you actually ship.

Benchmark your repo →