Skip to content

Conversation

michal-shalev
Copy link
Contributor

@michal-shalev michal-shalev commented Oct 6, 2025

What?

Changes the default build type from debug to release.

Why?

Users should get optimized, production-ready builds by default without needing to specify build flags. Debug builds remain available with --buildtype=debug.

How?

Updated meson.build default_options and documentation (README.md, gpunetio plugin README) to reflect release as the new default.

Copy link

github-actions bot commented Oct 6, 2025

👋 Hi michal-shalev! Thank you for contributing to ai-dynamo/nixl.

Your PR reviewers will review your contribution then trigger the CI to test your changes.

🚀

@michal-shalev
Copy link
Contributor Author

@aranadive @karya0, what was the original reason for NIXL's default build type being debug?

@michal-shalev michal-shalev requested a review from tvegas1 October 6, 2025 22:26
brminich
brminich previously approved these changes Oct 7, 2025
ovidiusm
ovidiusm previously approved these changes Oct 7, 2025
README.md Outdated

```bash
$ meson setup <name_of_build_dir> --buildtype=release
$ meson setup <name_of_build_dir>
Copy link
Contributor

Choose a reason for hiding this comment

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

I would put also the explicit command here

Copy link
Contributor Author

Choose a reason for hiding this comment

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

fixed

@brminich
Copy link
Contributor

brminich commented Oct 7, 2025

maybe this CI issue is related, because we build release now
./.gitlab/test_cpp.sh: line 62: ./bin/desc_example: No such file or directory


By default NIXL is built with `buildtype=debug` option. This is ok for correctness and debugging.
To run for performace (e.g. with NIXL bench) t's hightly recommended to build NIXL with `buildtype=release`.
By default NIXL is built with `buildtype=release` option for optimal performance.
Copy link
Contributor

Choose a reason for hiding this comment

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

maybe keep the explicit recommendation for performance

Copy link
Contributor Author

Choose a reason for hiding this comment

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

fixed

@tvegas1
Copy link
Contributor

tvegas1 commented Oct 7, 2025

probably need to explicitly set debug for CI builds now.

@rakhmets
Copy link
Contributor

rakhmets commented Oct 7, 2025

maybe this CI issue is related, because we build release now ./.gitlab/test_cpp.sh: line 62: ./bin/desc_example: No such file or directory

There is the following code in meson.build:

if get_option('buildtype') != 'release'
  subdir('test')
  subdir('examples')
endif

I'm not sure that this is the correct approach. I think it would be better to have separate options to build tests and examples. It makes sense to build examples in release mode.

@ovidiusm
Copy link
Contributor

ovidiusm commented Oct 7, 2025

CI should cover at least release mode, otherwise we will miss issues. Maybe there would be side effects for debugging, but we do not support core dump collection right now anyway.

So I think we should add tests and examples compilation in release builds.

But with care not to package them into wheels/crates.

@ovidiusm
Copy link
Contributor

ovidiusm commented Oct 7, 2025

A drawback is that asserts would be compiled out in release mode, so they will not trigger in CI if we build in release mode.

@ovidiusm
Copy link
Contributor

ovidiusm commented Oct 7, 2025

Please see related #872

Signed-off-by: Michal Shalev <[email protected]>
@michal-shalev
Copy link
Contributor Author

/build

Signed-off-by: Michal Shalev <[email protected]>
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.

5 participants