Fix conda custom operator build and self-tests - #6474
Conversation
4cda17c to
e16ab34
Compare
Conda installs DALI headers from libdali-devel in the active prefix, but get_include_dir() only returned the wheel-style package directory. Custom-operator builds therefore could not find the public DALI headers. Use the conda include directory when the active prefix contains DALI headers. The package-local include directory remains the fallback, preserving the behavior of wheel and non-conda installations. The conda self-test also searched PATH for test executables, although the conda package installs them beneath the nvidia.dali package. Search the local build output and installed package in the same order as TL0_self-test, report a missing executable clearly, and retain an absolute path for GoogleTest death tests. Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
e16ab34 to
bc678c1
Compare
|
|
CI MESSAGE: [66908778]: BUILD STARTED |
Only use headers from CONDA_PREFIX when the imported nvidia.dali package is located under that same prefix. This prevents custom operators from compiling against conda headers while linking to a separately installed DALI wheel. Add focused sysconfig tests for both matching and mismatched installations. Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
|
@greptile review |
Compute the conda include path only where it is needed. This keeps the matching-installation guard while avoiding CodeQL's unused-local diagnostic. Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
|
@greptile review |
|
CI MESSAGE: [66916279]: BUILD STARTED |
|
CI MESSAGE: [66916279]: BUILD FAILED |
|
CI MESSAGE: [66959790]: BUILD STARTED |
|
CI MESSAGE: [66959790]: BUILD PASSED |
Prefer self-test binaries from the DALI package imported by the active Conda environment, before considering a local build-tree fallback. Canonicalize the chosen executable for death tests and preserve the suite's existing executor coverage. Document why Conda headers come from libdali-devel while prebuilt libraries remain with the Python package. Add coverage for the fallback used when the imported DALI package is in Conda but libdali-devel is not installed. Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
|
CI MESSAGE: [67055128]: BUILD STARTED |
Install public .hpp headers alongside .h headers so that the installed development package contains the complete include closure required by float16.h and custom DALI operators. Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
|
CI MESSAGE: [67065835]: BUILD STARTED |
|
CI MESSAGE: [67065835]: BUILD PASSED |
jantonguirao
left a comment
There was a problem hiding this comment.
All five review comments from the previous pass were addressed — binary discovery now checks the actual conda install layout, the death-test path comment matches the readlink -f behavior, the incidental DALI_USE_EXEC2=0 change was reverted, get_lib_dir's conda-vs-wheel split is now documented, and the missing test branch (package inside $CONDA_PREFIX without libdali-devel) is covered. No new issues found on re-review. Leaving one non-blocking design note below about the discovery-loop duplication across QA scripts.
Use a shared helper for every self-test binary-discovery loop. It canonicalizes selected executables, reports missing binaries without reusing a previous loop iteration, and preserves the active Conda package priority. Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
a06767f to
92a59f2
Compare
Make Conda package priority an explicit helper option used only by the TL1 Conda suite. TL0 suites continue testing their current job local build even when a Conda environment is active. Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
Report the missing binary and every searched location so failed QA self-test discovery is immediately diagnosable. Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
|
CI MESSAGE: [67158752]: BUILD STARTED |
|
CI MESSAGE: [67158752]: BUILD PASSED |
Fix conda custom-operator builds and self-tests.
Category:
Bug fix
Description:
Make DALI's Conda integration consistently select artifacts from the active
environment while retaining the existing wheel and local-build fallbacks:
$CONDA_PREFIX/include/dalionly when the imported DALI package isalso under that prefix and
libdali-develsupplies the headers.public
.hppheaders with the existing public.hheaders.find_test_bin. All eightaffected suites use it, so a missing binary cannot reuse a path found in a
previous loop iteration. The helper returns a canonical executable path for
GoogleTest death tests; it selects the imported package first for a DALI
package under the active Conda prefix, and otherwise retains local-build-first
lookup.
Additional information:
Affected modules and functionalities:
nvidia.dali.sysconfiginclude flags for custom-operator builds.libdali-devel.multi-GPU QA suites.
Key points relevant for the review:
mismatched
PYTHONPATHand Conda installations retain package-local headers.non-Conda suites continue to prefer the local build produced by their job.
when no executable is found.
libdali.sointentionally remains package-local because the bindings packagecontains the prebuilt libraries.
Tests:
dali/test/python/test_plugin_manager.py: matching, mismatched, andmissing-
libdali-develConda header-path selection.missing-binary behavior.
CI.
Checklist
Documentation
DALI team only
Requirements
REQ IDs: N/A
JIRA TASK: N/A