Skip to content

Remove LIBKINETO_NO* compatibility shim#1399

Closed
scotts wants to merge 1 commit into
pytorch:mainfrom
scotts:rm_cmake_shim
Closed

Remove LIBKINETO_NO* compatibility shim#1399
scotts wants to merge 1 commit into
pytorch:mainfrom
scotts:rm_cmake_shim

Conversation

@scotts
Copy link
Copy Markdown
Contributor

@scotts scotts commented May 13, 2026

The CMake refactor (#1388) replaced LIBKINETO_NOCUPTI, LIBKINETO_NOROCTRACER, and LIBKINETO_NOXPUPTI with a single KINETO_BACKEND variable, but kept a shim that translated the legacy flags during the cross-repo migration window. pytorch/pytorch#183388 migrated PyTorch's cmake/Dependencies.cmake and torch/csrc/autograd/init.cpp have now both been migrated to use KINETO_BACKEND / HAS_* directly. The shim has no remaining caller.

Approach

Delete the shim block and the cached-vs-new-legacy-flags conflict warning that existed only to ease the migration. Replace with a simpler guard that warns when KINETO_BACKEND wasn't set at all and the build defaulted to cpu. This catches stragglers passing legacy LIBKINETO_NO* flags as a side effect — they'll be silently ignored, KINETO_BACKEND will default to cpu, and the new warning will tell them how to pick a backend explicitly. The new code carries no knowledge of the legacy flag names, so the kineto repo is now free of all LIBKINETO_NO* references.

The warning fires only on initial configure (subsequent re-runs find KINETO_BACKEND populated in the cache) and on a freshly-wiped build directory.

**Motivation**

The kineto CMake refactor (pytorch#1388) replaced `LIBKINETO_NOCUPTI`,
`LIBKINETO_NOROCTRACER`, and `LIBKINETO_NOXPUPTI` with a single
`KINETO_BACKEND` variable, but kept a shim that translated the legacy
flags during the cross-repo migration window. PyTorch's
`cmake/Dependencies.cmake` and `torch/csrc/autograd/init.cpp` have now
both been migrated to use `KINETO_BACKEND` / `HAS_*` directly. The shim
has no remaining caller.

**Why**

Verified against `pytorch/main`: a repo-wide grep for `LIBKINETO_NO`
returns matches only inside the kineto submodule itself (i.e., the shim
we're deleting). PyTorch's `Dependencies.cmake` sets `KINETO_BACKEND`
directly, and `init.cpp:446` is now `#if defined(HAS_CUPTI) || defined(HAS_ROCTRACER)`.

**Approach**

Delete the shim block and the cached-vs-new-legacy-flags conflict
warning that existed only to ease the migration. Replace with a simpler
guard that warns when `KINETO_BACKEND` wasn't set at all and the build
defaulted to `cpu`. This catches stragglers passing legacy
`LIBKINETO_NO*` flags as a side effect — they'll be silently ignored,
`KINETO_BACKEND` will default to `cpu`, and the new warning will tell
them how to pick a backend explicitly. The new code carries no
knowledge of the legacy flag names, so the kineto repo is now free of
all `LIBKINETO_NO*` references.

The warning fires only on initial configure (subsequent re-runs find
`KINETO_BACKEND` populated in the cache) and on a freshly-wiped build
directory.
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented May 13, 2026

@scotts has imported this pull request. If you are a Meta employee, you can view this in D104927633.

@scotts scotts marked this pull request as ready for review May 13, 2026 02:01
Comment thread libkineto/CMakeLists.txt
"KINETO_BACKEND was not set; defaulting to 'cpu'. "
"Pass -DKINETO_BACKEND={cpu,cuda,rocm,xpu} explicitly to silence this warning.")
endif()
unset(_kineto_backend_explicit)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Curious why it's needed to unset?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Not strictly needed, but my understanding is that it's good CMake hygiene to unset temporary-use variables so they don't pollute the rest of the build. In this case, if we didn't unset it, it would also be visible in all of the other builds we kick off from here (XPU plugin, everything in third_party, tests and benchmarks).

@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented May 13, 2026

@scotts merged this pull request in ea8bc18.

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request May 22, 2026
Includes the following commits:

- ci: declare workflow-level `contents: read` on 5 workflows (pytorch/kineto#1404) 5902263
- Remove deprecated `REQUEST_TIMESTAMP` config key (pytorch/kineto#1409) 55883de
- Fix intermittent Mac CI failure from conda channel reset (pytorch/kineto#1407) ee27b5c
- Add nlohmann/json as a top-level third_party submodule (pytorch/kineto#1406) c044281
- Remove SIGUSR2 on-demand profiling path (pytorch/kineto#1408) 471ed38
- Fix ROCm HtoD memcpy stream attribution (pytorch/kineto#1398) 799b5f4
- Fix UST_LOGGER_MARK_COMPLETED build failure in manifold_trace_logger (pytorch/kineto#1389) 60967ce
- Remove `DefaultTimeConverterIsIdentity` test (pytorch/kineto#1401) 81d31cd
- Re-enable most PyTorch tests (pytorch/kineto#1403) 212f9a5
- Daily `arc lint --take CLANGFORMAT` (pytorch/kineto#1402) 6481fac
- Resolve CUPTI cbid names via cuptiGetCallbackName (pytorch/kineto#1400) e07e121
- XPUPTI: Fix ts=0 trace events on Windows (pytorch/kineto#1381) 4c8d01c
- Remove LIBKINETO_NO* compatibility shim (pytorch/kineto#1399) ea8bc18
- Upgrade Kineto to C++20 (pytorch/kineto#1397) 77e2b46
- Update the rocm api filtering (pytorch/kineto#1392) e0ac578
Pull Request resolved: #184784
Approved by: https://github.com/NicolasHug, https://github.com/malfet
pytorchmergebot pushed a commit to khushi-411/pytorch that referenced this pull request May 24, 2026
Includes the following commits:

- ci: declare workflow-level `contents: read` on 5 workflows (pytorch/kineto#1404) 5902263
- Remove deprecated `REQUEST_TIMESTAMP` config key (pytorch/kineto#1409) 55883de
- Fix intermittent Mac CI failure from conda channel reset (pytorch/kineto#1407) ee27b5c
- Add nlohmann/json as a top-level third_party submodule (pytorch/kineto#1406) c044281
- Remove SIGUSR2 on-demand profiling path (pytorch/kineto#1408) 471ed38
- Fix ROCm HtoD memcpy stream attribution (pytorch/kineto#1398) 799b5f4
- Fix UST_LOGGER_MARK_COMPLETED build failure in manifold_trace_logger (pytorch/kineto#1389) 60967ce
- Remove `DefaultTimeConverterIsIdentity` test (pytorch/kineto#1401) 81d31cd
- Re-enable most PyTorch tests (pytorch/kineto#1403) 212f9a5
- Daily `arc lint --take CLANGFORMAT` (pytorch/kineto#1402) 6481fac
- Resolve CUPTI cbid names via cuptiGetCallbackName (pytorch/kineto#1400) e07e121
- XPUPTI: Fix ts=0 trace events on Windows (pytorch/kineto#1381) 4c8d01c
- Remove LIBKINETO_NO* compatibility shim (pytorch/kineto#1399) ea8bc18
- Upgrade Kineto to C++20 (pytorch/kineto#1397) 77e2b46
- Update the rocm api filtering (pytorch/kineto#1392) e0ac578
Pull Request resolved: pytorch#184784
Approved by: https://github.com/NicolasHug, https://github.com/malfet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants