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

[ESIMD][NFC] Rework the L1/L2 cache hints passing across internal funcs #12899

Merged
merged 4 commits into from
Mar 5, 2024

Conversation

v-klochkov
Copy link
Contributor

@v-klochkov v-klochkov commented Mar 4, 2024

This is the 1st patch in the upcoming series of similar patches.

Cache-hints:

  • cache_hint and cache_level were also moved to memory_properties.hpp
  • added check_cache_hints() function accepting PropertyListT instead of
    L1/L2 template parameters.

Restructures in block_load:

  • block_load_impl() functions now accept template param PropertyListT
    instead of L1H, L2H and alignment FlagsT.
  • only block_load_impl functions call check_cache_hints() now.
  • Replaced the uses of lsc.load.stateless with lsc.load.merge.stateless
    It does not change the GPU code-gen, it is identical.

Restructures in block_store:

  • block_store_impl() functions now accept template param PropertyListT
    instead of L1H, L2H and alignment FlagsT.

Cache-hints:
* cache_hint and cache_level were also moved to memory_properties.hpp
* added check_cache_hints() function accepting PropertyListT instead of
  L1/L2 template parameters.

Restructures in block_Load:
* block_load_impl() functions now accept template param PropertyListT
  instead of L1H, L2H and alignment FlagsT.
* only block_load_impl functions call check_cache_hints() now.
* Replaced the uses of lsc.load.stateless with lsc.load.merge.stateless
  It does not change the GPU code-gen, it is identical.

Signed-off-by: Klochkov, Vyacheslav N <vyacheslav.n.klochkov@intel.com>
…2 and FlagsT

Signed-off-by: Klochkov, Vyacheslav N <vyacheslav.n.klochkov@intel.com>
@v-klochkov v-klochkov force-pushed the esimd_L1_L2_rework_L3_assert branch from 35c0956 to 5fc647c Compare March 5, 2024 02:26
@v-klochkov v-klochkov marked this pull request as ready for review March 5, 2024 02:58
@v-klochkov v-klochkov requested a review from a team as a code owner March 5, 2024 02:58
@sarnex
Copy link
Contributor

sarnex commented Mar 5, 2024

The Linux failures seem like they might be related. If not let me know and I will review this now.

@v-klochkov
Copy link
Contributor Author

v-klochkov commented Mar 5, 2024

The Linux failures seem like they might be related. If not let me know and I will review this now.

It is interesting that SYCLOS has extra new GPU driver now - 1.3.28454.
I used agama 1.3.28202 and the test passed locally. The GPU asm is identical with and without my patch.
The test also passed with not-public-yet new driver - 1.3.28597

Copy link
Contributor

@sarnex sarnex left a comment

Choose a reason for hiding this comment

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

looks great, really cool cleanup. just a minor question

sycl/test/esimd/memory_properties.cpp Show resolved Hide resolved
@v-klochkov v-klochkov merged commit 179b721 into intel:sycl Mar 5, 2024
12 checks passed
@v-klochkov v-klochkov deleted the esimd_L1_L2_rework_L3_assert branch March 5, 2024 23:26
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.

3 participants