Blender  V3.3
Classes | Macros | Typedefs | Functions
oneapi/compat.h File Reference
#include <cstdint>
#include "util/half.h"
#include "util/types.h"

Go to the source code of this file.

Classes

struct  float3
 

Macros

#define __KERNEL_GPU__
 
#define __KERNEL_ONEAPI__
 
#define CCL_NAMESPACE_BEGIN
 
#define CCL_NAMESPACE_END
 
#define __NODES_MAX_GROUP__   NODE_GROUP_LEVEL_MAX
 
#define __NODES_FEATURES__   NODE_FEATURE_ALL
 
#define __device__
 
#define ccl_device
 
#define ccl_global
 
#define ccl_always_inline   __attribute__((always_inline))
 
#define ccl_device_inline   inline
 
#define ccl_noinline   __attribute__((noinline))
 
#define ccl_inline_constant   const constexpr
 
#define ccl_static_constant   const
 
#define ccl_device_forceinline   __attribute__((always_inline))
 
#define ccl_device_noinline   ccl_device ccl_noinline
 
#define ccl_device_noinline_cpu   ccl_device
 
#define ccl_device_inline_method   ccl_device
 
#define ccl_restrict   __restrict__
 
#define ccl_loop_no_unroll
 
#define ccl_optional_struct_init
 
#define ccl_private
 
#define ATTR_FALLTHROUGH   __attribute__((fallthrough))
 
#define ccl_constant   const
 
#define ccl_try_align(...)   __attribute__((aligned(__VA_ARGS__)))
 
#define ccl_align(n)   __attribute__((aligned(n)))
 
#define kernel_assert(cond)
 
#define ccl_may_alias
 
#define ccl_gpu_kernel(block_num_threads, thread_num_registers)
 
#define ccl_gpu_kernel_threads(block_num_threads)
 
#define KG_ND_ITEMS
 
#define ccl_gpu_kernel_signature(name, ...)
 
#define ccl_gpu_kernel_postfix
 
#define ccl_gpu_kernel_call(x)   ((ONEAPIKernelContext*)kg)->x
 
#define ccl_gpu_kernel_lambda(func, ...)
 
#define ccl_gpu_thread_idx_x   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_local_id(0))
 
#define ccl_gpu_block_dim_x   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_local_range(0))
 
#define ccl_gpu_block_idx_x   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_group(0))
 
#define ccl_gpu_grid_dim_x   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_group_range(0))
 
#define ccl_gpu_warp_size   (sycl::ext::oneapi::experimental::this_sub_group().get_local_range()[0])
 
#define ccl_gpu_thread_mask(thread_warp)   uint(0xFFFFFFFF >> (ccl_gpu_warp_size - thread_warp))
 
#define ccl_gpu_global_id_x()   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_global_id(0))
 
#define ccl_gpu_global_size_x()   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_global_range(0))
 
#define ccl_gpu_syncthreads()   sycl::ext::oneapi::experimental::this_nd_item<1>().barrier()
 
#define ccl_gpu_local_syncthreads()   sycl::ext::oneapi::experimental::this_nd_item<1>().barrier(sycl::access::fence_space::local_space)
 
#define ccl_gpu_ballot(predicate)   (predicate ? 1 : 0)
 
#define CONSTANT
 
#define sycl_printf(format, ...)
 
#define sycl_printf_(format)
 
#define fabsf(x)   sycl::fabs((x))
 
#define copysignf(x, y)   sycl::copysign((x), (y))
 
#define asinf(x)   sycl::asin((x))
 
#define acosf(x)   sycl::acos((x))
 
#define atanf(x)   sycl::atan((x))
 
#define floorf(x)   sycl::floor((x))
 
#define ceilf(x)   sycl::ceil((x))
 
#define sinhf(x)   sycl::sinh((x))
 
#define coshf(x)   sycl::cosh((x))
 
#define tanhf(x)   sycl::tanh((x))
 
#define hypotf(x, y)   sycl::hypot((x), (y))
 
#define atan2f(x, y)   sycl::atan2((x), (y))
 
#define fmaxf(x, y)   sycl::fmax((x), (y))
 
#define fminf(x, y)   sycl::fmin((x), (y))
 
#define fmodf(x, y)   sycl::fmod((x), (y))
 
#define lgammaf(x)   sycl::lgamma((x))
 
#define __forceinline   __attribute__((always_inline))
 
