Skip to content

Commit 3eeb97b

Browse files
authored
build2cmake: fix C++ dependency lookup warnings (#326)
The C++ dependency lookup in build2cmake would iterate over all kernels, looking up their dependencies. However, this lead to spurious warnings such as: Warning: CUDA backend doesn't need/support dependency: CutlassSycl Fix this by only collecting and then looking up the dependencies of the currently-active backend.
1 parent d7aa270 commit 3eeb97b

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

build2cmake/src/torch/cuda.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ fn write_cmake(
173173
cmake_writer,
174174
)?;
175175

176-
render_deps(env, build, cmake_writer)?;
176+
render_deps(env, backend, build, cmake_writer)?;
177177

178178
render_binding(env, torch, name, cmake_writer)?;
179179

@@ -213,10 +213,19 @@ pub fn render_binding(
213213
Ok(())
214214
}
215215

216-
fn render_deps(env: &Environment, build: &Build, write: &mut impl Write) -> Result<()> {
216+
fn render_deps(
217+
env: &Environment,
218+
backend: Backend,
219+
build: &Build,
220+
write: &mut impl Write,
221+
) -> Result<()> {
217222
let mut deps = HashSet::new();
218223

219-
for kernel in build.kernels.values() {
224+
for kernel in build
225+
.kernels
226+
.values()
227+
.filter(|kernel| kernel.backend() == backend)
228+
{
220229
deps.extend(kernel.depends());
221230
}
222231

build2cmake/src/torch/xpu.rs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use minijinja::{context, Environment};
88

99
use super::common::write_pyproject_toml;
1010
use super::kernel_ops_identifier;
11-
use crate::config::{Build, Dependency, Kernel, Torch};
11+
use crate::config::{Backend, Build, Dependency, Kernel, Torch};
1212
use crate::version::Version;
1313
use crate::FileSet;
1414

@@ -144,7 +144,7 @@ fn write_cmake(
144144
cmake_writer,
145145
)?;
146146

147-
render_deps(env, build, cmake_writer)?;
147+
render_deps(env, Backend::Xpu, build, cmake_writer)?;
148148

149149
render_binding(env, torch, name, cmake_writer)?;
150150

@@ -184,10 +184,19 @@ fn render_binding(
184184
Ok(())
185185
}
186186

187-
fn render_deps(env: &Environment, build: &Build, write: &mut impl Write) -> Result<()> {
187+
fn render_deps(
188+
env: &Environment,
189+
backend: Backend,
190+
build: &Build,
191+
write: &mut impl Write,
192+
) -> Result<()> {
188193
let mut deps = HashSet::new();
189194

190-
for kernel in build.kernels.values() {
195+
for kernel in build
196+
.kernels
197+
.values()
198+
.filter(|kernel| kernel.backend() == backend)
199+
{
191200
deps.extend(kernel.depends());
192201
}
193202

0 commit comments

Comments
 (0)