Skip to content

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 a team and MrSidims 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