Skip to content

Commit cd04223

Browse files
author
Felipe Mello
committed
Merge branch 'main' of https://github.com/meta-pytorch/forge into timestamp_logging_diff4
2 parents 3eedb8b + 8b753f8 commit cd04223

File tree

18 files changed

+1114
-190
lines changed

18 files changed

+1114
-190
lines changed
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# These requirements were generated by running steps 1-3 of scripts/build_wheels.sh
2+
# then running pip freeze and manually removing the vllm dependency.
3+
# The intention of this file is to use these known requirements for a fixed
4+
# vLLM build to supplement a vLLM install from download.pytorch.org without
5+
# resorting to --extra-index-url https://download.pytorch.org/whl/nightly to find
6+
# vLLM dependencies (as this results in a ResolutionTooDeep error from pip).
7+
# See the file .github/workflows/gpu_test.yaml for an E2E forge installation using this approach.
8+
# TODO: this should be done way less hackily
9+
aiohappyeyeballs==2.6.1
10+
aiohttp==3.13.1
11+
aiosignal==1.4.0
12+
annotated-types==0.7.0
13+
anyio==4.11.0
14+
astor==0.8.1
15+
async-timeout==5.0.1
16+
attrs==25.4.0
17+
blake3==1.0.8
18+
cachetools==6.2.1
19+
cbor2==5.7.0
20+
certifi==2025.10.5
21+
cffi==2.0.0
22+
charset-normalizer==3.4.4
23+
click==8.2.1
24+
cloudpickle==3.1.1
25+
cmake==4.1.0
26+
compressed-tensors==0.10.2
27+
cupy-cuda12x==13.6.0
28+
depyf==0.19.0
29+
dill==0.4.0
30+
diskcache==5.6.3
31+
distro==1.9.0
32+
dnspython==2.8.0
33+
einops==0.8.1
34+
email-validator==2.3.0
35+
exceptiongroup==1.3.0
36+
fastapi==0.119.0
37+
fastapi-cli==0.0.13
38+
fastapi-cloud-cli==0.3.1
39+
fastrlock==0.8.3
40+
filelock==3.19.1
41+
frozenlist==1.8.0
42+
fsspec==2025.9.0
43+
gguf==0.17.1
44+
h11==0.16.0
45+
hf-xet==1.1.10
46+
httpcore==1.0.9
47+
httptools==0.7.1
48+
httpx==0.28.1
49+
huggingface-hub==0.35.3
50+
idna==3.11
51+
interegular==0.3.3
52+
Jinja2==3.1.6
53+
jiter==0.11.1
54+
jsonschema==4.25.1
55+
jsonschema-specifications==2025.9.1
56+
lark==1.2.2
57+
llguidance==0.7.30
58+
llvmlite==0.44.0
59+
lm-format-enforcer==0.10.12
60+
markdown-it-py==4.0.0
61+
MarkupSafe==2.1.5
62+
mdurl==0.1.2
63+
mistral_common==1.8.5
64+
mpmath==1.3.0
65+
msgpack==1.1.2
66+
msgspec==0.19.0
67+
multidict==6.7.0
68+
networkx==3.3
69+
ninja==1.13.0
70+
numba==0.61.2
71+
numpy==2.2.6
72+
nvidia-cublas-cu12==12.8.4.1
73+
nvidia-cuda-cupti-cu12==12.8.90
74+
nvidia-cuda-nvrtc-cu12==12.8.93
75+
nvidia-cuda-runtime-cu12==12.8.90
76+
nvidia-cudnn-cu12==9.10.2.21
77+
nvidia-cufft-cu12==11.3.3.83
78+
nvidia-cufile-cu12==1.13.1.3
79+
nvidia-curand-cu12==10.3.9.90
80+
nvidia-cusolver-cu12==11.7.3.90
81+
nvidia-cusparse-cu12==12.5.8.93
82+
nvidia-cusparselt-cu12==0.7.1
83+
nvidia-nccl-cu12==2.27.5
84+
nvidia-nvjitlink-cu12==12.8.93
85+
nvidia-nvshmem-cu12==3.3.20
86+
nvidia-nvtx-cu12==12.8.90
87+
openai==1.90.0
88+
opencv-python-headless==4.12.0.88
89+
outlines_core==0.2.10
90+
packaging==25.0
91+
partial-json-parser==0.2.1.1.post6
92+
pillow==12.0.0
93+
prometheus-fastapi-instrumentator==7.1.0
94+
prometheus_client==0.23.1
95+
propcache==0.4.1
96+
protobuf==6.33.0
97+
psutil==7.1.0
98+
py-cpuinfo==9.0.0
99+
pybase64==1.4.2
100+
pycountry==24.6.1
101+
pycparser==2.23
102+
pydantic==2.12.3
103+
pydantic-extra-types==2.10.6
104+
pydantic_core==2.41.4
105+
Pygments==2.19.2
106+
python-dotenv==1.1.1
107+
python-json-logger==4.0.0
108+
python-multipart==0.0.20
109+
PyYAML==6.0.3
110+
pyzmq==27.1.0
111+
ray==2.50.0
112+
referencing==0.37.0
113+
regex==2025.9.18
114+
requests==2.32.5
115+
rich==14.2.0
116+
rich-toolkit==0.15.1
117+
rignore==0.7.1
118+
rpds-py==0.27.1
119+
safetensors==0.6.2
120+
scipy==1.15.3
121+
sentencepiece==0.2.1
122+
sentry-sdk==2.42.0
123+
setuptools-scm==9.2.1
124+
shellingham==1.5.4
125+
sniffio==1.3.1
126+
soundfile==0.13.1
127+
soxr==1.0.0
128+
starlette==0.48.0
129+
sympy==1.14.0
130+
tiktoken==0.12.0
131+
tokenizers==0.22.1
132+
tomli==2.3.0
133+
torch==2.9.0+cu128
134+
tqdm==4.67.1
135+
transformers==4.57.1
136+
triton==3.5.0
137+
typer==0.19.2
138+
typing-inspection==0.4.2
139+
typing_extensions==4.15.0
140+
urllib3==2.5.0
141+
uvicorn==0.37.0
142+
uvloop==0.22.1
143+
watchfiles==1.1.1
144+
websockets==15.0.1
145+
xgrammar==0.1.21
146+
yarl==1.22.0
File renamed without changes.

