1#ifndef MODULE_DEVICE_H_
2#define MODULE_DEVICE_H_
50 const std::string& basis_type);
61template <
typename Device>
67template <
typename Device>
73#if defined(__CUDA) || defined(__ROCM)
75void print_device_info<base_device::DEVICE_GPU>(
const base_device::DEVICE_GPU *ctx, std::ofstream &ofs_device);
78void record_device_memory<base_device::DEVICE_GPU>(
const base_device::DEVICE_GPU* dev, std::ofstream& ofs_device, std::string str,
size_t size);
Singleton class to manage GPU device context and initialization.
Definition device.h:98
void init()
Initialize GPU device binding.
Definition device.cpp:117
DeviceContext(const DeviceContext &)=delete
bool initialized_
Definition device.h:146
bool gpu_enabled_
Definition device.h:147
int get_local_rank() const
Get the local MPI rank within the node.
Definition device.h:136
int get_device_id() const
Get the bound GPU device ID.
Definition device.h:124
int get_device_count() const
Get the total number of GPU devices on this node.
Definition device.h:130
int device_count_
Definition device.h:149
int device_id_
Definition device.h:148
DeviceContext & operator=(const DeviceContext &)=delete
std::mutex init_mutex_
Definition device.h:151
static DeviceContext & instance()
Get the singleton instance of DeviceContext.
Definition device.cpp:112
int local_rank_
Definition device.h:150
Type trait templates for device and precision detection.
string device_flag
Definition pw_test.cpp:13