DFT-FE 1.3.0-pre
Density Functional Theory With Finite-Elements
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 dftfeDeviceTypeConfig_syclh
18#define dftfeDeviceTypeConfig_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 <TypeConfig.h>
26#include <sycl/sycl.hpp>
27
28namespace dftfe
29{
30 namespace utils
31 {
32 typedef std::error_code deviceError_t;
34 typedef sycl::event deviceEvent_t;
35 typedef std::complex<double> deviceDoubleComplex;
36 typedef std::complex<float> deviceFloatComplex;
37
38 // static consts
39 static std::error_code deviceSuccess = make_error_code(sycl::errc::success);
40 // static deviceError_t deviceSuccess(success_code);
41
42 // vendor blas related typedef and static consts
43 typedef sycl::queue deviceBlasHandle_t;
44 typedef oneapi::mkl::transpose deviceBlasOperation_t;
45 typedef oneapi::mkl::blas::compute_mode deviceBlasComputeType_t;
46 typedef sycl::info::event_command_status deviceBlasStatus_t;
47
48 static const sycl::info::event_command_status deviceBlasSuccess =
49 sycl::info::event_command_status::complete;
50
51 static const oneapi::mkl::transpose DEVICEBLAS_OP_N =
52 oneapi::mkl::transpose::nontrans;
53 static const oneapi::mkl::transpose DEVICEBLAS_OP_T =
54 oneapi::mkl::transpose::trans;
55 static const oneapi::mkl::transpose DEVICEBLAS_OP_C =
56 oneapi::mkl::transpose::conjtrans;
57 static const oneapi::mkl::blas::compute_mode DEVICEBLAS_COMPUTE_32F =
58 oneapi::mkl::blas::compute_mode::standard;
59 static const oneapi::mkl::blas::compute_mode
61 oneapi::mkl::blas::compute_mode::float_to_tf32;
62 static const oneapi::mkl::blas::compute_mode
64 oneapi::mkl::blas::compute_mode::float_to_bf16;
65 static const oneapi::mkl::blas::compute_mode
67 oneapi::mkl::blas::compute_mode::float_to_bf16x2;
69 inline std::vector<sycl::device> allSyclGPUDevices =
70 sycl::device::get_devices(sycl::info::device_type::gpu);
73 inline sycl::context syclContext{syclDevice};
74 inline std::map<dftfe::uInt, sycl::queue> queueRegistry{
76 sycl::queue(syclContext,
78 sycl::property::queue::in_order{})}};
79 inline std::set<dftfe::uInt> usedStreamIds{defaultStream};
80 } // namespace utils
81} // namespace dftfe
82
83#endif // dftfeDeviceTypeConfig_syclh
Definition Cell.h:36
std::map< dftfe::uInt, sycl::queue > queueRegistry
Definition DeviceTypeConfig.sycl.h:74
cuFloatComplex deviceFloatComplex
Definition DeviceTypeConfig.cu.h:30
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F
Definition DeviceTypeConfig.cu.h:45
std::set< dftfe::uInt > usedStreamIds
Definition DeviceTypeConfig.sycl.h:79
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_16BF
Definition DeviceTypeConfig.cu.h:49
cudaError_t deviceError_t
Definition DeviceTypeConfig.cu.h:26
cudaEvent_t deviceEvent_t
Definition DeviceTypeConfig.cu.h:28
static const deviceError_t deviceSuccess
Definition DeviceTypeConfig.cu.h:33
cuDoubleComplex deviceDoubleComplex
Definition DeviceTypeConfig.cu.h:29
cudaStream_t deviceStream_t
Definition DeviceTypeConfig.cu.h:27
cublasHandle_t deviceBlasHandle_t
Definition DeviceTypeConfig.cu.h:36
static const cublasOperation_t DEVICEBLAS_OP_N
Definition DeviceTypeConfig.cu.h:42
static const sycl::info::event_command_status deviceBlasSuccess
Definition DeviceTypeConfig.sycl.h:48
sycl::context syclContext
Definition DeviceTypeConfig.sycl.h:73
cublasStatus_t deviceBlasStatus_t
Definition DeviceTypeConfig.cu.h:38
std::vector< sycl::device > allSyclGPUDevices
Definition DeviceTypeConfig.sycl.h:69
static const cublasOperation_t DEVICEBLAS_OP_T
Definition DeviceTypeConfig.cu.h:43
cublasComputeType_t deviceBlasComputeType_t
Definition DeviceTypeConfig.cu.h:39
static const cublasOperation_t DEVICEBLAS_OP_C
Definition DeviceTypeConfig.cu.h:44
sycl::device syclDevice
Definition DeviceTypeConfig.sycl.h:72
dftfe::uInt syclDeviceId
Definition DeviceTypeConfig.sycl.h:71
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_TF32
Definition DeviceTypeConfig.cu.h:47
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_16F
Definition DeviceTypeConfig.cu.h:51
cublasOperation_t deviceBlasOperation_t
Definition DeviceTypeConfig.cu.h:37
static cudaStream_t defaultStream
Definition DeviceTypeConfig.cu.h:62
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10