Skip to content

[SYCL] [FPGA] Create experimental headers for FPGA latency control #5066

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 3 commits into from
Dec 8, 2021

Conversation

shuoniu-intel
Copy link
Contributor

@shuoniu-intel shuoniu-intel commented Dec 1, 2021

Create experimental header files that provide user API for FPGA latency control feature.

  • experimental/fpga_lsu.hpp and experimental/pipes.hpp are simply the original version plus latency control API described in the extension documents.
  • experimental/fpga_utils.hpp provides utility functions used by experimental LSU and pipe headers.
  • fpga_extensions.hpp will include new experimental LSU and pipe headers.

Related PR for extension documents: #5027

Test: intel/llvm-test-suite#596

@shuoniu-intel shuoniu-intel force-pushed the br-latency-control-header branch from 4b123f4 to 1c44e45 Compare December 1, 2021 21:25
@shuoniu-intel shuoniu-intel changed the title [SYCL] [FPGA] Create experimental FPGA latency control headers [SYCL] [FPGA] Create experimental headers for FPGA latency control Dec 2, 2021
@shuoniu-intel shuoniu-intel marked this pull request as ready for review December 2, 2021 22:23
@shuoniu-intel shuoniu-intel requested review from MrSidims and a team as code owners December 2, 2021 22:23
@MrSidims MrSidims requested a review from mlychkov December 3, 2021 07:42
@shuoniu-intel
Copy link
Contributor Author

@MrSidims @mlychkov Could you please review?

MrSidims
MrSidims previously approved these changes Dec 6, 2021
#if defined(__SYCL_DEVICE_ONLY__) && __has_builtin(__builtin_intel_fpga_mem)
// FPGA BE will recognize this function and extract its arguments.
template <typename _T>
static _T *__latency_control_mem_wrapper(_T *Ptr, int32_t AnchorID,
Copy link
Contributor

Choose a reason for hiding this comment

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

Discussed offline. I'm okay with the current approach as the feature is 'experimental'. Yet relying on the magic function is fragile and should/will be replaced when the appropriate SPIR-V extension is ready.

@shuoniu-intel
Copy link
Contributor Author

@cperkinsintel could you please review?

Copy link
Contributor

@cperkinsintel cperkinsintel left a comment

Choose a reason for hiding this comment

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

If @MrSidims is OK with this, then I am too. Looks good to me.

@romanovvlad romanovvlad merged commit a3e9aab into intel:sycl Dec 8, 2021
@shuoniu-intel shuoniu-intel deleted the br-latency-control-header branch December 8, 2021 15:00
alexbatashev added a commit to alexbatashev/llvm that referenced this pull request Dec 11, 2021
* upstream/sycl: (725 commits)
  [SYCL] Translate ZE_RESULT_ERROR_INVALID_ARGUMENT error code from L0 RT (intel#5122)
  [SYCL][L0][Plugin] Call ZeCommandQueueCreate on demand (intel#5109)
  [SYCL] Switch to using blocking USM free for OpenCL GPU (intel#4928)
  [CI] Disable pack and upload steps (intel#5119)
  [SYCL] Disable submission of AssertInfoCopier for FPGA (intel#4780)
  [SYCL][SPIRV] Implement islessgreater with FOrdNotEqual instead (intel#5076)
  [SYCL] Fix typo in the name of the host-visible pool (intel#5073)
  [SYCL] Only call shutdown when DLL is being unloaded, not when process is terminating (intel#4983)
  [SYCL][CUDA][PI] Fix infinite loop when parallel_for range exceeds INT_MAX (intel#5095)
  [SYCL] Translate out-of-memory error codes from L0 RT (intel#5107)
  [SYCL] Fix a few warnings during build scripts configuration (intel#5082)
  [SYCL] Fix amdgpu openmp test (intel#5103)
  [SYCL] [FPGA] Create experimental headers for FPGA latency control (intel#5066)
  [SYCL][CUDA] Don't enqueue an event wait on same CUDA stream (intel#5099)
  Remove PR disable template (intel#5102)
  [BuildBot]Uplift CPU/FPGAEMU RT version (intel#5078)
  [SYCL] Fix the test to not depend on a specific line. (intel#5092)
  [CI] Provide libclc targets to build and test (intel#5091)
  Fix build of `check-llvm-spirv` target after 8f8001a
  Force opt to use new pass manager in pr52289 test after c34d157
  ...
alexbatashev added a commit to alexbatashev/llvm that referenced this pull request Dec 12, 2021
* upstream/sycl:
  [CI] Add container users to video group (intel#5101)
  [CI] More typo fixes in Nightly build (intel#5088)
  Revert "[CI] Disable pack and upload steps (intel#5119)" (intel#5125)
  [SYCL] Translate ZE_RESULT_ERROR_INVALID_ARGUMENT error code from L0 RT (intel#5122)
  [SYCL][L0][Plugin] Call ZeCommandQueueCreate on demand (intel#5109)
  [SYCL] Switch to using blocking USM free for OpenCL GPU (intel#4928)
  [CI] Disable pack and upload steps (intel#5119)
  [SYCL] Disable submission of AssertInfoCopier for FPGA (intel#4780)
  [SYCL][SPIRV] Implement islessgreater with FOrdNotEqual instead (intel#5076)
  [SYCL] Fix typo in the name of the host-visible pool (intel#5073)
  [SYCL] Only call shutdown when DLL is being unloaded, not when process is terminating (intel#4983)
  [SYCL][CUDA][PI] Fix infinite loop when parallel_for range exceeds INT_MAX (intel#5095)
  [SYCL] Translate out-of-memory error codes from L0 RT (intel#5107)
  [SYCL] Fix a few warnings during build scripts configuration (intel#5082)
  [SYCL] Fix amdgpu openmp test (intel#5103)
  [SYCL] [FPGA] Create experimental headers for FPGA latency control (intel#5066)
  [SYCL][CUDA] Don't enqueue an event wait on same CUDA stream (intel#5099)
  Remove PR disable template (intel#5102)
  [BuildBot]Uplift CPU/FPGAEMU RT version (intel#5078)
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.

4 participants