DPC++ Runtime
Runtime libraries for oneAPI DPC++
device_architecture.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace sycl {
7 namespace ext::oneapi::experimental {
8 
9 enum class architecture {
10  x86_64,
33  // NVIDIA architectures
48  // AMD architectures
71  // Update "detail::max_architecture" below if you add new elements here!
85 };
86 
87 } // namespace ext::oneapi::experimental
88 
89 namespace detail {
90 
92  ext::oneapi::experimental::architecture::amd_gpu_gfx1034;
93 
94 #ifndef __SYCL_TARGET_INTEL_X86_64__
95 #define __SYCL_TARGET_INTEL_X86_64__ 0
96 #endif
97 #ifndef __SYCL_TARGET_INTEL_GPU_BDW__
98 #define __SYCL_TARGET_INTEL_GPU_BDW__ 0
99 #endif
100 #ifndef __SYCL_TARGET_INTEL_GPU_SKL__
101 #define __SYCL_TARGET_INTEL_GPU_SKL__ 0
102 #endif
103 #ifndef __SYCL_TARGET_INTEL_GPU_KBL__
104 #define __SYCL_TARGET_INTEL_GPU_KBL__ 0
105 #endif
106 #ifndef __SYCL_TARGET_INTEL_GPU_CFL__
107 #define __SYCL_TARGET_INTEL_GPU_CFL__ 0
108 #endif
109 #ifndef __SYCL_TARGET_INTEL_GPU_APL__
110 #define __SYCL_TARGET_INTEL_GPU_APL__ 0
111 #endif
112 #ifndef __SYCL_TARGET_INTEL_GPU_GLK__
113 #define __SYCL_TARGET_INTEL_GPU_GLK__ 0
114 #endif
115 #ifndef __SYCL_TARGET_INTEL_GPU_WHL__
116 #define __SYCL_TARGET_INTEL_GPU_WHL__ 0
117 #endif
118 #ifndef __SYCL_TARGET_INTEL_GPU_AML__
119 #define __SYCL_TARGET_INTEL_GPU_AML__ 0
120 #endif
121 #ifndef __SYCL_TARGET_INTEL_GPU_CML__
122 #define __SYCL_TARGET_INTEL_GPU_CML__ 0
123 #endif
124 #ifndef __SYCL_TARGET_INTEL_GPU_ICLLP__
125 #define __SYCL_TARGET_INTEL_GPU_ICLLP__ 0
126 #endif
127 #ifndef __SYCL_TARGET_INTEL_GPU_EHL__
128 #define __SYCL_TARGET_INTEL_GPU_EHL__ 0
129 #endif
130 #ifndef __SYCL_TARGET_INTEL_GPU_TGLLP__
131 #define __SYCL_TARGET_INTEL_GPU_TGLLP__ 0
132 #endif
133 #ifndef __SYCL_TARGET_INTEL_GPU_RKL__
134 #define __SYCL_TARGET_INTEL_GPU_RKL__ 0
135 #endif
136 #ifndef __SYCL_TARGET_INTEL_GPU_ADL_S__
137 #define __SYCL_TARGET_INTEL_GPU_ADL_S__ 0
138 #endif
139 #ifndef __SYCL_TARGET_INTEL_GPU_RPL_S__
140 #define __SYCL_TARGET_INTEL_GPU_RPL_S__ 0
141 #endif
142 #ifndef __SYCL_TARGET_INTEL_GPU_ADL_P__
143 #define __SYCL_TARGET_INTEL_GPU_ADL_P__ 0
144 #endif
145 #ifndef __SYCL_TARGET_INTEL_GPU_ADL_N__
146 #define __SYCL_TARGET_INTEL_GPU_ADL_N__ 0
147 #endif
148 #ifndef __SYCL_TARGET_INTEL_GPU_DG1__
149 #define __SYCL_TARGET_INTEL_GPU_DG1__ 0
150 #endif
151 #ifndef __SYCL_TARGET_INTEL_GPU_ACM_G10__
152 #define __SYCL_TARGET_INTEL_GPU_ACM_G10__ 0
153 #endif
154 #ifndef __SYCL_TARGET_INTEL_GPU_ACM_G11__
155 #define __SYCL_TARGET_INTEL_GPU_ACM_G11__ 0
156 #endif
157 #ifndef __SYCL_TARGET_INTEL_GPU_ACM_G12__
158 #define __SYCL_TARGET_INTEL_GPU_ACM_G12__ 0
159 #endif
160 #ifndef __SYCL_TARGET_INTEL_GPU_PVC__
161 #define __SYCL_TARGET_INTEL_GPU_PVC__ 0
162 #endif
163 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM50__
164 #define __SYCL_TARGET_NVIDIA_GPU_SM50__ 0
165 #endif
166 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM52__
167 #define __SYCL_TARGET_NVIDIA_GPU_SM52__ 0
168 #endif
169 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM53__
170 #define __SYCL_TARGET_NVIDIA_GPU_SM53__ 0
171 #endif
172 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM60__
173 #define __SYCL_TARGET_NVIDIA_GPU_SM60__ 0
174 #endif
175 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM61__
176 #define __SYCL_TARGET_NVIDIA_GPU_SM61__ 0
177 #endif
178 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM62__
179 #define __SYCL_TARGET_NVIDIA_GPU_SM62__ 0
180 #endif
181 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM70__
182 #define __SYCL_TARGET_NVIDIA_GPU_SM70__ 0
183 #endif
184 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM72__
185 #define __SYCL_TARGET_NVIDIA_GPU_SM72__ 0
186 #endif
187 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM75__
188 #define __SYCL_TARGET_NVIDIA_GPU_SM75__ 0
189 #endif
190 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM80__
191 #define __SYCL_TARGET_NVIDIA_GPU_SM80__ 0
192 #endif
193 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM86__
194 #define __SYCL_TARGET_NVIDIA_GPU_SM86__ 0
195 #endif
196 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM87__
197 #define __SYCL_TARGET_NVIDIA_GPU_SM87__ 0
198 #endif
199 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM89__
200 #define __SYCL_TARGET_NVIDIA_GPU_SM89__ 0
201 #endif
202 #ifndef __SYCL_TARGET_NVIDIA_GPU_SM90__
203 #define __SYCL_TARGET_NVIDIA_GPU_SM90__ 0
204 #endif
205 #ifndef __SYCL_TARGET_AMD_GPU_GFX700__
206 #define __SYCL_TARGET_AMD_GPU_GFX700__ 0
207 #endif
208 #ifndef __SYCL_TARGET_AMD_GPU_GFX701__
209 #define __SYCL_TARGET_AMD_GPU_GFX701__ 0
210 #endif
211 #ifndef __SYCL_TARGET_AMD_GPU_GFX702__
212 #define __SYCL_TARGET_AMD_GPU_GFX702__ 0
213 #endif
214 #ifndef __SYCL_TARGET_AMD_GPU_GFX801__
215 #define __SYCL_TARGET_AMD_GPU_GFX801__ 0
216 #endif
217 #ifndef __SYCL_TARGET_AMD_GPU_GFX802__
218 #define __SYCL_TARGET_AMD_GPU_GFX802__ 0
219 #endif
220 #ifndef __SYCL_TARGET_AMD_GPU_GFX803__
221 #define __SYCL_TARGET_AMD_GPU_GFX803__ 0
222 #endif
223 #ifndef __SYCL_TARGET_AMD_GPU_GFX805__
224 #define __SYCL_TARGET_AMD_GPU_GFX805__ 0
225 #endif
226 #ifndef __SYCL_TARGET_AMD_GPU_GFX810__
227 #define __SYCL_TARGET_AMD_GPU_GFX810__ 0
228 #endif
229 #ifndef __SYCL_TARGET_AMD_GPU_GFX900__
230 #define __SYCL_TARGET_AMD_GPU_GFX900__ 0
231 #endif
232 #ifndef __SYCL_TARGET_AMD_GPU_GFX902__
233 #define __SYCL_TARGET_AMD_GPU_GFX902__ 0
234 #endif
235 #ifndef __SYCL_TARGET_AMD_GPU_GFX904__
236 #define __SYCL_TARGET_AMD_GPU_GFX904__ 0
237 #endif
238 #ifndef __SYCL_TARGET_AMD_GPU_GFX906__
239 #define __SYCL_TARGET_AMD_GPU_GFX906__ 0
240 #endif
241 #ifndef __SYCL_TARGET_AMD_GPU_GFX908__
242 #define __SYCL_TARGET_AMD_GPU_GFX908__ 0
243 #endif
244 #ifndef __SYCL_TARGET_AMD_GPU_GFX90A__
245 #define __SYCL_TARGET_AMD_GPU_GFX90A__ 0
246 #endif
247 #ifndef __SYCL_TARGET_AMD_GPU_GFX1010__
248 #define __SYCL_TARGET_AMD_GPU_GFX1010__ 0
249 #endif
250 #ifndef __SYCL_TARGET_AMD_GPU_GFX1011__
251 #define __SYCL_TARGET_AMD_GPU_GFX1011__ 0
252 #endif
253 #ifndef __SYCL_TARGET_AMD_GPU_GFX1012__
254 #define __SYCL_TARGET_AMD_GPU_GFX1012__ 0
255 #endif
256 #ifndef __SYCL_TARGET_AMD_GPU_GFX1013__
257 #define __SYCL_TARGET_AMD_GPU_GFX1013__ 0
258 #endif
259 #ifndef __SYCL_TARGET_AMD_GPU_GFX1030__
260 #define __SYCL_TARGET_AMD_GPU_GFX1030__ 0
261 #endif
262 #ifndef __SYCL_TARGET_AMD_GPU_GFX1031__
263 #define __SYCL_TARGET_AMD_GPU_GFX1031__ 0
264 #endif
265 #ifndef __SYCL_TARGET_AMD_GPU_GFX1032__
266 #define __SYCL_TARGET_AMD_GPU_GFX1032__ 0
267 #endif
268 #ifndef __SYCL_TARGET_AMD_GPU_GFX1034__
269 #define __SYCL_TARGET_AMD_GPU_GFX1034__ 0
270 #endif
271 
272 // This is true when the translation unit is compiled in AOT mode with target
273 // names that supports the "if_architecture_is" features. If an unsupported
274 // target name is specified via "-fsycl-targets", the associated invocation of
275 // the device compiler will set this variable to false, and that will trigger
276 // an error for code that uses "if_architecture_is".
277 static constexpr bool is_allowable_aot_mode =
337 
339  // Allocate an array of size == size of
340  // ext::oneapi::experimental::architecture enum.
341  bool arr[static_cast<int>(max_architecture) + 1];
342 
344 
345  constexpr IsAOTForArchitectureClass() : arr() {
346  arr[static_cast<int>(arch::x86_64)] = __SYCL_TARGET_INTEL_X86_64__ == 1;
347  arr[static_cast<int>(arch::intel_gpu_bdw)] =
349  arr[static_cast<int>(arch::intel_gpu_skl)] =
351  arr[static_cast<int>(arch::intel_gpu_kbl)] =
353  arr[static_cast<int>(arch::intel_gpu_cfl)] =
355  arr[static_cast<int>(arch::intel_gpu_apl)] =
357  arr[static_cast<int>(arch::intel_gpu_glk)] =
359  arr[static_cast<int>(arch::intel_gpu_whl)] =
361  arr[static_cast<int>(arch::intel_gpu_aml)] =
363  arr[static_cast<int>(arch::intel_gpu_cml)] =
365  arr[static_cast<int>(arch::intel_gpu_icllp)] =
367  arr[static_cast<int>(arch::intel_gpu_ehl)] =
369  arr[static_cast<int>(arch::intel_gpu_tgllp)] =
371  arr[static_cast<int>(arch::intel_gpu_rkl)] =
373  arr[static_cast<int>(arch::intel_gpu_adl_s)] =
375  arr[static_cast<int>(arch::intel_gpu_rpl_s)] =
377  arr[static_cast<int>(arch::intel_gpu_adl_p)] =
379  arr[static_cast<int>(arch::intel_gpu_adl_n)] =
381  arr[static_cast<int>(arch::intel_gpu_dg1)] =
383  arr[static_cast<int>(arch::intel_gpu_acm_g10)] =
385  arr[static_cast<int>(arch::intel_gpu_acm_g11)] =
387  arr[static_cast<int>(arch::intel_gpu_acm_g12)] =
389  arr[static_cast<int>(arch::intel_gpu_pvc)] =
391  arr[static_cast<int>(arch::nvidia_gpu_sm_50)] =
393  arr[static_cast<int>(arch::nvidia_gpu_sm_52)] =
395  arr[static_cast<int>(arch::nvidia_gpu_sm_53)] =
397  arr[static_cast<int>(arch::nvidia_gpu_sm_60)] =
399  arr[static_cast<int>(arch::nvidia_gpu_sm_61)] =
401  arr[static_cast<int>(arch::nvidia_gpu_sm_62)] =
403  arr[static_cast<int>(arch::nvidia_gpu_sm_70)] =
405  arr[static_cast<int>(arch::nvidia_gpu_sm_72)] =
407  arr[static_cast<int>(arch::nvidia_gpu_sm_75)] =
409  arr[static_cast<int>(arch::nvidia_gpu_sm_80)] =
411  arr[static_cast<int>(arch::nvidia_gpu_sm_86)] =
413  arr[static_cast<int>(arch::nvidia_gpu_sm_87)] =
415  arr[static_cast<int>(arch::nvidia_gpu_sm_89)] =
417  arr[static_cast<int>(arch::nvidia_gpu_sm_90)] =
419  arr[static_cast<int>(arch::amd_gpu_gfx700)] =
421  arr[static_cast<int>(arch::amd_gpu_gfx701)] =
423  arr[static_cast<int>(arch::amd_gpu_gfx702)] =
425  arr[static_cast<int>(arch::amd_gpu_gfx801)] =
427  arr[static_cast<int>(arch::amd_gpu_gfx802)] =
429  arr[static_cast<int>(arch::amd_gpu_gfx803)] =
431  arr[static_cast<int>(arch::amd_gpu_gfx805)] =
433  arr[static_cast<int>(arch::amd_gpu_gfx810)] =
435  arr[static_cast<int>(arch::amd_gpu_gfx900)] =
437  arr[static_cast<int>(arch::amd_gpu_gfx902)] =
439  arr[static_cast<int>(arch::amd_gpu_gfx904)] =
441  arr[static_cast<int>(arch::amd_gpu_gfx906)] =
443  arr[static_cast<int>(arch::amd_gpu_gfx908)] =
445  arr[static_cast<int>(arch::amd_gpu_gfx90a)] =
447  arr[static_cast<int>(arch::amd_gpu_gfx1010)] =
449  arr[static_cast<int>(arch::amd_gpu_gfx1011)] =
451  arr[static_cast<int>(arch::amd_gpu_gfx1012)] =
453  arr[static_cast<int>(arch::amd_gpu_gfx1030)] =
455  arr[static_cast<int>(arch::amd_gpu_gfx1031)] =
457  arr[static_cast<int>(arch::amd_gpu_gfx1032)] =
459  arr[static_cast<int>(arch::amd_gpu_gfx1034)] =
461  }
462 };
463 
464 // One entry for each enumerator in "architecture" telling whether the AOT
465 // target matches that architecture.
467 
468 // Reads the value of "is_allowable_aot_mode" via a template to defer triggering
469 // static_assert() until template instantiation time.
470 template <ext::oneapi::experimental::architecture... Archs>
471 constexpr static bool allowable_aot_mode() {
472  return is_allowable_aot_mode;
473 }
474 
475 // Tells if the current device has one of the architectures in the parameter
476 // pack.
477 template <ext::oneapi::experimental::architecture... Archs>
478 constexpr static bool device_architecture_is() {
479  return (is_aot_for_architecture.arr[static_cast<int>(Archs)] || ...);
480 }
481 
482 // Helper object used to implement "else_if_architecture_is" and "otherwise".
483 // The "MakeCall" template parameter tells whether a previous clause in the
484 // "if-elseif-elseif ..." chain was true. When "MakeCall" is false, some
485 // previous clause was true, so none of the subsequent
486 // "else_if_architecture_is" or "otherwise" member functions should call the
487 // user's function.
488 template <bool MakeCall> class if_architecture_helper {
489 public:
490  template <ext::oneapi::experimental::architecture... Archs, typename T,
491  typename... Args>
492  constexpr auto else_if_architecture_is(T fnTrue, Args... args) {
493  if constexpr (MakeCall && device_architecture_is<Archs...>()) {
494  fnTrue(args...);
496  } else {
497  (void)fnTrue;
499  }
500  }
501 
502  template <typename T, typename... Args>
503  constexpr void otherwise(T fn, Args... args) {
504  if constexpr (MakeCall) {
505  fn(args...);
506  }
507  }
508 };
509 } // namespace detail
510 
511 namespace ext::oneapi::experimental {
512 
513 template <architecture... Archs, typename T, typename... Args>
514 constexpr static auto if_architecture_is(T fnTrue, Args... args) {
515  static_assert(sycl::detail::allowable_aot_mode<Archs...>(),
516  "The if_architecture_is function may only be used when AOT "
517  "compiling with '-fsycl-targets=spir64_x86_64' or "
518  "'-fsycl-targets=*_gpu_*'");
519  if constexpr (sycl::detail::device_architecture_is<Archs...>()) {
520  fnTrue(args...);
521  return sycl::detail::if_architecture_helper<false>{};
522  } else {
523  (void)fnTrue;
524  return sycl::detail::if_architecture_helper<true>{};
525  }
526 }
527 
528 } // namespace ext::oneapi::experimental
529 } // __SYCL_INLINE_VER_NAMESPACE(_V1)
530 } // namespace sycl
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx1031
@ amd_gpu_gfx1031
__SYCL_TARGET_AMD_GPU_GFX902__
#define __SYCL_TARGET_AMD_GPU_GFX902__
Definition: device_architecture.hpp:233
__SYCL_TARGET_NVIDIA_GPU_SM52__
#define __SYCL_TARGET_NVIDIA_GPU_SM52__
Definition: device_architecture.hpp:167
__SYCL_TARGET_NVIDIA_GPU_SM70__
#define __SYCL_TARGET_NVIDIA_GPU_SM70__
Definition: device_architecture.hpp:182
__SYCL_TARGET_INTEL_GPU_AML__
#define __SYCL_TARGET_INTEL_GPU_AML__
Definition: device_architecture.hpp:119
sycl::_V1::ext::oneapi::experimental::if_architecture_is
constexpr static auto if_architecture_is(T fnTrue, Args... args)
Definition: device_architecture.hpp:514
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx801
@ amd_gpu_gfx801
__SYCL_TARGET_AMD_GPU_GFX1011__
#define __SYCL_TARGET_AMD_GPU_GFX1011__
Definition: device_architecture.hpp:251
__SYCL_TARGET_NVIDIA_GPU_SM72__
#define __SYCL_TARGET_NVIDIA_GPU_SM72__
Definition: device_architecture.hpp:185
__SYCL_TARGET_INTEL_GPU_GLK__
#define __SYCL_TARGET_INTEL_GPU_GLK__
Definition: device_architecture.hpp:113
__SYCL_TARGET_INTEL_GPU_ADL_S__
#define __SYCL_TARGET_INTEL_GPU_ADL_S__
Definition: device_architecture.hpp:137
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx906
@ amd_gpu_gfx906
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_9_6_0
@ intel_gpu_9_6_0
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_70
@ nvidia_gpu_sm_70
sycl::_V1::detail::device_architecture_is
constexpr static bool device_architecture_is()
Definition: device_architecture.hpp:478
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_kbl
@ intel_gpu_kbl
__SYCL_TARGET_NVIDIA_GPU_SM62__
#define __SYCL_TARGET_NVIDIA_GPU_SM62__
Definition: device_architecture.hpp:179
__SYCL_TARGET_INTEL_X86_64__
#define __SYCL_TARGET_INTEL_X86_64__
Definition: device_architecture.hpp:95
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_rpl_s
@ intel_gpu_rpl_s
__SYCL_TARGET_AMD_GPU_GFX1030__
#define __SYCL_TARGET_AMD_GPU_GFX1030__
Definition: device_architecture.hpp:260
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx701
@ amd_gpu_gfx701
__SYCL_INLINE_VER_NAMESPACE
#define __SYCL_INLINE_VER_NAMESPACE(X)
Definition: defines_elementary.hpp:11
__SYCL_TARGET_AMD_GPU_GFX1034__
#define __SYCL_TARGET_AMD_GPU_GFX1034__
Definition: device_architecture.hpp:269
__SYCL_TARGET_NVIDIA_GPU_SM75__
#define __SYCL_TARGET_NVIDIA_GPU_SM75__
Definition: device_architecture.hpp:188
__SYCL_TARGET_NVIDIA_GPU_SM60__
#define __SYCL_TARGET_NVIDIA_GPU_SM60__
Definition: device_architecture.hpp:173
__SYCL_TARGET_AMD_GPU_GFX810__
#define __SYCL_TARGET_AMD_GPU_GFX810__
Definition: device_architecture.hpp:227
__SYCL_TARGET_INTEL_GPU_EHL__
#define __SYCL_TARGET_INTEL_GPU_EHL__
Definition: device_architecture.hpp:128
sycl::_V1::detail::IsAOTForArchitectureClass::IsAOTForArchitectureClass
constexpr IsAOTForArchitectureClass()
Definition: device_architecture.hpp:345
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_cfl
@ intel_gpu_cfl
__SYCL_TARGET_INTEL_GPU_RKL__
#define __SYCL_TARGET_INTEL_GPU_RKL__
Definition: device_architecture.hpp:134
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_acm_g11
@ intel_gpu_acm_g11
__SYCL_TARGET_INTEL_GPU_ICLLP__
#define __SYCL_TARGET_INTEL_GPU_ICLLP__
Definition: device_architecture.hpp:125
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx1013
@ amd_gpu_gfx1013
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx1010
@ amd_gpu_gfx1010
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_9_0_9
@ intel_gpu_9_0_9
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx1011
@ amd_gpu_gfx1011
__SYCL_TARGET_NVIDIA_GPU_SM90__
#define __SYCL_TARGET_NVIDIA_GPU_SM90__
Definition: device_architecture.hpp:203
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_whl
@ intel_gpu_whl
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx1032
@ amd_gpu_gfx1032
__SYCL_TARGET_INTEL_GPU_ADL_P__
#define __SYCL_TARGET_INTEL_GPU_ADL_P__
Definition: device_architecture.hpp:143
__SYCL_TARGET_AMD_GPU_GFX1032__
#define __SYCL_TARGET_AMD_GPU_GFX1032__
Definition: device_architecture.hpp:266
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx805
@ amd_gpu_gfx805
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_9_2_9
@ intel_gpu_9_2_9
sycl
---— Error handling, matching OpenCL plugin semantics.
Definition: access.hpp:14
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_53
@ nvidia_gpu_sm_53
__SYCL_TARGET_INTEL_GPU_DG1__
#define __SYCL_TARGET_INTEL_GPU_DG1__
Definition: device_architecture.hpp:149
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_acm_g10
@ intel_gpu_acm_g10
__SYCL_TARGET_NVIDIA_GPU_SM80__
#define __SYCL_TARGET_NVIDIA_GPU_SM80__
Definition: device_architecture.hpp:191
__SYCL_TARGET_INTEL_GPU_KBL__
#define __SYCL_TARGET_INTEL_GPU_KBL__
Definition: device_architecture.hpp:104
__SYCL_TARGET_AMD_GPU_GFX1012__
#define __SYCL_TARGET_AMD_GPU_GFX1012__
Definition: device_architecture.hpp:254
sycl::_V1::ext::oneapi::experimental::architecture
architecture
Definition: device_architecture.hpp:9
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_icllp
@ intel_gpu_icllp
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_adl_n
@ intel_gpu_adl_n
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_9_3_0
@ intel_gpu_9_3_0
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_aml
@ intel_gpu_aml
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_86
@ nvidia_gpu_sm_86
__SYCL_TARGET_NVIDIA_GPU_SM61__
#define __SYCL_TARGET_NVIDIA_GPU_SM61__
Definition: device_architecture.hpp:176
__SYCL_TARGET_INTEL_GPU_BDW__
#define __SYCL_TARGET_INTEL_GPU_BDW__
Definition: device_architecture.hpp:98
__SYCL_TARGET_INTEL_GPU_TGLLP__
#define __SYCL_TARGET_INTEL_GPU_TGLLP__
Definition: device_architecture.hpp:131
__SYCL_TARGET_NVIDIA_GPU_SM89__
#define __SYCL_TARGET_NVIDIA_GPU_SM89__
Definition: device_architecture.hpp:200
__SYCL_TARGET_INTEL_GPU_CFL__
#define __SYCL_TARGET_INTEL_GPU_CFL__
Definition: device_architecture.hpp:107
__SYCL_TARGET_INTEL_GPU_APL__
#define __SYCL_TARGET_INTEL_GPU_APL__
Definition: device_architecture.hpp:110
__SYCL_TARGET_INTEL_GPU_ACM_G11__
#define __SYCL_TARGET_INTEL_GPU_ACM_G11__
Definition: device_architecture.hpp:155
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_8_0_0
@ intel_gpu_8_0_0
defines_elementary.hpp
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_apl
@ intel_gpu_apl
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx90a
@ amd_gpu_gfx90a
__SYCL_TARGET_AMD_GPU_GFX801__
#define __SYCL_TARGET_AMD_GPU_GFX801__
Definition: device_architecture.hpp:215
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_52
@ nvidia_gpu_sm_52
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_tgllp
@ intel_gpu_tgllp
__SYCL_TARGET_AMD_GPU_GFX900__
#define __SYCL_TARGET_AMD_GPU_GFX900__
Definition: device_architecture.hpp:230
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_rkl
@ intel_gpu_rkl
__SYCL_TARGET_AMD_GPU_GFX908__
#define __SYCL_TARGET_AMD_GPU_GFX908__
Definition: device_architecture.hpp:242
sycl::_V1::detail::if_architecture_helper
Definition: device_architecture.hpp:488
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_9_4_0
@ intel_gpu_9_4_0
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx900
@ amd_gpu_gfx900
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_50
@ nvidia_gpu_sm_50
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx702
@ amd_gpu_gfx702
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_9_5_0
@ intel_gpu_9_5_0
__SYCL_TARGET_INTEL_GPU_ADL_N__
#define __SYCL_TARGET_INTEL_GPU_ADL_N__
Definition: device_architecture.hpp:146
sycl::_V1::detail::if_architecture_helper::otherwise
constexpr void otherwise(T fn, Args... args)
Definition: device_architecture.hpp:503
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_72
@ nvidia_gpu_sm_72
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_11_2_0
@ intel_gpu_11_2_0
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_adl_p
@ intel_gpu_adl_p
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx1034
@ amd_gpu_gfx1034
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_ehl
@ intel_gpu_ehl
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_skl
@ intel_gpu_skl
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_bdw
@ intel_gpu_bdw
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_12_0_0
@ intel_gpu_12_0_0
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_61
@ nvidia_gpu_sm_61
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx1030
@ amd_gpu_gfx1030
__SYCL_TARGET_INTEL_GPU_ACM_G10__
#define __SYCL_TARGET_INTEL_GPU_ACM_G10__
Definition: device_architecture.hpp:152
sycl::_V1::ext::oneapi::experimental::architecture::x86_64
@ x86_64
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx902
@ amd_gpu_gfx902
__SYCL_TARGET_AMD_GPU_GFX1010__
#define __SYCL_TARGET_AMD_GPU_GFX1010__
Definition: device_architecture.hpp:248
__SYCL_TARGET_INTEL_GPU_PVC__
#define __SYCL_TARGET_INTEL_GPU_PVC__
Definition: device_architecture.hpp:161
__SYCL_TARGET_AMD_GPU_GFX802__
#define __SYCL_TARGET_AMD_GPU_GFX802__
Definition: device_architecture.hpp:218
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_87
@ nvidia_gpu_sm_87
__SYCL_TARGET_INTEL_GPU_WHL__
#define __SYCL_TARGET_INTEL_GPU_WHL__
Definition: device_architecture.hpp:116
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_adl_s
@ intel_gpu_adl_s
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx803
@ amd_gpu_gfx803
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_60
@ nvidia_gpu_sm_60
__SYCL_TARGET_AMD_GPU_GFX805__
#define __SYCL_TARGET_AMD_GPU_GFX805__
Definition: device_architecture.hpp:224
__SYCL_TARGET_AMD_GPU_GFX90A__
#define __SYCL_TARGET_AMD_GPU_GFX90A__
Definition: device_architecture.hpp:245
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_9_7_0
@ intel_gpu_9_7_0
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_dg1
@ intel_gpu_dg1
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_75
@ nvidia_gpu_sm_75
__SYCL_TARGET_NVIDIA_GPU_SM87__
#define __SYCL_TARGET_NVIDIA_GPU_SM87__
Definition: device_architecture.hpp:197
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_62
@ nvidia_gpu_sm_62
sycl::_V1::detail::if_architecture_helper::else_if_architecture_is
constexpr auto else_if_architecture_is(T fnTrue, Args... args)
Definition: device_architecture.hpp:492
sycl::_V1::detail::IsAOTForArchitectureClass::arr
bool arr[static_cast< int >(max_architecture)+1]
Definition: device_architecture.hpp:341
__SYCL_TARGET_AMD_GPU_GFX1031__
#define __SYCL_TARGET_AMD_GPU_GFX1031__
Definition: device_architecture.hpp:263
sycl::_V1::detail::is_aot_for_architecture
static constexpr IsAOTForArchitectureClass is_aot_for_architecture
Definition: device_architecture.hpp:466
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_89
@ nvidia_gpu_sm_89
__SYCL_TARGET_NVIDIA_GPU_SM86__
#define __SYCL_TARGET_NVIDIA_GPU_SM86__
Definition: device_architecture.hpp:194
__SYCL_TARGET_AMD_GPU_GFX906__
#define __SYCL_TARGET_AMD_GPU_GFX906__
Definition: device_architecture.hpp:239
__SYCL_TARGET_AMD_GPU_GFX803__
#define __SYCL_TARGET_AMD_GPU_GFX803__
Definition: device_architecture.hpp:221
sycl::_V1::detail::max_architecture
static constexpr ext::oneapi::experimental::architecture max_architecture
Definition: device_architecture.hpp:91
__SYCL_TARGET_AMD_GPU_GFX904__
#define __SYCL_TARGET_AMD_GPU_GFX904__
Definition: device_architecture.hpp:236
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx810
@ amd_gpu_gfx810
__SYCL_TARGET_INTEL_GPU_SKL__
#define __SYCL_TARGET_INTEL_GPU_SKL__
Definition: device_architecture.hpp:101
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_9_1_9
@ intel_gpu_9_1_9
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx904
@ amd_gpu_gfx904
__SYCL_TARGET_NVIDIA_GPU_SM50__
#define __SYCL_TARGET_NVIDIA_GPU_SM50__
Definition: device_architecture.hpp:164
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_glk
@ intel_gpu_glk
sycl::_V1::detail::IsAOTForArchitectureClass
Definition: device_architecture.hpp:338
sycl::_V1::detail::is_allowable_aot_mode
static constexpr bool is_allowable_aot_mode
Definition: device_architecture.hpp:277
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_11_0_0
@ intel_gpu_11_0_0
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_80
@ nvidia_gpu_sm_80
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_cml
@ intel_gpu_cml
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_12_10_0
@ intel_gpu_12_10_0
__SYCL_TARGET_AMD_GPU_GFX701__
#define __SYCL_TARGET_AMD_GPU_GFX701__
Definition: device_architecture.hpp:209
__SYCL_TARGET_AMD_GPU_GFX700__
#define __SYCL_TARGET_AMD_GPU_GFX700__
Definition: device_architecture.hpp:206
__SYCL_TARGET_INTEL_GPU_RPL_S__
#define __SYCL_TARGET_INTEL_GPU_RPL_S__
Definition: device_architecture.hpp:140
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_acm_g12
@ intel_gpu_acm_g12
__SYCL_TARGET_INTEL_GPU_ACM_G12__
#define __SYCL_TARGET_INTEL_GPU_ACM_G12__
Definition: device_architecture.hpp:158
sycl::_V1::ext::oneapi::experimental::architecture::nvidia_gpu_sm_90
@ nvidia_gpu_sm_90
__SYCL_TARGET_NVIDIA_GPU_SM53__
#define __SYCL_TARGET_NVIDIA_GPU_SM53__
Definition: device_architecture.hpp:170
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx700
@ amd_gpu_gfx700
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx1012
@ amd_gpu_gfx1012
__SYCL_TARGET_INTEL_GPU_CML__
#define __SYCL_TARGET_INTEL_GPU_CML__
Definition: device_architecture.hpp:122
sycl::_V1::detail::allowable_aot_mode
constexpr static bool allowable_aot_mode()
Definition: device_architecture.hpp:471
__SYCL_TARGET_AMD_GPU_GFX702__
#define __SYCL_TARGET_AMD_GPU_GFX702__
Definition: device_architecture.hpp:212
__SYCL_TARGET_AMD_GPU_GFX1013__
#define __SYCL_TARGET_AMD_GPU_GFX1013__
Definition: device_architecture.hpp:257
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx802
@ amd_gpu_gfx802
sycl::_V1::ext::oneapi::experimental::architecture::intel_gpu_pvc
@ intel_gpu_pvc
sycl::_V1::ext::oneapi::experimental::architecture::amd_gpu_gfx908
@ amd_gpu_gfx908