Skip to content

[SYCL][ESIMD] Bring vc-intrinsics sources #1930

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

Merged
merged 1 commit into from
Jun 26, 2020
Merged

Conversation

asi-sc
Copy link
Contributor

@asi-sc asi-sc commented Jun 19, 2020

VC intrinsics library is required by LowerESIMD pass (#1881).

@asi-sc asi-sc requested a review from a team as a code owner June 19, 2020 12:52
@asi-sc asi-sc requested a review from v-klochkov June 19, 2020 12:52
@@ -184,6 +184,21 @@ install(DIRECTORY ${OPENCL_INCLUDE}/CL
COMPONENT opencl-headers
)

if (NOT TARGET LLVMGenXIntrinsics)
message(STATUS "vc-intrinsics are missing. Will try to download them from github.com")
include(FetchContent)
Copy link
Contributor

@v-klochkov v-klochkov Jun 19, 2020

Choose a reason for hiding this comment

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

The line 1 in this CmakeLists.txt file says:
cmake_minimum_required(VERSION 3.2)
But the FetchContent becomes available only in Cmake-3.11

Is there any specific reason why you need FetchContent and move the download to 'configure' phase instead of using ExternalProject and have the download at 'build' phase?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We have a long discussion in an email tread. The reason for this is a cyclic dependency LLVM->vc-instrinsics->LLVM (LowerESIMD). And we decided that I can use this mechanism,

Copy link
Contributor

@v-klochkov v-klochkov Jun 19, 2020

Choose a reason for hiding this comment

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

Please add those people to reviewers.
If you keep using this mechanism, then please a) update the first line in this file and b) update the pre-requisites here: https://intel.github.io/llvm-docs/GetStartedGuide.html#prerequisites

Copy link
Contributor Author

Choose a reason for hiding this comment

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

OK, done. I set 3.14 version because FetchContent_MakeAvailable was introduced at this version.

@v-klochkov v-klochkov requested review from a team and bader June 19, 2020 17:03
@kbobrovs kbobrovs requested a review from vladimirlaz June 19, 2020 18:45
Copy link
Contributor

@vladimirlaz vladimirlaz left a comment

Choose a reason for hiding this comment

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

approve to start testin

@vladimirlaz vladimirlaz self-requested a review June 21, 2020 14:52
Copy link
Contributor

@vladimirlaz vladimirlaz left a comment

Choose a reason for hiding this comment

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

please add possibility to provide source directory in cmake command line.

VC intrinsics library is required by LowerESIMD pass.
Copy link
Contributor

@v-klochkov v-klochkov left a comment

Choose a reason for hiding this comment

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

The changes look good to me.
Raising the cmake version from 3.2 to 3.14 may need approval from @bader and/or @pvchupin

Copy link
Contributor

@kbobrovs kbobrovs left a comment

Choose a reason for hiding this comment

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

Doc change LGTM

@kbobrovs
Copy link
Contributor

@bader - please take a look, leave it to you to merge.

@kbobrovs kbobrovs added the esimd Explicit SIMD feature label Jun 25, 2020
@bader
Copy link
Contributor

bader commented Jun 26, 2020

VC intrinsics library is required by LowerESIMD pass (#1881).

It seems to me that it would be more reasonable to move CMake changes from SYCL library CMake to llvm/lib/SYCLLowerIR/CMakeLists.txt.
I think it would be much easier to manage SYCLLowerIR pass with it's dependencies.
@asidoren-intel, don't you think so?
I you agree, I suggest moving this patch to PR #1881.

@bader
Copy link
Contributor

bader commented Jun 26, 2020

The changes look good to me.
Raising the cmake version from 3.2 to 3.14 may need approval from @bader and/or @pvchupin

@tfzhu, @vladimirlaz, is CI environment ready for such change?

@vladimirlaz
Copy link
Contributor

The changes look good to me.
Raising the cmake version from 3.2 to 3.14 may need approval from @bader and/or @pvchupin

@tfzhu, @vladimirlaz, is CI environment ready for such change?

We already moved all CIs (to 3.15 to match future LLVM expectations)

@v-klochkov v-klochkov merged commit afd7f4a into intel:sycl Jun 26, 2020
@v-klochkov
Copy link
Contributor

v-klochkov commented Jun 26, 2020

It seems to me that it would be more reasonable to move CMake changes from SYCL library CMake to llvm/lib/SYCLLowerIR/CMakeLists.txt.
I think it would be much easier to manage SYCLLowerIR pass with it's dependencies.
@asidoren-intel, don't you think so?
I you agree, I suggest moving this patch to PR #1881.

Ops, sorry, I did not notice this comment when clicked Merge button.

@bader
Copy link
Contributor

bader commented Jun 26, 2020

It seems to me that it would be more reasonable to move CMake changes from SYCL library CMake to llvm/lib/SYCLLowerIR/CMakeLists.txt.
I think it would be much easier to manage SYCLLowerIR pass with it's dependencies.
@asidoren-intel, don't you think so?
I you agree, I suggest moving this patch to PR #1881.

Ops, sorry, I did not notice this comment when clicked Merge button.

I think it can be applied in scope of #1881 i.e. moving CMake changes from SYCL library to LLVM pass.

@asi-sc
Copy link
Contributor Author

asi-sc commented Jun 29, 2020

It seems to me that it would be more reasonable to move CMake changes from SYCL library CMake to llvm/lib/SYCLLowerIR/CMakeLists.txt.
I think it would be much easier to manage SYCLLowerIR pass with it's dependencies.
@asidoren-intel, don't you think so?
I you agree, I suggest moving this patch to PR #1881.

Ops, sorry, I did not notice this comment when clicked Merge button.

I think it can be applied in scope of #1881 i.e. moving CMake changes from SYCL library to LLVM pass.

As for me, it depends on the further usage of vc-intrinsics. For now, this library is required only in SYCLLowerIR and it may be reasonably moved there. Can we imagine another user of vc-intrinsics library here? If we can, I'm not sure that we should move it.

@bader
Copy link
Contributor

bader commented Jun 29, 2020

There are no usages of this intrinsics in the SYCL runtime library, so I don't understand why it's added to sycl/CMakeLists.txt in the first place.

@kbobrovs
Copy link
Contributor

kbobrovs commented Jun 29, 2020

@asidoren-intel, I think such need in vc-intrinsics is quite unlikely for now, so I agree with @bader 's comment - will update #1881 and move this to SYCLLowerIR to get better encapsulation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
esimd Explicit SIMD feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants