DFT-EFE
 
Loading...
Searching...
No Matches
DeviceTypeConfig.sycl.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (c) 2017-2022 The Regents of the University of Michigan and DFT-FE
4// authors.
5//
6// This file is part of the DFT-FE code.
7//
8// The DFT-FE code is free software; you can use it, redistribute
9// it, and/or modify it under the terms of the GNU Lesser General
10// Public License as published by the Free Software Foundation; either
11// version 2.1 of the License, or (at your option) any later version.
12// The full text of the license can be found in the file LICENSE at
13// the top level of the DFT-FE distribution.
14//
15// ---------------------------------------------------------------------
16//
17#ifndef dftefeDeviceTypeConfig_syclh
18#define dftefeDeviceTypeConfig_syclh
19
20#include <oneapi/mkl/types.hpp>
21#include <oneapi/mkl/blas/types.hpp>
22#include <complex>
23#include <set>
24#include <map>
25#include <utils/TypeConfig.h>
26namespace dftefe
27{
28 namespace utils
29 {
30 typedef std::error_code deviceError_t;
32 typedef sycl::event deviceEvent_t;
33 typedef std::complex<double> deviceDoubleComplex;
34 typedef std::complex<float> deviceFloatComplex;
35
36 // static consts
37 static std::error_code deviceSuccess = make_error_code(sycl::errc::success);
38 // static deviceError_t deviceSuccess(success_code);
39
40 // vendor blas related typedef and static consts
41 typedef sycl::queue deviceBlasHandle_t;
42 typedef oneapi::mkl::transpose deviceBlasOperation_t;
43 typedef oneapi::mkl::blas::compute_mode deviceBlasComputeType_t;
44 typedef sycl::info::event_command_status deviceBlasStatus_t;
45
46 static const sycl::info::event_command_status deviceBlasSuccess =
47 sycl::info::event_command_status::complete;
48
49 static const oneapi::mkl::transpose DEVICEBLAS_OP_N =
50 oneapi::mkl::transpose::nontrans;
51 static const oneapi::mkl::transpose DEVICEBLAS_OP_T =
52 oneapi::mkl::transpose::trans;
53 static const oneapi::mkl::transpose DEVICEBLAS_OP_C =
54 oneapi::mkl::transpose::conjtrans;
55 static const oneapi::mkl::blas::compute_mode DEVICEBLAS_COMPUTE_32F =
56 oneapi::mkl::blas::compute_mode::standard;
57 static const oneapi::mkl::blas::compute_mode
59 oneapi::mkl::blas::compute_mode::float_to_tf32;
60 static const oneapi::mkl::blas::compute_mode
62 oneapi::mkl::blas::compute_mode::float_to_bf16;
63 static const oneapi::mkl::blas::compute_mode
65 oneapi::mkl::blas::compute_mode::float_to_bf16x2;
67 inline std::vector<sycl::device> allSyclGPUDevices =
68 sycl::device::get_devices(sycl::info::device_type::gpu);
71 inline sycl::context syclContext{syclDevice};
72 inline std::map<dftefe::uInt, sycl::queue> queueRegistry{
74 sycl::queue(syclContext,
76 sycl::property::queue::in_order{})}};
77 inline std::set<dftefe::uInt> usedStreamIds{defaultStream};
78 } // namespace utils
79} // namespace dftefe
80
81#endif // dftefeDeviceTypeConfig_syclh
static cudaStream_t defaultStream
Definition: DeviceTypeConfig.cu.h:62
cuFloatComplex deviceFloatComplex
Definition: DeviceTypeConfig.cu.h:30
cudaError_t deviceError_t
Definition: DeviceTypeConfig.cu.h:26
std::map< dftefe::uInt, sycl::queue > queueRegistry
Definition: DeviceTypeConfig.sycl.h:72
cublasHandle_t deviceBlasHandle_t
Definition: DeviceTypeConfig.cu.h:36
static const cublasOperation_t DEVICEBLAS_OP_N
Definition: DeviceTypeConfig.cu.h:42
cudaStream_t deviceStream_t
Definition: DeviceTypeConfig.cu.h:27
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_TF32
Definition: DeviceTypeConfig.cu.h:47
static const sycl::info::event_command_status deviceBlasSuccess
Definition: DeviceTypeConfig.sycl.h:46
cublasComputeType_t deviceBlasComputeType_t
Definition: DeviceTypeConfig.cu.h:39
cublasStatus_t deviceBlasStatus_t
Definition: DeviceTypeConfig.cu.h:38
sycl::context syclContext
Definition: DeviceTypeConfig.sycl.h:71
std::set< dftefe::uInt > usedStreamIds
Definition: DeviceTypeConfig.sycl.h:77
static const cublasOperation_t DEVICEBLAS_OP_C
Definition: DeviceTypeConfig.cu.h:44
static const cublasOperation_t DEVICEBLAS_OP_T
Definition: DeviceTypeConfig.cu.h:43
sycl::device syclDevice
Definition: DeviceTypeConfig.sycl.h:70
cuDoubleComplex deviceDoubleComplex
Definition: DeviceTypeConfig.cu.h:29
static const deviceError_t deviceSuccess
Definition: DeviceTypeConfig.cu.h:33
dftefe::uInt syclDeviceId
Definition: DeviceTypeConfig.sycl.h:69
cublasOperation_t deviceBlasOperation_t
Definition: DeviceTypeConfig.cu.h:37
std::vector< sycl::device > allSyclGPUDevices
Definition: DeviceTypeConfig.sycl.h:67
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F
Definition: DeviceTypeConfig.cu.h:45
cudaEvent_t deviceEvent_t
Definition: DeviceTypeConfig.cu.h:28
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_16F
Definition: DeviceTypeConfig.cu.h:51
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_16BF
Definition: DeviceTypeConfig.cu.h:49
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t uInt
Definition: TypeConfig.h:11