Skip to content

62 build times are too high for test saturate - #63

Merged
albertandaluz merged 6 commits into
mainfrom
62-build-times-are-too-high-for-test_saturate
Sep 13, 2025
Merged

62 build times are too high for test saturate#63
albertandaluz merged 6 commits into
mainfrom
62-build-times-are-too-high-for-test_saturate

Conversation

@albertandaluz

@albertandaluz albertandaluz commented Jun 23, 2025

Copy link
Copy Markdown
Member

reducing build times by distributing template compilation across separate compilation units
This PR distributes template compilation across separate compilation units to reduce build times for test saturation. The refactoring splits monolithic header-only test files into generated per-type templates that can be compiled in parallel.

Introduces template-based code generation for test compilation units using CMake configure_file
Replaces header-only implementations with shared library builds for better parallelization
Adds build system support for Windows export headers and cross-platform compiler warning suppression
Reviewed Changes

@albertandaluz albertandaluz linked an issue Jun 23, 2025 that may be closed by this pull request
@albertandaluz albertandaluz self-assigned this Jun 23, 2025
@morousg
morousg requested a review from Copilot June 26, 2025 12:02

This comment was marked as outdated.

@albertandaluz
albertandaluz force-pushed the 62-build-times-are-too-high-for-test_saturate branch 2 times, most recently from 1c35773 to fcc9b3e Compare July 23, 2025 16:32
@albertandaluz
albertandaluz force-pushed the 62-build-times-are-too-high-for-test_saturate branch 21 times, most recently from e575794 to 8d4c05e Compare August 6, 2025 14:33
@albertandaluz
albertandaluz force-pushed the 62-build-times-are-too-high-for-test_saturate branch 3 times, most recently from bcd8d42 to 1b1e015 Compare August 11, 2025 16:49
@albertandaluz
albertandaluz requested a review from Copilot August 31, 2025 18:54

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

@albertandaluz
albertandaluz marked this pull request as draft September 1, 2025 16:13

This comment was marked as outdated.

@albertandaluz
albertandaluz force-pushed the 62-build-times-are-too-high-for-test_saturate branch 2 times, most recently from 9d4b296 to cb2f643 Compare September 1, 2025 16:49

This comment was marked as outdated.

@albertandaluz
albertandaluz force-pushed the 62-build-times-are-too-high-for-test_saturate branch 2 times, most recently from 8760a74 to 96b9dce Compare September 1, 2025 17:01

This comment was marked as outdated.

This comment was marked as outdated.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

This PR refactors the test build system to reduce compilation times by distributing template-heavy test code across separate compilation units that can be built in parallel. The changes split monolithic header-only test files into generated per-type templates using CMake's configure_file mechanism.

  • Introduces template-based code generation for individual fundamental types (char, int, float, etc.)
  • Replaces header-only test implementations with shared library builds for better parallelization
  • Adds comprehensive build system support including Windows export headers and cross-platform compiler warnings

Reviewed Changes

Copilot reviewed 23 out of 23 changed files in this pull request and generated no comments.

Show a summary per file
File Description
utests/core/utils/utest_cuda_vector_utils/*.in Template files for generating per-type test compilation units
utests/algorithm/image_processing/utest_saturate/*.in Template files for saturate test per-type compilation units
cmake/tests/*.cmake Build system support for shared test libraries and export headers
utests/CMakeLists.txt Updated to use new shared library test approach
CMakeLists.txt Added export header support and test build options

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@morousg morousg 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.

I reinstalled VS2022 Community, version 17.14.13, installed CUDA 12.9, using cmake 3.31.5, and I keep getting this project folder structure. I understand that we should see a folder tests and another folder utests, without the FKL "pre-folder".

Maybe it is related to the way the project was cloned? I cloned the repo with source tree, into a folder named FKL.

Image

Please, try to reproduce the issue and fix it. In the mean time, I'm going to chage a few things in how the code is distributed.

Albert Andaluz and others added 4 commits September 9, 2025 19:49
# Conflicts:
#	.github/workflows/cmake-linux-arm64.yml
#	CMakeLists.txt
#	cmake/tests/add_generated_test.cmake
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build times are too high for test_saturate

3 participants