Skip to content

Commit fb89e24

Browse files
authored
Merge pull request #27 from oneapi-src/dl-mnist/code_update/0926
[dl-mnist] code updates
2 parents ff02400 + a9d5014 commit fb89e24

File tree

4 files changed

+76
-29
lines changed

4 files changed

+76
-29
lines changed

dl-mnist/CUDA/CMakeLists.txt

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ set(CMAKE_CXX_EXTENSIONS OFF)
3232
option(USE_SM "Specifies which streaming multiprocessor architecture to use" )
3333
option(DEVICE_TIMER "Build using Device Timer" OFF)
3434

35+
set(DEF_WL_CXX_FLAGS " ")
36+
set(DEF_GENERAL_CXX_FLAGS " -O2 ")
37+
set(DEF_COMBINED_CXX_FLAGS "${DEF_GENERAL_CXX_FLAGS} ${DEF_WL_CXX_FLAGS}")
38+
3539
set(SOURCES
3640
conv_layer.cudnn.cpp
3741
tensor_mgr.cudnn.cpp
@@ -54,11 +58,21 @@ include_directories(
5458
${CUDA_TOOLKIT_INCLUDE})
5559

5660

57-
if("${CMAKE_CXX_FLAGS}" STREQUAL "")
58-
message(STATUS "Using DEFAULT CXX compilation flags for the application")
59-
string(APPEND CMAKE_CXX_FLAGS " -O2")
60-
else()
61-
message(STATUS "OVERRIDING CXX compilation flags")
61+
# -DCMAKE_CXX_FLAGS=" -blah -blah " overrides the default flags (BOTH general and WL specific)
62+
# -DOVERRIDE_GENERAL_CXX_FLAGS=" -blah -blah " overrides the general flags only (and not the workload specific flags)
63+
# passing in both CMAKE_CXX_FLAGS and OVERRIDE_GENERAL_CXX_FLAGS is not allowed, in order to prevent ambiguity
64+
65+
if(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "" AND NOT "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
66+
message(FATAL_ERROR "Both CMAKE_CXX_FLAGS and OVERRIDE_GENERAL_CXX_FLAGS cannot be passed in together")
67+
elseif("${CMAKE_CXX_FLAGS}" STREQUAL "" AND "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
68+
message(STATUS "Using DEFAULT compilation flags")
69+
set(CMAKE_CXX_FLAGS "${DEF_COMBINED_CXX_FLAGS}")
70+
elseif(NOT "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
71+
message(STATUS "OVERRIDING GENERAL compilation flags")
72+
set(CMAKE_CXX_FLAGS "${OVERRIDE_GENERAL_CXX_FLAGS}")
73+
string(APPEND CMAKE_CXX_FLAGS ${DEF_WL_CXX_FLAGS})
74+
elseif(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "")
75+
message(STATUS "OVERRIDING GENERAL and WORKLOAD SPECIFIC compilation flags")
6276
endif()
6377

6478
add_compile_options(-DRUN_ON_GPU)

dl-mnist/CUDA/conv_layer.cudnn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ namespace dl_infra {
6363
int input_stride_dims_[4];
6464
int output_stride_dims_[4];
6565

66-
float alpha_ = 0.8f; //void *alpha;
66+
float alpha_ = 1.0f; //void *alpha;
6767
float beta_ = 0.0f; //void *beta;
6868

6969
int dilation_[2] {1, 1};

dl-mnist/HIP/CMakeLists.txt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ set(CMAKE_CXX_STANDARD 17)
2828
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2929
set(CMAKE_CXX_EXTENSIONS OFF)
3030

31-
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -Wall -O3 -Wextra")
31+
set(DEF_WL_CXX_FLAGS " -D__HIP_PLATFORM_AMD__ ")
32+
set(DEF_GENERAL_CXX_FLAGS " -Wall -O3 -Wextra ")
33+
set(DEF_COMBINED_CXX_FLAGS "${DEF_GENERAL_CXX_FLAGS} ${DEF_WL_CXX_FLAGS}")
3234

3335
option(DEVICE_TIMER "Build using Device Timer" OFF)
3436

@@ -79,14 +81,24 @@ include_directories(
7981
${HIP_PATH}/../hsa/include
8082
${HIP_PATH}/../miopen/include/miopen)
8183

84+
# -DCMAKE_CXX_FLAGS=" -blah -blah " overrides the default flags (BOTH general and WL specific)
85+
# -DOVERRIDE_GENERAL_CXX_FLAGS=" -blah -blah " overrides the general flags only (and not the workload specific flags)
86+
# passing in both CMAKE_CXX_FLAGS and OVERRIDE_GENERAL_CXX_FLAGS is not allowed, in order to prevent ambiguity
8287

83-
if("${CMAKE_CXX_FLAGS}" STREQUAL "")
84-
message(STATUS "Using DEFAULT CXX compilation flags for the application")
85-
string(APPEND CMAKE_CXX_FLAGS " -O2")
86-
else()
87-
message(STATUS "OVERRIDING CXX compilation flags")
88+
if(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "" AND NOT "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
89+
message(FATAL_ERROR "Both CMAKE_CXX_FLAGS and OVERRIDE_GENERAL_CXX_FLAGS cannot be passed in together")
90+
elseif("${CMAKE_CXX_FLAGS}" STREQUAL "" AND "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
91+
message(STATUS "Using DEFAULT compilation flags")
92+
set(CMAKE_CXX_FLAGS "${DEF_COMBINED_CXX_FLAGS}")
93+
elseif(NOT "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
94+
message(STATUS "OVERRIDING GENERAL compilation flags")
95+
set(CMAKE_CXX_FLAGS "${OVERRIDE_GENERAL_CXX_FLAGS}")
96+
string(APPEND CMAKE_CXX_FLAGS ${DEF_WL_CXX_FLAGS})
97+
elseif(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "")
98+
message(STATUS "OVERRIDING GENERAL and WORKLOAD SPECIFIC compilation flags")
8899
endif()
89100

101+
90102
add_compile_options(-DRUN_ON_GPU)
91103
add_compile_options(-DKERNEL_USE_PROFILE)
92104
add_compile_options(-DUSE_HIP)

dl-mnist/SYCL/CMakeLists.txt

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,41 @@ link_directories(${DNNLROOT}/lib)
7070

7171
message(STATUS "DNNLROOT set to: ${DNNLROOT}")
7272

73-
set(INTEL_GPU_CXX_FLAGS " -O2 -fsycl -ffast-math")
74-
set(NVIDIA_GPU_CXX_FLAGS " -O2 -fsycl -ffast-math")
75-
set(AMD_GPU_CXX_FLAGS " -O2 -fsycl -ffast-math")
7673

77-
set(USE_DEFAULT_FLAGS ON)
78-
if("${CMAKE_CXX_FLAGS}" STREQUAL "")
74+
set(DEF_INTEL_WL_CXX_FLAGS " ")
75+
set(DEF_NVIDIA_WL_CXX_FLAGS " ")
76+
set(DEF_AMD_WL_CXX_FLAGS " -D__HIP_PLATFORM_AMD__ ")
77+
78+
set(DEF_INTEL_GENERAL_CXX_FLAGS " -O2 -fsycl -ffast-math ")
79+
set(DEF_NVIDIA_GENERAL_CXX_FLAGS " -O2 -fsycl -ffast-math ")
80+
set(DEF_AMD_GENERAL_CXX_FLAGS " -O2 -fsycl -ffast-math ")
81+
82+
83+
# -DCMAKE_CXX_FLAGS=" -blah -blah " overrides the default flags (BOTH general and WL specific)
84+
# -DOVERRIDE_GENERAL_CXX_FLAGS=" -blah -blah " overrides the general flags only (and not the workload specific flags)
85+
# passing in both CMAKE_CXX_FLAGS and OVERRIDE_GENERAL_CXX_FLAGS is not allowed, in order to prevent ambiguity
86+
87+
#set(USE_DEFAULT_FLAGS OFF)
88+
if(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "" AND NOT "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
89+
message(FATAL_ERROR "Both CMAKE_CXX_FLAGS and OVERRIDE_GENERAL_CXX_FLAGS cannot be passed in together")
90+
elseif("${CMAKE_CXX_FLAGS}" STREQUAL "" AND "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
7991
message(STATUS "Using DEFAULT compilation flags")
80-
else()
81-
message(STATUS "OVERRIDING DEFAULT compilation flags")
82-
set(USE_DEFAULT_FLAGS OFF)
92+
set(INTEL_GPU_CXX_FLAGS "${DEF_INTEL_GENERAL_CXX_FLAGS} ${DEF_INTEL_WL_CXX_FLAGS}")
93+
set(NVIDIA_GPU_CXX_FLAGS "${DEF_NVIDIA_GENERAL_CXX_FLAGS} ${DEF_NVIDIA_WL_CXX_FLAGS}")
94+
set(AMD_GPU_CXX_FLAGS "${DEF_AMD_GENERAL_CXX_FLAGS} ${DEF_AMD_WL_CXX_FLAGS}")
95+
elseif(NOT "${OVERRIDE_GENERAL_CXX_FLAGS}" STREQUAL "")
96+
message(STATUS "OVERRIDING GENERAL compilation flags")
97+
set(INTEL_GPU_CXX_FLAGS "${OVERRIDE_GENERAL_CXX_FLAGS} ${DEF_INTEL_WL_CXX_FLAGS}")
98+
set(NVIDIA_GPU_CXX_FLAGS "${OVERRIDE_GENERAL_CXX_FLAGS} ${DEF_NVIDIA_WL_CXX_FLAGS}")
99+
set(AMD_GPU_CXX_FLAGS "${OVERRIDE_GENERAL_CXX_FLAGS} ${DEF_AMD_WL_CXX_FLAGS}")
100+
elseif(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "")
101+
message(STATUS "OVERRIDING GENERAL and WORKLOAD SPECIFIC compilation flags")
102+
set(INTEL_GPU_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
103+
set(NVIDIA_GPU_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
104+
set(AMD_GPU_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
83105
endif()
84106

107+
85108
add_compile_options(-DRUN_ON_GPU)
86109
#add_compile_options(-DKERNEL_USE_PROFILE "0")
87110
if(DEVICE_TIMER)
@@ -92,9 +115,7 @@ endif()
92115
# JIT compilation
93116
if(GPU_AOT)
94117
message(STATUS "Enabling INTEL backend")
95-
if(USE_DEFAULT_FLAGS)
96-
set(CMAKE_CXX_FLAGS "${INTEL_GPU_CXX_FLAGS}") # Default flags for Intel backend
97-
endif()
118+
set(CMAKE_CXX_FLAGS "${INTEL_GPU_CXX_FLAGS}")
98119
if( (${GPU_AOT} STREQUAL "pvc") OR (${GPU_AOT} STREQUAL "PVC") )
99120
message(STATUS "Enabling Intel GPU AOT compilation for ${GPU_AOT}")
100121
string(APPEND CMAKE_CXX_FLAGS " -fsycl-targets=spir64_gen -Xs \"-device 0x0bd5 -revision_id 0x2f\" ")
@@ -104,20 +125,20 @@ if(GPU_AOT)
104125
endif()
105126
elseif(USE_NVIDIA_BACKEND)
106127
message(STATUS "Enabling NVIDIA backend")
107-
if(USE_DEFAULT_FLAGS)
108-
set(CMAKE_CXX_FLAGS "${NVIDIA_GPU_CXX_FLAGS}") # Default flags for NV backend
109-
endif()
128+
set(CMAKE_CXX_FLAGS "${NVIDIA_GPU_CXX_FLAGS}")
110129
string(APPEND CMAKE_CXX_FLAGS " -fsycl-targets=nvptx64-nvidia-cuda ")
111130
if(USE_SM)
112131
message(STATUS "Building for SM_${USE_SM} architecture")
113132
string(APPEND CMAKE_CXX_FLAGS " -Xsycl-target-backend --cuda-gpu-arch=sm_${USE_SM}")
114133
endif()
115134
elseif(USE_AMDHIP_BACKEND)
116135
message(STATUS "Enabling AMD HIP backend for ${USE_AMDHIP_BACKEND} AMD architecture")
117-
if(USE_DEFAULT_FLAGS)
118-
set(CMAKE_CXX_FLAGS "${AMD_GPU_CXX_FLAGS}") # Default flags for AMD backend (gfx908 for MI100)
119-
endif()
136+
set(CMAKE_CXX_FLAGS "${AMD_GPU_CXX_FLAGS}")
120137
string(APPEND CMAKE_CXX_FLAGS " -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=${USE_AMDHIP_BACKEND} ")
138+
else()
139+
# JIT case
140+
message(STATUS "Enabling INTEL backend")
141+
set(CMAKE_CXX_FLAGS "${INTEL_GPU_CXX_FLAGS}")
121142
endif()
122143

123144
message(STATUS "Compilation flags set to: ${CMAKE_CXX_FLAGS}")

0 commit comments

Comments
 (0)