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

Various features, fixes and hacks to make oneAPI-samples/Libraries/MPI/jacobian_solver SYCL run on PoCL-CPU and PoCL-R #1438

Merged
merged 8 commits into from Mar 15, 2024

Conversation

pjaaskel
Copy link
Member

...via the binary-packaged oneAPI DPC++. Pls check the commits.

@franz
Copy link
Contributor

franz commented Mar 14, 2024

LGTM, just minor nitpicks.

  1. are all of the workgroup functions implemented ? if not, __opencl_c_work_group_collective_functions should be advertised only for ENABLE_CONFORMANCE=OFF builds
  2. did you run the relevant CTS test (conformance_main_workgroup) manually ? this test is not enabled in the "micro" CTS suite (conformance_suite_micro_main) used by the CIs

@franz
Copy link
Contributor

franz commented Mar 14, 2024

BTW i have pushed a commit to revert the Asan/Tsan GH runners

@pjaaskel
Copy link
Member Author

LGTM, just minor nitpicks.

1. are _all_ of the workgroup functions implemented ? if not, `__opencl_c_work_group_collective_functions` should be advertised only for `ENABLE_CONFORMANCE=OFF` builds

2. did you run the relevant CTS test (`conformance_main_workgroup`) manually ? this test is not enabled in the "micro" CTS suite (conformance_suite_micro_main) used by the CIs

Yes to both. We could add this test to the microsuite as it's quite fast.

...around the functional changes.
For example, setting the vendor id to be 32902 (0x8086) and setting the
driver version using **POCL_DRIVER_VER_OVERRIDE** to
"2023.16.7.0.21_160000" (or such) can be used to convince
binary-distributed DPC++ compilers to compile and run SYCL programs on
the PoCL-CPU driver.
GDB seems to fail to load symbols from .so files which have
longer pathnames than 511, thus made the directory length even shorter.
Long directory names are produced a lot with C++/SYCL templated
kernel/function names.
Since the detection doesn't require llvm-spirv and the remote
can support compiling from SPIR-Vs, we should not enable the
runtime check only when the client has LLVM-SPIRV installed and
enaled.

This allows offloading SPIR-Vs from remote-only client builds.
Seems llvm-spirv fails to recompile its own output if the result
contained unknown debug MD (likely produced with newer LLVM-SPIRV/LLVM).
Strip the debug symbols off for now to circumvent the problem.
Passing '--staged' is useful for formatting newly added files.
@pjaaskel pjaaskel merged commit 7f568a4 into pocl:main Mar 15, 2024
34 checks passed
@pjaaskel pjaaskel deleted the wg-collective branch March 15, 2024 16:42
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

2 participants