#define cosf(x)   sycl::cos(((float)(x)))
 
#define sinf(x)   sycl::native::sin(((float)(x)))
 
#define powf(x, y)   sycl::native::powr(((float)(x)), ((float)(y)))
 
#define tanf(x)   sycl::native::tan(((float)(x)))
 
#define logf(x)   sycl::native::log(((float)(x)))
 
#define expf(x)   sycl::native::exp(((float)(x)))
 

Typedefs

using uchar = unsigned char
 

Functions

ccl_always_inline float3 make_float3 (float x, float y, float z)
 
ccl_always_inline float3 make_float3 (float x)
 

Macro Definition Documentation

◆ __device__

#define __device__

Definition at line 25 of file oneapi/compat.h.

◆ __forceinline

#define __forceinline   __attribute__((always_inline))

Definition at line 189 of file oneapi/compat.h.

◆ __KERNEL_GPU__

#define __KERNEL_GPU__

Definition at line 6 of file oneapi/compat.h.

◆ __KERNEL_ONEAPI__

#define __KERNEL_ONEAPI__

Definition at line 7 of file oneapi/compat.h.

◆ __NODES_FEATURES__

#define __NODES_FEATURES__   NODE_FEATURE_ALL

Definition at line 18 of file oneapi/compat.h.

◆ __NODES_MAX_GROUP__

#define __NODES_MAX_GROUP__   NODE_GROUP_LEVEL_MAX

Definition at line 15 of file oneapi/compat.h.

◆ acosf

#define acosf (   x)    sycl::acos((x))

Definition at line 175 of file oneapi/compat.h.

◆ asinf

#define asinf (   x)    sycl::asin((x))

Definition at line 174 of file oneapi/compat.h.

◆ atan2f

#define atan2f (   x,
  y 
)    sycl::atan2((x), (y))

Definition at line 183 of file oneapi/compat.h.

◆ atanf

#define atanf (   x)    sycl::atan((x))

Definition at line 176 of file oneapi/compat.h.

◆ ATTR_FALLTHROUGH

#define ATTR_FALLTHROUGH   __attribute__((fallthrough))

Definition at line 44 of file oneapi/compat.h.

◆ ccl_align

#define ccl_align (   n)    __attribute__((aligned(n)))

Definition at line 47 of file oneapi/compat.h.

◆ ccl_always_inline

#define ccl_always_inline   __attribute__((always_inline))

Definition at line 31 of file oneapi/compat.h.

◆ ccl_constant

#define ccl_constant   const

Definition at line 45 of file oneapi/compat.h.

◆ ccl_device

#define ccl_device

Definition at line 29 of file oneapi/compat.h.

◆ ccl_device_forceinline

#define ccl_device_forceinline   __attribute__((always_inline))

Definition at line 36 of file oneapi/compat.h.

◆ ccl_device_inline

#define ccl_device_inline   inline

Definition at line 32 of file oneapi/compat.h.

◆ ccl_device_inline_method

#define ccl_device_inline_method   ccl_device

Definition at line 39 of file oneapi/compat.h.

◆ ccl_device_noinline

#define ccl_device_noinline   ccl_device ccl_noinline

Definition at line 37 of file oneapi/compat.h.

◆ ccl_device_noinline_cpu

#define ccl_device_noinline_cpu   ccl_device

Definition at line 38 of file oneapi/compat.h.

◆ ccl_global

#define ccl_global

Definition at line 30 of file oneapi/compat.h.

◆ ccl_gpu_ballot

#define ccl_gpu_ballot (   predicate)    (predicate ? 1 : 0)

Definition at line 127 of file oneapi/compat.h.

◆ ccl_gpu_block_dim_x

#define ccl_gpu_block_dim_x   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_local_range(0))

Definition at line 99 of file oneapi/compat.h.

◆ ccl_gpu_block_idx_x

#define ccl_gpu_block_idx_x   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_group(0))

Definition at line 100 of file oneapi/compat.h.

◆ ccl_gpu_global_id_x

#define ccl_gpu_global_id_x ( )    (sycl::ext::oneapi::experimental::this_nd_item<1>().get_global_id(0))

Definition at line 105 of file oneapi/compat.h.

◆ ccl_gpu_global_size_x

#define ccl_gpu_global_size_x ( )    (sycl::ext::oneapi::experimental::this_nd_item<1>().get_global_range(0))

Definition at line 106 of file oneapi/compat.h.

◆ ccl_gpu_grid_dim_x

#define ccl_gpu_grid_dim_x   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_group_range(0))

Definition at line 101 of file oneapi/compat.h.

◆ ccl_gpu_kernel

#define ccl_gpu_kernel (   block_num_threads,
  thread_num_registers 
)

Definition at line 54 of file oneapi/compat.h.

◆ ccl_gpu_kernel_call

#define ccl_gpu_kernel_call (   x)    ((ONEAPIKernelContext*)kg)->x

Definition at line 85 of file oneapi/compat.h.

◆ ccl_gpu_kernel_lambda

#define ccl_gpu_kernel_lambda (   func,
  ... 
)
Value:
struct KernelLambda \
{ \
KernelLambda(const ONEAPIKernelContext *_kg) : kg(_kg) {} \
ccl_private const ONEAPIKernelContext *kg; \
__VA_ARGS__; \
int operator()(const int state) const { return (func); } \
} ccl_gpu_kernel_lambda_pass((ONEAPIKernelContext *)kg)
SIMD_FORCE_INLINE btVector3 operator()(const btVector3 &x) const
Return the transform of the vector.
Definition: btTransform.h:90
const int state

Definition at line 87 of file oneapi/compat.h.

◆ ccl_gpu_kernel_postfix

#define ccl_gpu_kernel_postfix
Value:
}); \
}

Definition at line 81 of file oneapi/compat.h.

◆ ccl_gpu_kernel_signature

#define ccl_gpu_kernel_signature (   name,
  ... 
)
Value:
void oneapi_kernel_##name(KernelGlobalsGPU *ccl_restrict kg, \
size_t kernel_global_size, \
size_t kernel_local_size, \
sycl::handler &cgh, \
__VA_ARGS__) { \
(kg); \
cgh.parallel_for<class kernel_##name>( \
sycl::nd_range<1>(kernel_global_size, kernel_local_size), \
[=](sycl::nd_item<1> item) { \
KG_ND_ITEMS
#define ccl_restrict
Definition: oneapi/compat.h:40

Definition at line 69 of file oneapi/compat.h.

◆ ccl_gpu_kernel_threads

#define ccl_gpu_kernel_threads (   block_num_threads)

Definition at line 55 of file oneapi/compat.h.

◆ ccl_gpu_local_syncthreads

#define ccl_gpu_local_syncthreads ( )    sycl::ext::oneapi::experimental::this_nd_item<1>().barrier(sycl::access::fence_space::local_space)

Definition at line 123 of file oneapi/compat.h.

◆ ccl_gpu_syncthreads

#define ccl_gpu_syncthreads ( )    sycl::ext::oneapi::experimental::this_nd_item<1>().barrier()

Definition at line 122 of file oneapi/compat.h.

◆ ccl_gpu_thread_idx_x

#define ccl_gpu_thread_idx_x   (sycl::ext::oneapi::experimental::this_nd_item<1>().get_local_id(0))

Definition at line 98 of file oneapi/compat.h.

◆ ccl_gpu_thread_mask

#define ccl_gpu_thread_mask (   thread_warp)    uint(0xFFFFFFFF >> (ccl_gpu_warp_size - thread_warp))

Definition at line 103 of file oneapi/compat.h.

◆ ccl_gpu_warp_size

#define ccl_gpu_warp_size   (sycl::ext::oneapi::experimental::this_sub_group().get_local_range()[0])

Definition at line 102 of file oneapi/compat.h.

◆ ccl_inline_constant

#define ccl_inline_constant   const constexpr

Definition at line 34 of file oneapi/compat.h.

◆ ccl_loop_no_unroll

#define ccl_loop_no_unroll

Definition at line 41 of file oneapi/compat.h.

◆ ccl_may_alias

#define ccl_may_alias

Definition at line 49 of file oneapi/compat.h.

◆ CCL_NAMESPACE_BEGIN

#define CCL_NAMESPACE_BEGIN

Definition at line 9 of file oneapi/compat.h.

◆ CCL_NAMESPACE_END

#define CCL_NAMESPACE_END

Definition at line 10 of file oneapi/compat.h.

◆ ccl_noinline

#define ccl_noinline   __attribute__((noinline))

Definition at line 33 of file oneapi/compat.h.

◆ ccl_optional_struct_init

#define ccl_optional_struct_init

Definition at line 42 of file oneapi/compat.h.

◆ ccl_private

#define ccl_private

Definition at line 43 of file oneapi/compat.h.

◆ ccl_restrict

#define ccl_restrict   __restrict__

Definition at line 40 of file oneapi/compat.h.

◆ ccl_static_constant

#define ccl_static_constant   const

Definition at line 35 of file oneapi/compat.h.

◆ ccl_try_align

#define ccl_try_align (   ...)    __attribute__((aligned(__VA_ARGS__)))

Definition at line 46 of file oneapi/compat.h.

◆ ceilf

#define ceilf (   x)    sycl::ceil((x))

Definition at line 178 of file oneapi/compat.h.

◆ CONSTANT

#define CONSTANT

Definition at line 134 of file oneapi/compat.h.

◆ copysignf

#define copysignf (   x,
  y 
)    sycl::copysign((x), (y))

Definition at line 173 of file oneapi/compat.h.

◆ cosf

#define cosf (   x)    sycl::cos(((float)(x)))

Definition at line 206 of file oneapi/compat.h.

◆ coshf

#define coshf (   x)    sycl::cosh((x))

Definition at line 180 of file oneapi/compat.h.

◆ expf

#define expf (   x)    sycl::native::exp(((float)(x)))

Definition at line 212 of file oneapi/compat.h.

◆ fabsf

#define fabsf (   x)    sycl::fabs((x))

Definition at line 172 of file oneapi/compat.h.

◆ floorf

#define floorf (   x)    sycl::floor((x))

Definition at line 177 of file oneapi/compat.h.

◆ fmaxf

#define fmaxf (   x,
  y 
)    sycl::fmax((x), (y))

