Skip to content
This repository was archived by the owner on Sep 30, 2026. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a2f0ffa
Add Linux CPU only CI build and tests
scotts Jan 20, 2026
ea7b04a
Fix CI names
scotts Jan 20, 2026
20e3737
Use linux.c7i.2xlarge as CPU runner
scotts Jan 20, 2026
c50f083
Force CPU-only through cmake flags
scotts Jan 20, 2026
67d542a
Explicitly disable building CUDA support in PyTorch
scotts Jan 20, 2026
8623b60
OFF instead of 0?
scotts Jan 20, 2026
2e2582c
USE_CUDA=0
scotts Jan 20, 2026
658e88b
Separate build and test
scotts Jan 21, 2026
c10619e
Use bigger runner
scotts Jan 21, 2026
281f88c
Actually change to linux.c7i.4xlarge
scotts Jan 21, 2026
fbaef35
Limit max jobs; try non-docker version
scotts Jan 21, 2026
b4983ea
Different workflow names
scotts Jan 21, 2026
c4437d0
Fix stray docker command
scotts Jan 21, 2026
d35c493
Use pushd/popd
scotts Jan 21, 2026
9b4a76c
Improved non-docker CPU only tests
scotts Jan 21, 2026
26ba8b5
Remove non-docker attempt; deselect failing test
scotts Jan 21, 2026
6e722c1
Make it a proper comment
scotts Jan 21, 2026
ae04c7e
Block comment
scotts Jan 21, 2026
0461765
Defensively disable all known GPUs
scotts Jan 21, 2026
671811b
Add basic ROCM build and test
scotts Jan 21, 2026
ceb7d04
Rename the CI job
scotts Jan 21, 2026
d744e13
Merge branch 'main' of https://github.com/pytorch/kineto into ci_rocm
scotts Jan 22, 2026
ccd4df6
Better ROCm settings
scotts Jan 23, 2026
ecc95cd
Used single-GPU runner
scotts Jan 27, 2026
6c39770
Try new ROCm image
scotts Jan 27, 2026
a9daffd
Retry nightly CI image
scotts Jan 27, 2026
296655e
Different ROCm image
scotts Jan 27, 2026
c13392a
Try calculating image first
scotts Jan 27, 2026
3688e82
Update to pytorch/manylinux2_28-builder:rocm7.2 image
scotts Jan 28, 2026
d8c6b23
Don't calculate
scotts Jan 28, 2026
027c2fd
Permissions and url
scotts Jan 28, 2026
d08e295
Add tags
scotts Jan 29, 2026
320e180
Try on pull requests
scotts Jan 29, 2026
002eb14
Add probot
scotts Jan 30, 2026
9273b21
Remove pull request
scotts Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/pytorch-probot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ciflow_push_tags:
- ciflow/rocm
140 changes: 140 additions & 0 deletions .github/workflows/linux_rocm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
name: Linux ROCm build and test

