Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IDAG] Upstream Multi-Device Selection + Tests #255

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

fknorr
Copy link
Contributor

@fknorr fknorr commented Jun 19, 2024

This upstreams the new device selection logic developed by @psalz for the old multi-GPU Celerity branch alongside modifications I made for the new IDAG backend logic.

While the old single-device selection logic remains in place until the IDAG execution PR, its tests are already replaced here to streamline the merge process.

@fknorr fknorr added this to the 0.6.0 milestone Jun 19, 2024
@fknorr fknorr requested review from psalz and PeterTh June 19, 2024 13:17
@fknorr fknorr self-assigned this Jun 19, 2024
Copy link

Check-perf-impact results: (7b849de16ff11660b98988ab0b032db7)

❓ No new benchmark data submitted. ❓
Please re-run the microbenchmarks and include the results if your commit could potentially affect performance.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

include/device_selection.h Show resolved Hide resolved
};
std::shared_ptr<impl> m_pimpl; // Use PIMPL for reference semantics

mock_device(impl i) : m_pimpl(std::make_shared<impl>(i)) {}

Choose a reason for hiding this comment

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

warning: the parameter 'i' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]

Suggested change
mock_device(impl i) : m_pimpl(std::make_shared<impl>(i)) {}
mock_device(const impl& i) : m_pimpl(std::make_shared<impl>(i)) {}

test/device_selection_tests.cc Show resolved Hide resolved
test/device_selection_tests.cc Show resolved Hide resolved
test/device_selection_tests.cc Show resolved Hide resolved
test/device_selection_tests.cc Show resolved Hide resolved
test/device_selection_tests.cc Show resolved Hide resolved
test/device_selection_tests.cc Show resolved Hide resolved
@coveralls
Copy link

coveralls commented Jun 19, 2024

Pull Request Test Coverage Report for Build 9582564578

Details

  • 107 of 109 (98.17%) changed or added relevant lines in 2 files are covered.
  • 66 unchanged lines in 2 files lost coverage.
  • Overall coverage decreased (-1.2%) to 93.536%

Changes Missing Coverage Covered Lines Changed/Added Lines %
include/device_selection.h 99 100 99.0%
include/utils.h 8 9 88.89%
Files with Coverage Reduction New Missed Lines %
src/task.cc 1 87.58%
include/device_queue.h 65 39.23%
Totals Coverage Status
Change from base Build 9549035557: -1.2%
Covered Lines: 7095
Relevant Lines: 7376

💛 - Coveralls

Copy link
Member

@psalz psalz left a comment

Choose a reason for hiding this comment

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

Remarkable, this might be your best work yet! 😜 Jokes aside, the new backend selection logic looks good!

Now that it ended up being a separate commit after all, you could throw me a bone with a Co-authored-by :-)

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.

None yet

3 participants