{"adoption": {"forks": 333, "observed_at": "2026-08-28T04:07:37.259797+00:00", "stars": 2998}, "canonical_url": "https://ross.abutalabs.com/products/dualpipe", "card": {"archived": false, "artifact_type": "library", "description": "A bidirectional pipeline parallelism algorithm for computation-communication overlap in DeepSeek V3/R1 training.", "domain": ["large-language-models", "deep-learning", "microservices", "gpu-computing"], "enriched": true, "function": ["llm-training", "machine-learning", "gpu-computing"], "health_score": 57, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["deepseek-ai/DualPipe"], "name": "deepseek-ai/DualPipe", "platform": ["python"], "pushed_at": "2026-01-14T06:34:59+00:00", "repo": "deepseek-ai/DualPipe", "stars": 2998, "tags": ["pipeline-parallelism", "distributed-training", "pytorch", "computation-communication-overlap", "deepseek", "gpu", "linux"], "topics": [], "urls": [], "use_cases": ["reduce pipeline bubbles when training large language models", "overlap computation and communication in distributed PyTorch training", "implement bidirectional pipeline parallel schedules for MoE models", "compare pipeline parallelism strategies like 1F1B, ZB1P, and DualPipe", "train DeepSeek V3/R1 style models efficiently across many GPUs"], "what_it_is": "DualPipe is a Python library implementing a bidirectional pipeline parallelism algorithm that overlaps forward and backward computation with communication to reduce pipeline bubbles in large model training. It also includes DualPipeV, a V-shaped schedule variant, and was introduced in the DeepSeek-V3 technical report.", "when_to_avoid": ["you only train small models where pipeline bubbles are negligible", "you need a turnkey training framework rather than a scheduling algorithm", "your stack does not support PyTorch 2.0 or multi-GPU pipeline parallelism"], "when_to_choose": ["you are training very large models with pipeline parallelism and communication is a bottleneck", "you use PyTorch 2.0+ and can implement a custom overlapped_forward_backward for your module", "you want to reproduce DeepSeek-style training efficiency"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dualpipe", "repo": "deepseek-ai/DualPipe", "role": "main", "score": 48}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.259797+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:47:25.820218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9bf8b690a07bc9fbd7b2233176db5c2db09a82a04a430df4884cd2eac8dcfce", "fetched_at": "2026-08-28T04:07:37.259797+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deepseek-ai/DualPipe"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 62, "longevity": 39, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 553, "days_push": 231, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 48, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}