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

[SYCL] Do not internalize kernels when supporting dynamic linking #15307

Merged
merged 6 commits into from
Sep 18, 2024

Conversation

LU-JOHN
Copy link
Contributor

@LU-JOHN LU-JOHN commented Sep 5, 2024

Do not internalize kernels when supporting dynamic linking. Kernels must be visible so that host code can find them.

Copy link
Contributor

@aelovikov-intel aelovikov-intel left a comment

Choose a reason for hiding this comment

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

How do you select which tests to modify?

@LU-JOHN
Copy link
Contributor Author

LU-JOHN commented Sep 6, 2024

How do you select which tests to modify?

I privately enabled -fsycl-allow-device-dependencies by default and made a list of all new failures. These were the new failures fixed by this change.

@aelovikov-intel
Copy link
Contributor

I privately enabled -fsycl-allow-device-dependencies by default and made a list of all new failures. These were the new failures fixed by this change.

Are we planning to flip the default in future? If so, we need a comment near these new RUN lines that they should be dropped once that happens. And if not, I'm not sure this is a good strategy for the tests for a feature...

@LU-JOHN
Copy link
Contributor Author

LU-JOHN commented Sep 6, 2024

I privately enabled -fsycl-allow-device-dependencies by default and made a list of all new failures. These were the new failures fixed by this change.

Are we planning to flip the default in future? If so, we need a comment near these new RUN lines that they should be dropped once that happens. And if not, I'm not sure this is a good strategy for the tests for a feature...

Removed new RUN lines. Added new testcase in DeviceDependencies directory to exercise this fix.

llvm/lib/SYCLLowerIR/ModuleSplitter.cpp Outdated Show resolved Hide resolved
});
Queue.wait();
bool PassA = checkUSM(usmPtr, Range, Result);
std::cout << "Test 1a: " << (PassA ? "PASS" : "FAIL") << std::endl;
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think that our E2E tests should print anything in a positive scenario when they pass. The motivation for that is to reduce amount of I/O performed by tests and less data that has to be processed by lit framework. Logs for passed tests are hidden anyways, so they are of no use in our CI.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Add TODO comment

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 rather immediately drop (almost) all std::cout lines, but I will leave that up to SYCL RT reviewers, who are code owners of the file

Copy link
Contributor

@asudarsa asudarsa left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks

Copy link
Contributor

@AlexeySachkov AlexeySachkov left a comment

Choose a reason for hiding this comment

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

ModuleSplitter.cpp and design doc changes LGTM

@asudarsa asudarsa merged commit 9e39902 into intel:sycl Sep 18, 2024
12 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