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

Implement SplitK and StreamK algorithm for Intel PVC #132

Open
wants to merge 34 commits into
base: sycl-develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
49a986a
WIP: Introduce StreamK for PVC
muhammad-tanvir-1211 Aug 14, 2024
758038a
Merge branch 'sycl-develop' of https://github.com/codeplaysoftware/cu…
muhammad-tanvir-1211 Aug 21, 2024
ce8b3a2
fixed starting index calculation
muhammad-tanvir-1211 Aug 28, 2024
9599d62
Fixed barrier count update
muhammad-tanvir-1211 Aug 29, 2024
76e54f9
Fixed compilation for normal GEMM
muhammad-tanvir-1211 Aug 29, 2024
b072873
Perform fixup using threadid instead of subgroup_id
muhammad-tanvir-1211 Aug 29, 2024
6be72be
Fixed the k_idx offset for MMA atom and corrected the reduction offse…
muhammad-tanvir-1211 Aug 29, 2024
e00f9da
Use log2 for available_xecores
muhammad-tanvir-1211 Aug 29, 2024
224b316
SplitK working
muhammad-tanvir-1211 Sep 2, 2024
59b884f
Minor cleanup
muhammad-tanvir-1211 Sep 2, 2024
4e9f9c3
Fixed splitK for batch > 1
muhammad-tanvir-1211 Sep 2, 2024
345dcae
Re-enabled GEMM Universal Adater specialization
muhammad-tanvir-1211 Sep 2, 2024
05b487a
Update split barrier arguments
muhammad-tanvir-1211 Sep 2, 2024
bff4801
Minor cleanup
muhammad-tanvir-1211 Sep 2, 2024
3300bf7
Changed initialization to workspace only
muhammad-tanvir-1211 Sep 3, 2024
0db7398
Merge branch 'sycl-develop' into intel_pvc_streamk
mehdi-goli Sep 3, 2024
f559e31
Fix CI failure
muhammad-tanvir-1211 Sep 3, 2024
bcf812e
Added support for scheduling non-uniform tiles
muhammad-tanvir-1211 Sep 4, 2024
1544d51
Only include split barrier flags for PVC
muhammad-tanvir-1211 Sep 4, 2024
2ab1cd8
Test
muhammad-tanvir-1211 Sep 4, 2024
750ee3a
Code cleanup
muhammad-tanvir-1211 Sep 4, 2024
8924208
Add separate example for StreamK
muhammad-tanvir-1211 Sep 4, 2024
e8b2d24
Address feedback for split barrier
muhammad-tanvir-1211 Sep 6, 2024
16f31a2
Merge branch 'sycl-develop' of https://github.com/codeplaysoftware/cu…
muhammad-tanvir-1211 Sep 6, 2024
c3875e7
Fix address space for atomicAdd
muhammad-tanvir-1211 Sep 9, 2024
7cfbf62
Renamed the pipeline file
muhammad-tanvir-1211 Sep 9, 2024
e08e740
Merge branch 'sycl-develop' of https://github.com/codeplaysoftware/cu…
muhammad-tanvir-1211 Sep 16, 2024
93d87fc
Renamed files to xe_*
muhammad-tanvir-1211 Sep 16, 2024
e2a0d9b
Update the example to reduce caching effects
muhammad-tanvir-1211 Sep 18, 2024
6d19000
Refactor pipeline code
muhammad-tanvir-1211 Sep 20, 2024
c06a28e
Add the option to invoke data parallel decomposition
muhammad-tanvir-1211 Sep 26, 2024
9ba3b6c
Merge branch 'sycl-develop' of https://github.com/codeplaysoftware/cu…
muhammad-tanvir-1211 Oct 23, 2024
2997eca
Fixing bugs post merge
muhammad-tanvir-1211 Oct 23, 2024
8e20733
Address PR feedback
muhammad-tanvir-1211 Oct 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,8 @@ endif()

# Warnings-as-error exceptions and warning suppressions for Clang builds
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-command-line-argument ")
list(APPEND CUTLASS_CUDA_NVCC_FLAGS "-Wno-error=unused-command-line-argument")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=implicit-int-conversion ")
list(APPEND CUTLASS_CUDA_NVCC_FLAGS "-Wno-error=implicit-int-conversion" )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=pass-failed ")
Expand Down
4 changes: 4 additions & 0 deletions cmake/FindDPCPP.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ if(NOT "${DPCPP_SYCL_ARCH}" STREQUAL "")
endif()
endif()

if("${DPCPP_SYCL_TARGET}" STREQUAL "intel_gpu_pvc")
list(APPEND DPCPP_FLAGS "-Xspirv-translator;--spirv-ext=+SPV_INTEL_split_barrier;-DSPV_INTEL_split_barrier;")
rolandschulz marked this conversation as resolved.
Show resolved Hide resolved
endif()

if(UNIX)
set_target_properties(DPCPP::DPCPP PROPERTIES
INTERFACE_COMPILE_OPTIONS "${DPCPP_FLAGS};${DPCPP_COMPILE_ONLY_FLAGS}"
Expand Down
5 changes: 5 additions & 0 deletions examples/sycl/pvc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,8 @@ cutlass_example_add_executable(
pvc_collective_builder
pvc_collective_builder.cpp
)

cutlass_example_add_executable(
pvc_gemm_streamk
pvc_gemm_streamk.cpp
)
Loading