gitwtfhub

wtf is byteps?

bytedance/byteps — explained in plain English

Analysis updated 2026-07-03

3,717PythonAudience · researcherComplexity · 4/5LicenseSetup · hard

TL;DR

ByteDance's open-source framework for training large AI models across many cloud GPUs, achieving about 90% scaling efficiency versus Horovod's 70% by redesigning inter-machine communication for cloud infrastructure.

Mindmap

mindmap
  root((BytePS))
    Problem solved
      Slow cloud training
      Poor GPU scaling
    Key advantages
      Cloud-first design
      90% scaling efficiency
    Compatibility
      PyTorch
      TensorFlow
      Keras and MXNet
    Migration
      Change one import
      Replace function prefix
    Limitations
      GPU only
      No fault tolerance yet

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Speed up distributed AI model training across many cloud GPUs by replacing Horovod with BytePS for better network efficiency.

REASON 2

Train a large language model across 256 GPUs and achieve roughly 90% scaling efficiency compared to Horovod's 70%.

REASON 3

Migrate an existing Horovod training script to BytePS by changing one import and replacing function call prefixes.

What's in the stack?

PythonPyTorchTensorFlowKerasMXNetCUDA

How it stacks up

bytedance/bytepsatlanhq/camelotrobbyant/lingbot-world
Stars3,7173,7163,718
LanguagePythonPythonPython
Setup difficultyhardeasyhard
Complexity4/52/55/5
Audienceresearcherdataresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1day+

Requires a multi-GPU cluster, CPU-only training is not supported, fault tolerance is not yet implemented.

Open-source, check the repository for the specific license, ByteDance projects typically use Apache 2.0, allowing commercial use with attribution.

Wtf does this do

BytePS is a framework for training large AI models across many machines at the same time. Training modern AI models, especially large language models or image recognition systems, requires splitting the work across dozens or hundreds of graphics cards. BytePS handles the coordination between all those machines so that the training job runs as fast as possible. The core problem BytePS solves is communication. When many machines are each doing a piece of the training work, they need to constantly share updates with each other. The standard approach used by older tools was borrowed from supercomputing and works well when all machines are identical and the cluster is dedicated to a single job. Cloud environments are different: machines may have varying specs, they share infrastructure with other workloads, and network bandwidth is a precious resource. BytePS was redesigned from the ground up for this cloud-first reality. The result is a meaningful speed improvement. On a test involving a well-known language model trained across 256 graphics cards, BytePS achieved roughly 90% scaling efficiency, meaning each additional machine contributed close to its full potential. A competing tool called Horovod reached only about 70% efficiency on the same task. In cases where the network between machines is slower, BytePS can be twice as fast as the alternative. ByteDance, the company behind TikTok, built BytePS for its own internal AI workloads and then open-sourced it. It works with the most common AI training libraries: TensorFlow, PyTorch, Keras, and MXNet. Switching from Horovod to BytePS is intentionally simple: in most cases you change one import line and replace a prefix in your function calls. BytePS currently requires graphics cards and does not support training on regular processors alone. Features like fault tolerance (recovering gracefully if a machine crashes mid-training) are noted as not yet implemented but are on the project's roadmap.

Yoink these prompts

Prompt 1
I want to switch my PyTorch Horovod training script to BytePS. Show me exactly which import to change and which function prefixes to replace so I can drop it in with minimal code changes.
Prompt 2
Help me set up a BytePS distributed training job on an AWS cluster with 8 GPU instances, including how to configure the scheduler and server processes for optimal communication.
Prompt 3
My BytePS job scales poorly beyond 32 GPUs. Walk me through profiling the inter-machine communication bottleneck and tuning the bandwidth and partition parameters.

Frequently asked questions

wtf is byteps?

ByteDance's open-source framework for training large AI models across many cloud GPUs, achieving about 90% scaling efficiency versus Horovod's 70% by redesigning inter-machine communication for cloud infrastructure.

What language is byteps written in?

Mainly Python. The stack also includes Python, PyTorch, TensorFlow.

What license does byteps use?

Open-source, check the repository for the specific license, ByteDance projects typically use Apache 2.0, allowing commercial use with attribution.

How hard is byteps to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is byteps for?

Mainly researcher.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.