Skip to content

Update build type to release & remove multi-step build in CI - #3745

Merged
SergioRAgostinho merged 4 commits into
PointCloudLibrary:masterfrom
shrijitsingh99:ubuntu-ci
Mar 23, 2020
Merged

SergioRAgostinho merged 4 commits into
PointCloudLibrary:masterfrom
shrijitsingh99:ubuntu-ci

Conversation

@shrijitsingh99

@shrijitsingh99 shrijitsingh99 commented Mar 13, 2020 •

Copy link
Copy Markdown
Contributor

Resolves #3656.
Edit: Changed build type for all OS and removed the multi-step builds since there were no longer any OOM issues.

Comment thread .ci/azure-pipelines/build-ubuntu-19-10.yaml
@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

If we go ahead with this, no reason not to implement it across all the pipelines.

@kunaltyagi

kunaltyagi commented Mar 13, 2020 •

Copy link
Copy Markdown
Member

I want to see the impact on compile times. If there's none or little, Release should be used on all.

So far, looks like not using DebugInfo actually reduced the compile times

@SergioRAgostinho SergioRAgostinho left a comment

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.

@kunaltyagi Feel free to merge once you're happy with the compile times.

@taketwo taketwo left a comment

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.

Apply to Ubuntu 16.04 as well?

@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

I want to see the impact on compile times. If there's none or little, Release should be used on all.

So far, looks like not using DebugInfo actually reduced the compile times

Tested it out 2 separate configurations, Release is around 1.4x faster.

Config 1:
Release: ninja 10032.33s user 701.35s system 2982% cpu 5:59.85 total
RelWithDebInfo: ninja 14415.01s user 911.54s system 2880% cpu 8:52.17 total

Config 2:
Release: make -j12 14019.48s user 853.48s system 592% cpu 41:52.21 total
RelWithDebInfo: make -j12 18437.76s user 1130.40s system 567% cpu 57:26.84 total

Apply to Ubuntu 16.04 as well?

Should I do that in a separate PR since we can apply the same thing to macOS and Windows as well?

@taketwo

taketwo commented Mar 14, 2020 •

Copy link
Copy Markdown
Member

I'd switch all jobs (including tutorials) to release mode at the same time in this PR. Just change the title accordingly ;)

Edit: also rebase on the current HEAD to get updated MacOS jobs.

@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

I have been testing out the integration with Ubuntu 16 and noticed the flag PCL_WARNINGS_ARE_ERRORS=ON is set and is causing the build to fail, most likely due to the extra warnings generated by the -O3 flag. Is this flag needed since it is not set in Ubuntu 18?

@taketwo

taketwo commented Mar 14, 2020

Copy link
Copy Markdown
Member

Yes. It is our goal to eventually have PCL_WARNINGS_ARE_ERRORS=ON set for all CI jobs. #3379 tracks the progress.

most likely due to the extra warnings generated by the -O3 flag

Are there many warnings and they trivial to fix? If so, it would be nice to do so and switch to Release in 16.04 job. If that requires more work, then let's leave 16.04 out for now.

@shrijitsingh99 shrijitsingh99 changed the title Fix Ubuntu 19.10 CI out of memory (disk space) error Update build type to release & remove multi-step build in CI Mar 17, 2020
@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

I'd switch all jobs (including tutorials) to release mode at the same time in this PR. Just change the title accordingly ;)

Edit: also rebase on the current HEAD to get updated MacOS jobs.

Done that. Merged all the CI changes into this PR.

Yes. It is our goal to eventually have PCL_WARNINGS_ARE_ERRORS=ON set for all CI jobs. #3379 tracks the progress.

most likely due to the extra warnings generated by the -O3 flag

Are there many warnings and they trivial to fix? If so, it would be nice to do so and switch to Release in 16.04 job. If that requires more work, then let's leave 16.04 out for now.

There were not many warnings, so I was able to fix them. They need a review.