.github/workflows/build_vllm.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ permissions:
1212

1313
jobs:
1414
build:
15-
name: forge-cu129-nightly
16-
uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@main
15+
name: forge-cu128-nightly
16+
uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@vllm-push
1717
strategy:
1818
fail-fast: false
1919
with:
2020
repository: meta-pytorch/forge
2121
ref: ""
2222
test-infra-repository: pytorch/test-infra
23-
test-infra-ref: main
23+
test-infra-ref: vllm-push
2424
run-smoke-test: false
2525
wheel-nightly-policy: gha_workflow_preview_build_wheels
2626
wheel-upload-path: whl/preview/forge/
@@ -31,13 +31,13 @@ jobs:
3131
{
3232
"python_version": "3.10",
3333
"gpu_arch_type": "cpu",
34-
"gpu_arch_version": "12.9",
35-
"desired_cuda": "cu129",
36-
"container_image": "pytorch/manylinux2_28-builder:cuda12.9",
34+
"gpu_arch_version": "12.8",
35+
"desired_cuda": "cu128",
36+
"container_image": "pytorch/manylinux2_28-builder:cuda12.8",
3737
"package_type": "manywheel",
38-
"build_name": "manywheel-py3_10-cuda12_9",
38+
"build_name": "manywheel-py3_10-cuda12_8",
3939
"validation_runner": "linux.12xlarge.memory",
40-
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129",
40+
"installation": "pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128",
4141
"channel": "nightly",
4242
"upload_to_base_bucket": "no",
4343
"stable_version": "2.8.0",

.github/workflows/docs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
6666
# Verify dependencies can be imported before building docs
6767
echo "Verifying dependencies..."
68-
python -c "import forge; print('✓ forge imported successfully')"
68+
python -c "import forge; print('✓ torchforge imported successfully')"
6969
python -c "import monarch; print('✓ monarch imported successfully')"
7070
7171
# Build docs with -W (warnings as errors) and --keep-going to see all issues
@@ -112,15 +112,15 @@ jobs:
112112
s3-bucket: doc-previews
113113
if-no-files-found: error
114114
path: docs
115-
s3-prefix: meta-pytorch/forge/${{ github.event.pull_request.number }}
115+
s3-prefix: meta-pytorch/torchforge/${{ github.event.pull_request.number }}
116116

117117
upload:
118118
runs-on: ubuntu-latest
119119
permissions:
120120
# Grant write permission here so that the doc can be pushed to gh-pages branch
121121
contents: write
122122
needs: build-docs
123-
if: github.repository == 'meta-pytorch/forge' && github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch')
123+
if: github.repository == 'meta-pytorch/torchforge' && github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch')
124124
steps:
125125
- name: Checkout
126126
uses: actions/checkout@v4

.github/workflows/gpu_test.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
- name: Download and install vLLM and its dependencies
4646
# TODO: this honestly could not be hackier if I tried
4747
run: |
48-
python -m pip install -r .github/packaging/vllm_reqs.txt
48+
python -m pip install -r .github/packaging/vllm_reqs_12_9.txt
4949
python -m pip install vllm==0.10.1.dev0+g6d8d0a24c.d20251009.cu129 --no-cache-dir --index-url https://download.pytorch.org/whl/preview/forge
5050
- name: Install Monarch
5151
run: pip install torchmonarch==0.1.0rc1

docs/source/_static/custom.css

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,62 @@
1+
/* Center all Mermaid diagrams */
2+
.mermaid {
3+
display: block;
4+
margin-left: auto;
5+
margin-right: auto;
6+
text-align: center;
7+
}
8+
9+
/* Center the pre element that contains mermaid diagrams */
10+
pre.mermaid {
11+
display: flex;
12+
justify-content: center;
13+
}
14+
15+
/* Adjust Mermaid line colors based on theme */
16+
/* Light mode - darker lines for visibility on white background */
17+
html[data-theme="light"] .mermaid .edgePath .path,
18+
html[data-theme="light"] .mermaid .flowchart-link {
19+
stroke: #555 !important;
20+
stroke-width: 2px !important;
21+
}
22+
23+
/* Light mode - darker arrow tips */
24+
html[data-theme="light"] .mermaid .arrowheadPath,
25+
html[data-theme="light"] .mermaid marker path {
26+
fill: #555 !important;
27+
stroke: #555 !important;
28+
}
29+
30+
html[data-theme="dark"] .mermaid .arrowheadPath,
31+
html[data-theme="dark"] .mermaid marker path {
32+
fill: #aaa !important;
33+
stroke: #aaa !important;
34+
}
35+
36+
/* Dark mode - lighter lines for visibility on dark background */
37+
html[data-theme="dark"] .mermaid .edgePath .path,
38+
html[data-theme="dark"] .mermaid .flowchart-link {
39+
stroke: #aaa !important;
40+
stroke-width: 2px !important;
41+
}
42+
43+
/* Dark mode - lighter arrow tips */
44+
html[data-theme="dark"] .mermaid .arrowheadPath,
45+
html[data-theme="dark"] .mermaid marker path {
46+
fill: #aaa !important;
47+
stroke: #aaa !important;
48+
}
49+
50+
/* Adjust edge labels background based on theme */
51+
html[data-theme="light"] .mermaid .edgeLabel {
52+
background-color: #fff !important;
53+
}
54+
55+
html[data-theme="dark"] .mermaid .edgeLabel {
56+
background-color: #1a1a1a !important;
57+
color: #fff !important;
58+
}
59+
160
/* Custom CSS for collapsible parameter lists */
261

362
/* Hide parameters in signatures */

docs/source/_static/custom.js

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,103 @@
1+
// Lightbox functionality for Mermaid diagrams
2+
document.addEventListener('DOMContentLoaded', function() {
3+
// Create lightbox modal for Mermaid diagrams
4+
const lightbox = document.createElement('div');
5+
lightbox.id = 'mermaid-lightbox';
6+
lightbox.style.cssText = `
7+
display: none;
8+
position: fixed;
9+
z-index: 9999;
10+
left: 0;
11+
top: 0;
12+
width: 100%;
13+
height: 100%;
14+
background-color: rgba(0,0,0,0.9);
15+
cursor: zoom-out;
16+
`;
17+
18+
const lightboxContent = document.createElement('div');
19+
lightboxContent.style.cssText = `
20+
position: absolute;
21+
top: 50%;
22+
left: 50%;
23+
transform: translate(-50%, -50%);
24+
max-width: 95%;
25+
max-height: 95%;
26+
overflow: auto;
27+
`;
28+
29+
const closeBtn = document.createElement('span');
30+
closeBtn.innerHTML = '×';
31+
closeBtn.style.cssText = `
32+
position: absolute;
33+
top: 15px;
34+
right: 35px;
35+
color: #f1f1f1;
36+
font-size: 40px;
37+
font-weight: bold;
38+
cursor: pointer;
39+
z-index: 10000;
40+
`;
41+
closeBtn.onclick = function() {
42+
lightbox.style.display = 'none';
43+
};
44+
45+
lightbox.appendChild(closeBtn);
46+
lightbox.appendChild(lightboxContent);
47+
document.body.appendChild(lightbox);
48+
49+
// Click outside to close
50+
lightbox.onclick = function(e) {
51+
if (e.target === lightbox) {
52+
lightbox.style.display = 'none';
53+
}
54+
};
55+
56+
// ESC key to close
57+
document.addEventListener('keydown', function(e) {
58+
if (e.key === 'Escape' && lightbox.style.display === 'block') {
59+
lightbox.style.display = 'none';
60+
}
61+
});
62+
63+
// Make all Mermaid diagrams clickable
64+
const mermaidDivs = document.querySelectorAll('.mermaid');
65+
mermaidDivs.forEach(function(div) {
66+
div.style.cursor = 'zoom-in';
67+
div.title = 'Click to enlarge';
68+
69+
div.addEventListener('click', function() {
70+
const clone = div.cloneNode(true);
71+
72+
// Style the cloned diagram to fill the lightbox
73+
clone.style.cssText = `
74+
cursor: default;
75+
width: 90vw;
76+
max-width: 1400px;
77+
height: auto;
78+
margin: auto;
79+
`;
80+
81+
// Find and resize the SVG inside
82+
const svg = clone.querySelector('svg');
83+
if (svg) {
84+
svg.style.cssText = `
85+
width: 100% !important;
86+
height: auto !important;
87+
max-width: none !important;
88+
max-height: 90vh !important;
89+
`;
90+
svg.removeAttribute('width');
91+
svg.removeAttribute('height');
92+
}
93+
94+
lightboxContent.innerHTML = '';
95+
lightboxContent.appendChild(clone);
96+
lightbox.style.display = 'block';
97+
});
98+
});
99+
});
100+
1101
// Custom JavaScript to make long parameter lists in class signatures collapsible
2102
document.addEventListener('DOMContentLoaded', function() {
3103
console.log('Collapsible parameters script loaded');

docs/source/concepts.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)