GSO: Challenging Software Optimization Tasks for Evaluating SWE-Agents
GSO (Global Software Optimization) is a benchmark for evaluating language models' capabilities in developing high-performance software. We present 100+ challenging optimization tasks across 10 codebases spanning diverse domains and programming languages. Each task provides a codebase and performance test as a precise specification, with agents required to optmize the codebase and measured against expert developer commits.
📰 News
- [Feb 2, 2026]: Released integrations with frameworks like Harbor and other scaffolds: gso-bench/scaffolds.
- [Dec 23, 2025]: Released evaluation logs and transcripts w/ Docent support: gso-bench/gso-experiments.
- [Nov 3, 2025]: Released GSO's HackDetector that catches models reward hacking: GSO Blog.
- [May 30, 2025]: 🤗 GSO dataset is now available on HuggingFace! Access it at gso-bench/gso.
- [May 30, 2025]: Prebuilt docker images for GSO tasks are now available on Docker Hub.
- [May 30, 2025]: Initial release of the GSO benchmark: gso-bench.github.io
👋 Overview
GSO evaluates language models on software performance optimization. Each task provides:
- A codebase with a specific performance bottleneck
- A performance test as a precise specification
- An agent must generate a patch that improves runtime efficiency
- Success is measured against expert developer optimizations
To access GSO, copy and run the following code:
from datasets import load_dataset
gso = load_dataset('gso-bench/gso', split='test')
🚀 Setup
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
git clone --recursive https://github.com/gso-bench/gso.git
cd gso && uv venv && source .venv/bin/activate
uv sync
(Additional) Setup HuggingFace token:
export HF_TOKEN="huggingface_token"
💽 Usage
Evaluation Harness
- Building Dockers for GSO tasks:
docker login
uv run src/gso/harness/prepare_images.py \
--push_to_registry True \
--dockerhub_username <dockerhub_username> \
--dockerhub_repo <dockerhub_repo>
- Running Evaluations:
uv run src/gso/harness/opt_at_k.py \
--prediction_paths <prediction_path> \
--timeout 3600 \
--run_id <run_id> \
--k 1 \
--model <modelname>
For detailed instructions and options, see the Harness documentation.
GSO Collection Framework
The collection framework enables you to create your own GSO tasks through a four-step pipeline:
- Commit Extraction & Filtering: Extract performance-related commits using LLMs
- API Identification: Identify affected high-level APIs for each commit
- Performance Test Generation: Generate tests for API-Commit pairs
- Test Execution: Execute tests to identify performance improvements
For detailed instructions and usage, see the Collection Framework documentation.
⬇️ Artifacts
| Datasets | Tools | Dockers |
|---|---|---|
| 💿 GSO | 🔧 Evaluation Harness | 🐳 Docker Hub |
| 🔧 Collection Framework |
💫 Contributions
We welcome contributions from the broader NLP, Machine Learning, and Software Engineering research communities! Please file a new pull request or issue and fill in the corresponding templates accordingly.
✍️ Citation & license
MIT license. Check LICENSE file.
Metadata
Release files for gsobench 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gsobench-0.1.9.tar.gz | 250.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gsobench-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 394.5 kB
Release files / gsobench-0.1.9.tar.gz
| Download URL | gsobench-0.1.9.tar.gz |
|---|---|
| Size | 250.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f436feaf14519bdc89bf1374efddedc2dfa632ae5321a435b6ec44c0517e9541
|
|
BLAKE2b-256 checksum How to use checksums |
02c12ca0455cbf90c3c372887fc1ab3a71a16a1505bf2aa51dcb9712dee5c1a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / gsobench-0.1.9-py3-none-any.whl
| Download URL | gsobench-0.1.9-py3-none-any.whl |
|---|---|
| Size | 143.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0595e0473466030557558ecfc72438b65b4b7d3f228df99fa6de6d942f2382ef
|
|
BLAKE2b-256 checksum How to use checksums |
59f1cda4f78ce071a7ee17af63143dfed35a3d17927233f9a0da0cd2d9176379
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log