Comment thread .ci/azure-pipelines/build-windows.yml Outdated
Comment thread .ci/azure-pipelines/build-windows.yml
Comment thread .ci/azure-pipelines/build-macos.yml
Comment thread octree/include/pcl/octree/octree_base.h Outdated
@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

Any reason why only the ubuntu builds have .yaml extension, whereas rest have .yml?

@SergioRAgostinho

Copy link
Copy Markdown
Member

Any reason why only the ubuntu builds have .yaml extension, whereas rest have .yml?

I remember windows having troubles with non 3 char extensions back in the days. Not sure what's the current status on this. It was most likely a random inconsistency we overlooked. Ideally, yaml should be used. source

@kunaltyagi kunaltyagi left a comment

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.

🚀 (yml -> yaml can be here or elsewhere)

Release doesn't make MSVC x64 happier. It stills OOMs out.

@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

I remember windows having troubles with non 3 char extensions back in the days. Not sure what's the current status on this. It was most likely a random inconsistency we overlooked. Ideally, yaml should be used. source

Yeah, older versions of Windows had this problem, don't think its there anymore. WIll test out and rename if it works.

@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

🚀 (yml -> yaml can be here or elsewhere)

Release doesn't make MSVC x64 happier. It stills OOMs out.

Yeah, not sure was building fine before.

@kunaltyagi

kunaltyagi commented Mar 18, 2020 •

Copy link
Copy Markdown
Member

MSVC is a weird camper. I have manually restarted the job so many times only for the jobs that OOMed out to be successful (most likely due to variation caused by the parallel build, which isn't as managed per target as the unix ones are)

Comment thread surface/include/pcl/surface/3rdparty/opennurbs/opennurbs_array.h Outdated
Comment thread surface/include/pcl/surface/3rdparty/opennurbs/opennurbs_array.h Outdated
@SergioRAgostinho SergioRAgostinho added the needs: author reply Specify why not closed/merged yet label Mar 18, 2020

@kunaltyagi kunaltyagi left a comment

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.

Is the CI hardcoded to the file names? The renamed files didn't run on the CI.

Changeset LGTM

@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

Is the CI hardcoded to the file names? The renamed files didn't run on the CI.

Changeset LGTM

Yup, they are hardcoded for filenames so they will need to be updated.

Comment thread surface/include/pcl/surface/3rdparty/opennurbs/opennurbs_array_defs.h Outdated
@taketwo

taketwo commented Mar 19, 2020

Copy link
Copy Markdown
Member

Yup, they are hardcoded for filenames so they will need to be updated.

Will do once this is merged.

@SergioRAgostinho
SergioRAgostinho self-requested a review March 19, 2020 13:27

@SergioRAgostinho SergioRAgostinho left a comment

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.

LGTM. Despite the messed up casts :')

In terms of commit organization I would squash things into the following 4 topics:

  • Update build type to release
  • Removing of multistep build
  • File renaming
  • All commits related to suppressing warnings.

@kunaltyagi

Copy link
Copy Markdown
Member

Pinging @shrijitsingh99

Using Release occupies less space and is also around 1.4x faster compared to RelWithDebInfo
Compiling some of the test targets with -j2 option used to lead to pipeline failures but now that issue is no longer present
* leaf_node may have been uninitialized
* signed overflow may have occurred for m_count & m_capacity
@shrijitsingh99

Copy link
Copy Markdown
Contributor Author

LGTM. Despite the messed up casts :')

In terms of commit organization I would squash things into the following 4 topics:

  • Update build type to release
  • Removing of multistep build
  • File renaming
  • All commits related to suppressing warnings.

Done

@SergioRAgostinho SergioRAgostinho removed the needs: author reply Specify why not closed/merged yet label Mar 23, 2020
@SergioRAgostinho
SergioRAgostinho merged commit d0f5b23 into PointCloudLibrary:master Mar 23, 2020
@taketwo

taketwo commented Mar 23, 2020 •

Copy link
Copy Markdown
Member

Updated the filenames on Azure 🚀

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.

[Ubuntu 19.10 CI] Out of memory (disk space)

5 participants