17#ifndef dftefeDeviceTypeConfigHalfPrec_syclh
18#define dftefeDeviceTypeConfigHalfPrec_syclh
22#include <sycl/sycl.hpp>
23#include <sycl/ext/oneapi/bfloat16.hpp>
35 uint16_t bits = sycl::bit_cast<uint16_t>(bf16);
36 uint32_t float_bits = (bits << 16);
37 return sycl::bit_cast<float>(float_bits);
43 uint32_t float_bits = sycl::bit_cast<uint32_t>(f);
44 uint32_t rounding_bias = ((float_bits >> 16) & 1) + 0x7FFF;
45 uint32_t rounded_bits = float_bits + rounding_bias;
46 uint16_t bf16_bits = (rounded_bits >> 16) & 0xFFFF;
47 return sycl::bit_cast<__device_bfloat16>(bf16_bits);
53 return sycl::bit_cast<__device_bfloat16>(a);
__device_bfloat16 __float2bfloat16(float f)
Definition: DeviceTypeConfigHalfPrec.sycl.h:41
__nv_bfloat162 __device_bfloat162
Definition: DeviceTypeConfigHalfPrec.cu.h:27
__device_bfloat16 __sycl_bfloat16_raw(uint16_t a)
Definition: DeviceTypeConfigHalfPrec.sycl.h:51
__forceinline__ __device__ void copyValue(double *a, const double b)
Definition: DeviceDataTypeOverloads.cu.h:53
float __bfloat162float(__device_bfloat16 bf16)
Definition: DeviceTypeConfigHalfPrec.sycl.h:33
__forceinline__ __device__ double imagPartDevice(double a)
Definition: DeviceDataTypeOverloads.cu.h:156
__nv_bfloat16 __device_bfloat16
Definition: DeviceTypeConfigHalfPrec.cu.h:26
__forceinline__ __device__ double realPartDevice(double a)
Definition: DeviceDataTypeOverloads.cu.h:130
int * makeDataTypeDeviceCompatible(int *a)
Definition: DeviceDataTypeOverloads.cu.h:595
dealii includes
Definition: AtomFieldDataSpherical.cpp:31