Skip to content

Conversation

bratpiorka
Copy link
Contributor

@bratpiorka bratpiorka commented Sep 18, 2024

This PR enables GPU IPC (Inter-Process Communication) tests on Windows by implementing Windows-specific socket functionality and memory exchange mechanisms. The changes introduce a new memory exchange policy for Level Zero providers to work around IPC limitations on Windows.

Key changes:

  • Implements Windows socket support in IPC test infrastructure using Winsock2
  • Adds new memory exchange policy (import/export) for Level Zero providers on Windows
  • Creates Windows batch scripts for running GPU IPC tests

@bratpiorka bratpiorka force-pushed the rrudnick_ipc_win branch 5 times, most recently from 6da36e1 to da553d7 Compare September 19, 2024 08:08
@bratpiorka bratpiorka force-pushed the rrudnick_ipc_win branch 3 times, most recently from a77f891 to 78361c2 Compare September 16, 2025 14:49
@bratpiorka bratpiorka changed the title enable IPC tests and examples on Windows enable GPU IPC tests and examples on Windows Sep 16, 2025
@bratpiorka bratpiorka force-pushed the rrudnick_ipc_win branch 6 times, most recently from 976028a to cfc6f31 Compare September 17, 2025 08:27
@bratpiorka bratpiorka changed the title enable GPU IPC tests and examples on Windows enable GPU IPC tests on Windows Sep 17, 2025
@bratpiorka bratpiorka marked this pull request as ready for review September 17, 2025 12:03
@bratpiorka bratpiorka requested a review from a team as a code owner September 17, 2025 12:03
Copy link
Contributor

@lukaszstolarczuk lukaszstolarczuk left a comment

Choose a reason for hiding this comment

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

good job in general, a few minor issues

@bratpiorka bratpiorka force-pushed the rrudnick_ipc_win branch 7 times, most recently from d0aca41 to becaa7d Compare September 17, 2025 18:36
@bratpiorka bratpiorka force-pushed the rrudnick_ipc_win branch 9 times, most recently from b12a5d7 to e3cfa20 Compare October 14, 2025 10:01
@bratpiorka
Copy link
Contributor Author

@bratpiorka bratpiorka requested review from Copilot and lplewa October 14, 2025 10:08
@bratpiorka bratpiorka marked this pull request as ready for review October 14, 2025 10:08
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

@oneapi-src oneapi-src deleted a comment from Copilot AI Oct 14, 2025
@oneapi-src oneapi-src deleted a comment from Copilot AI Oct 14, 2025
@oneapi-src oneapi-src deleted a comment from Copilot AI Oct 14, 2025
@oneapi-src oneapi-src deleted a comment from Copilot AI Oct 14, 2025
@oneapi-src oneapi-src deleted a comment from Copilot AI Oct 14, 2025
@bratpiorka
Copy link
Contributor Author

@lplewa please re-review

Copy link
Contributor

@lplewa lplewa left a comment

Choose a reason for hiding this comment

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

Documentation and examples are missing

Comment on lines 88 to 94
typedef enum umf_level_zero_memory_provider_memory_exchange_policy_t {
UMF_LEVEL_ZERO_MEMORY_PROVIDER_MEMORY_EXCHANGE_POLICY_IPC =
0, ///< Memory exchange policy based on IPC. Default.
UMF_LEVEL_ZERO_MEMORY_PROVIDER_MEMORY_EXCHANGE_POLICY_IMPORT_EXPORT,
///< Memory exchange policy based on import/export APIs. Should be used if IPC exchange policy is not supported.
} umf_level_zero_memory_provider_memory_exchange_policy_t;

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not a fan of this enum - can we at least mark it as experimental as it is related to experimental CTL api?

IMHO best if CTL api just work on int - and we do not have this enum at all TBH

void *ctx, umf_ctl_query_source_t source, void *arg, size_t size,
umf_ctl_index_utlist_t *indexes) {
/* suppress unused-parameter errors */
(void)source, (void)indexes, (void)size;
Copy link
Contributor

Choose a reason for hiding this comment

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

Check size if it's correct

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

void *ctx, umf_ctl_query_source_t source, void *arg, size_t size,
umf_ctl_index_utlist_t *indexes) {
/* suppress unused-parameter errors */
(void)source, (void)indexes, (void)size;
Copy link
Contributor

Choose a reason for hiding this comment

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

Check size if it's correct

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

@bratpiorka bratpiorka force-pushed the rrudnick_ipc_win branch 4 times, most recently from 10d8f53 to 8d79f8f Compare October 16, 2025 09:51
@bratpiorka bratpiorka merged commit 58f134c into oneapi-src:main Oct 16, 2025
76 checks passed
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.

5 participants