-
Notifications
You must be signed in to change notification settings - Fork 769
[SYCL][ESIMD][EMU] pi_esimd_cpu bringing up with CM library #4011
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][ESIMD][EMU] pi_esimd_cpu bringing up with CM library #4011
Conversation
This PR is for a change set that invokes CM functionalities for ESIMD_CPU - initializing CM_EMU module, launching kernel, and accessing CM-managed resources like buffer, etc. CM_EMU library is built online downloading opensource CM_EMU hosted in github. |
* This PR is for enabling kernel launching for ESIMD_CPU * Also contains emulated intrinsics for memory operations * esimd_cpu backend is loaded in SYCL runtime * Base PR : intel#4011
* This PR is for enabling kernel launching for ESIMD_CPU * Also contains emulated intrinsics for memory operations * esimd_cpu backend is loaded in SYCL runtime * Base PR : intel#4011
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First few comments, continuing...
sycl/include/sycl/ext/intel/experimental/esimd/detail/cmrt_if_defs.hpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
continuing...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
continuing...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
may have few more comments after these ones are addressed
sycl/include/sycl/ext/intel/experimental/esimd/detail/cmrt_if_defs.hpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PI related changes LGTM
This PR cannot be merged automatically due to conflict from #4014 (File relocation + revision). I'll make a single commit using these change sets and fix conflict on top of it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please address FIXME in piMemBufferCreate in this PR, and my 8 other comments could be addresses in a separate PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is the final set of comments.
As two reviewers have approved this PR, I'll resolve conflict in order to merge to SYCL branch. Some changes could be reverted and brought back with revision aligned with up to date SYCL branch. |
- This PR is for a change set that invokes CM functionalities for ESIMD_CPU - initializing CM_EMU module, launching kernel, and accessing CM-managed resources like buffer, etc. CM_EMU library is built online downloading opensource CM_EMU hosted in github (https://github.com/intel/cm-cpu-emulation.git) under Linux environment Co-authored-by: Romanov Vlad <[email protected]> Co-authored-by: kbobrovs <[email protected]>
8b5ef21
to
1de600c
Compare
…e-build" This reverts commit 3678d7b.
Per discussion with @dongkyunahn-intel, we should not build any dependencies like libCM or moreover libva/libdrm. ESIMD EMU cmake files should only depend on pre-built libCM. We should also understand what are runtime dependencies for the libCM version we build the plugin with, and have those (libva, libdrm,...) installed on the buildbot machines which run ESIMD CPU emulation tests.
|
- Instead of building online - Library package is downloaded from https://github.com/intel/cm-cpu-emulation - Windows is not supported yet
I think we need a full list of new deps like you said, also we need to see if these are available from the standard OS distro or should be taken from elsewhere? What's the plan for Windows? |
As far as I know, open-source CM has dependency on libva and libffi. Libva has dependency on libdrm and some utilities like autoconf. Some packages and utilities are not installed by default under ubuntu - they have to be installed manually. For Windows, CM has dependency on libffi. As far as I know, there is no pre-built library for libffi.dll/lib we can download from internet. I was considering pre-built package for Windows generated in-house as building libffi during CM building with MSVC was tricky. There could be more dependency as Windows opensource work is not started yet. |
Github cannot find requested change. Probably removed during forced-push.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to go to me, towards initial bring-up of the feature.
Github still says 'Merging is blocked' / 'The base branch restricts merging to authorized users'. I got approvals from two code owners - Kai Yu and Sergey M, and all checks have passed. Can you help me merge this PR? |
@dongkyunahn-intel, I reverted this change because it failed build in post-commit testing: https://github.com/intel/llvm/runs/3442475454. |
@bader, this problem has to be resolved in infra side. The failure is because of missing package - libva-dev(ubuntu) / libva-devel(RHEL). I had same problem with RHEL build from Jenkins/Precommit test, and it was resolved with libva-devel package installed. CM_EMU has dependency on the libva-dev library. I'll talk to Konst and infra folks. |
@dongkyunahn-intel, this is a new requirement for development system, which impacts all developers. |
Yes. CM requires libva library installed - https://github.com/intel/cm-cpu-emulation#linux. (Although there is other dependencies in the documentation, they are not required for ESIMD_CPU). |
Can we follow CUDA/HIP plug-in approach and enable ESIMD_CPU only if its build is explicitly requested via @pvchupin, FYI. |
Yes. I can disable ESIMD_CPU by default in |
New PR posted : #4430 |
Reverted intel#4011 as part of the resolution (which would be reverted otherwise in 2 commits) to fix the build. Essentially a cherry-pick of: 9189ef6 Mon Aug 30 01:59:34 2021 Alexey Bader: Revert "[SYCL][ESIMD][EMU] pi_esimd_cpu bringing up with CM library (intel#4011)" (intel#4421)
…ing (#4020) * [SYCL][ESIMD][EMU] ESIMD_CPU Kernel launch and Emulated Intrinsics * This PR is for enabling kernel launching for ESIMD_CPU * esimd_cpu backend is loaded in SYCL runtime * Base PR : #4011 Author: dongkyunahn-intel <[email protected]>
No description provided.