on:
push:
tags:
- ciflow/rocm/*

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@scotts A few more steps to get this system working:

  1. Create a ciflow/rocm label on kineto repo (to be used on PRs)
  2. Add pytorch-probot.yaml to kineto repo like https://github.com/meta-pytorch/monarch/blob/main/.github/pytorch-probot.yml

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't add labels on Kineto PRs. Please try adding the ciflow/rocm label and we can see if it works as expected

branches:
- main

env:
DOCKER_IMAGE: "pytorch/manylinux2_28-builder:rocm7.2"

permissions:
id-token: write
contents: read

jobs:
pr-test:
runs-on: linux.rocm.gpu.gfx942.1
timeout-minutes: 180 # 3 hours
steps:
- name: Checkout Kineto
uses: actions/checkout@v5
with:
path: kineto
submodules: recursive

- name: Pull docker image
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
with:
docker-image: ${{ env.DOCKER_IMAGE }}

- name: Setup ROCM
uses: pytorch/pytorch/.github/actions/setup-rocm@main

- name: Get env vars
run: |
echo GITHUB_WORKFLOW = $GITHUB_WORKFLOW
echo HOME = $HOME
echo GITHUB_ACTION = $GITHUB_ACTION
echo GITHUB_ACTIONS = $GITHUB_ACTIONS
echo GITHUB_REPOSITORY = $GITHUB_REPOSITORY
echo GITHUB_EVENT_NAME = $GITHUB_EVENT_NAME
echo GITHUB_EVENT_PATH = $GITHUB_EVENT_PATH
echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE
echo GITHUB_SHA = $GITHUB_SHA
echo GITHUB_REF = $GITHUB_REF

- name: Build libkineto (static and shared library)
run: |
container_name=$(docker run \
${GPU_FLAG:-} \
--tty \
--detach \
--shm-size=32gb \
-v "${PWD}/kineto:/kineto" \
-w / \
"${{ env.DOCKER_IMAGE }}"
)
echo "Container name: ${container_name}"

docker exec -t -w "/kineto" "${container_name}" bash -c "
set -eux
mkdir build_static
mkdir build_shared
pip install cmake
"

docker exec -t -w "/kineto/build_static" "${container_name}" bash -c "
set -eux
cmake -DKINETO_LIBRARY_TYPE=static ../libkineto/
make -j
"

docker exec -t -w "/kineto/build_shared" "${container_name}" bash -c "
set -eux
cmake -DKINETO_LIBRARY_TYPE=shared ../libkineto/
make -j
"

- name: Run libkineto tests
run: |
container_name=$(docker ps -lq)
docker exec -t -w "/kineto/build_static" "${container_name}" bash -c "make test"

- name: Clone PyTorch
run: |
container_name=$(docker ps -lq)
docker exec -t -w "/" "${container_name}" bash -c "
set -eux
git clone --recursive --branch viable/strict https://github.com/pytorch/pytorch.git
"

- name: Replace PyTorch's Kineto with PR version
run: |
container_name=$(docker ps -lq)
docker exec -t -w "/pytorch" "${container_name}" bash -c "
set -eux
rm -rf third_party/kineto
ln -s /kineto third_party/kineto
"

- name: Build PyTorch from source
run: |
container_name=$(docker ps -lq)
docker exec -t -w "/pytorch" "${container_name}" bash -c "
set -eux
pip install -r requirements.txt
export USE_ROCM=1
export BUILD_TEST=1
python setup.py develop
"

- name: Run PyTorch profiler tests
run: |
container_name=$(docker ps -lq)
docker exec -t -w "/pytorch" "${container_name}" bash -c "
set -eux
# TODO: Dynamically add/remove tests to the exclusion list based on their
# status on trunk instead of maintaining a hardcoded list of known failures.
# This will prevent the list from becoming stale as tests get fixed upstream.
python -m pytest test/profiler/ -v \
--deselect=test/profiler/test_memory_profiler.py::TestDataFlow::test_data_flow_graph_complicated \
--deselect=test/profiler/test_memory_profiler.py::TestMemoryProfilerE2E::test_categories_e2e_sequential_fwd_bwd \
--deselect=test/profiler/test_memory_profiler.py::TestMemoryProfilerE2E::test_categories_e2e_simple_fwd_bwd \
--deselect=test/profiler/test_memory_profiler.py::TestMemoryProfilerE2E::test_categories_e2e_simple_fwd_bwd_step \
--deselect=test/profiler/test_profiler.py::TestProfiler::test_kineto \
--deselect=test/profiler/test_profiler.py::TestProfiler::test_user_annotation \
--deselect=test/profiler/test_profiler.py::TestExperimentalUtils::test_fuzz_symbolize \
--deselect=test/profiler/test_profiler.py::TestExperimentalUtils::test_profiler_debug_autotuner \
--deselect=test/profiler/test_torch_tidy.py::TestTorchTidyProfiler::test_tensorimpl_invalidation_scalar_args
"

- name: Teardown Linux
uses: pytorch/test-infra/.github/actions/teardown-linux@main
if: always()

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }}
cancel-in-progress: true