Definition at line 184 of file oneapi/compat.h.

◆ fminf

#define fminf (   x,
  y 
)    sycl::fmin((x), (y))

Definition at line 185 of file oneapi/compat.h.

◆ fmodf

#define fmodf (   x,
  y 
)    sycl::fmod((x), (y))

Definition at line 186 of file oneapi/compat.h.

◆ hypotf

#define hypotf (   x,
  y 
)    sycl::hypot((x), (y))

Definition at line 182 of file oneapi/compat.h.

◆ kernel_assert

#define kernel_assert (   cond)

Definition at line 48 of file oneapi/compat.h.

◆ KG_ND_ITEMS

#define KG_ND_ITEMS

Definition at line 66 of file oneapi/compat.h.

◆ lgammaf

#define lgammaf (   x)    sycl::lgamma((x))

Definition at line 187 of file oneapi/compat.h.

◆ logf

#define logf (   x)    sycl::native::log(((float)(x)))

Definition at line 211 of file oneapi/compat.h.

◆ powf

#define powf (   x,
  y 
)    sycl::native::powr(((float)(x)), ((float)(y)))

Definition at line 209 of file oneapi/compat.h.

◆ sinf

#define sinf (   x)    sycl::native::sin(((float)(x)))

Definition at line 208 of file oneapi/compat.h.

◆ sinhf

#define sinhf (   x)    sycl::sinh((x))

Definition at line 179 of file oneapi/compat.h.

◆ sycl_printf

#define sycl_printf (   format,
  ... 
)
Value:
{ \
static const CONSTANT char fmt[] = format; \
sycl::ext::oneapi::experimental::printf(fmt, __VA_ARGS__ ); \
}
format
Definition: logImageCore.h:38
#define CONSTANT

Definition at line 137 of file oneapi/compat.h.

◆ sycl_printf_

#define sycl_printf_ (   format)
Value:
{ \
static const CONSTANT char fmt[] = format; \
sycl::ext::oneapi::experimental::printf(fmt); \
}

Definition at line 142 of file oneapi/compat.h.

◆ tanf

#define tanf (   x)    sycl::native::tan(((float)(x)))

Definition at line 210 of file oneapi/compat.h.

◆ tanhf

#define tanhf (   x)    sycl::tanh((x))

Definition at line 181 of file oneapi/compat.h.

Typedef Documentation

◆ uchar

using uchar = unsigned char

Definition at line 155 of file oneapi/compat.h.

Function Documentation

◆ make_float3() [1/2]

ccl_always_inline float3 make_float3 ( float  x)

Definition at line 166 of file oneapi/compat.h.

References x.

◆ make_float3() [2/2]

ccl_always_inline float3 make_float3 ( float  x,
float  y,
float  z 
)

Definition at line 162 of file oneapi/compat.h.

References x, y, and z.