DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
feature_test.hpp
Go to the documentation of this file.
1 //==----- feature_test.hpp - SYCL Feature Test Definitions -----*- C++ -*---==//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 // ===--------------------------------------------------------------------=== //
8 #pragma once
9 
11 
13 namespace sycl {
14 
15 #ifdef __clang__
16 #ifndef __has_extension
17 #define __has_extension(x) 0
18 #endif
19 #endif
20 
21 #define SYCL_BACKEND_OPENCL 1
22 
23 // Feature test macro definitions
24 
25 // TODO: Move these feature-test macros to compiler driver.
26 #define SYCL_EXT_INTEL_DEVICE_INFO 3
27 #define SYCL_EXT_ONEAPI_SUB_GROUP_MASK 1
28 #define SYCL_EXT_ONEAPI_LOCAL_MEMORY 1
29 // As for SYCL_EXT_ONEAPI_MATRIX:
30 // 1- provides AOT initial implementation for AMX for the experimental matrix
31 // extension
32 // 2- provides JIT implementation (target agnostic) for the
33 // experimental matrix extension
34 #ifndef SYCL_EXT_ONEAPI_MATRIX
35 #define SYCL_EXT_ONEAPI_MATRIX 2
36 #endif
37 #define SYCL_EXT_ONEAPI_ASSERT 1
38 #define SYCL_EXT_ONEAPI_DISCARD_QUEUE_EVENTS 1
39 #define SYCL_EXT_ONEAPI_ENQUEUE_BARRIER 1
40 #define SYCL_EXT_ONEAPI_FREE_FUNCTION_QUERIES 1
41 #define SYCL_EXT_ONEAPI_GROUP_ALGORITHMS 1
42 #define SYCL_EXT_ONEAPI_GROUP_SORT 1
43 #define SYCL_EXT_ONEAPI_MAX_WORK_GROUP_QUERY 1
44 #define SYCL_EXT_ONEAPI_ND_RANGE_REDUCTIONS 1
45 #define SYCL_EXT_ONEAPI_DEFAULT_CONTEXT 1
46 #define SYCL_EXT_ONEAPI_USE_PINNED_HOST_MEMORY_PROPERTY 1
47 #define SYCL_EXT_ONEAPI_SRGB 1
48 #define SYCL_EXT_ONEAPI_SUB_GROUP 1
49 #define SYCL_EXT_INTEL_BF16_CONVERSION 1
50 #define SYCL_EXT_INTEL_BITCAST 1
51 #define SYCL_EXT_INTEL_DATAFLOW_PIPES 1
52 #ifdef __clang__
53 #if __has_extension(sycl_extended_atomics)
54 #define SYCL_EXT_INTEL_EXTENDED_ATOMICS 1
55 #endif
56 #endif
57 #define SYCL_EXT_INTEL_FPGA_DEVICE_SELECTOR 1
58 #define SYCL_EXT_INTEL_FPGA_LSU 1
59 #define SYCL_EXT_INTEL_FPGA_REG 1
60 #define SYCL_EXT_INTEL_KERNEL_ARGS_RESTRICT 1
61 #define SYCL_EXT_INTEL_MEM_CHANNEL_PROPERTY 1
62 #define SYCL_EXT_INTEL_USM_ADDRESS_SPACES 1
63 #define SYCL_EXT_ONEAPI_BACKEND_LEVEL_ZERO 1
64 #define SYCL_BUILD_PI_CUDA 0
65 #if SYCL_BUILD_PI_CUDA
66 #define SYCL_EXT_ONEAPI_BACKEND_CUDA 1
67 #endif
68 #define SYCL_BUILD_PI_ESIMD_EMULATOR 1
69 #if SYCL_BUILD_PI_ESIMD_EMULATOR
70 #define SYCL_EXT_INTEL_BACKEND_ESIMD_EMULATOR 1
71 #endif
72 #define SYCL_BUILD_PI_HIP 0
73 #if SYCL_BUILD_PI_HIP
74 #define SYCL_EXT_ONEAPI_BACKEND_HIP 1
75 #endif
76 
77 } // namespace sycl
78 } // __SYCL_INLINE_NAMESPACE(cl)
defines_elementary.hpp
cl
We provide new interfaces for matrix muliply in this patch:
Definition: access.hpp:13
__SYCL_INLINE_NAMESPACE
#define __SYCL_INLINE_NAMESPACE(X)
Definition: defines_elementary.hpp:12