ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
memory.h
Go to the documentation of this file.
1#ifndef MEMORY_H
2#define MEMORY_H
3
4#include <fstream>
5#include <string>
6
7namespace ModuleBase
8{
9
17class Memory
18{
19 public:
20 Memory();
21 ~Memory();
22
33 static double record(const std::string &class_name,
34 const std::string &name,
35 const long &n,
36 const std::string &type,
37 const bool accumulate = false);
38
46 static void record(
47 const std::string &name_in,
48 const size_t &n_in,
49 const bool accumulate = false
50 );
51
52#if defined(__CUDA) || defined(__ROCM)
53
64 static double record_gpu(const std::string &class_name,
65 const std::string &name,
66 const long &n,
67 const std::string &type,
68 const bool accumulate = false);
69
77 static void record_gpu(
78 const std::string &name_in,
79 const size_t &n_in,
80 const bool accumulate = false
81 );
82
83#endif
84
85 static double &get_total(void)
86 {
87 return total;
88 }
89
90 static void finish(std::ofstream &ofs);
91
97 static void print_all(std::ofstream &ofs);
98
99 static void print(const int find_in);
100
109 static double calculate_mem(const long &n, const std::string &type);
110
111 private:
112 static double total;
113 static std::string *name;
114 static std::string *class_name;
115 static double *consume;
116 static int n_memory;
117 static int n_now;
118 static bool init_flag;
119
120#if defined(__CUDA) || defined(__ROCM)
121 static double total_gpu;
122 static std::string *name_gpu;
123 static std::string *class_name_gpu;
124 static double *consume_gpu;
125 static int n_now_gpu;
126 static bool init_flag_gpu;
127#endif
128
129 static int complex_matrix_memory; //(16 Byte)
130 static int double_memory; //(8 Byte)
131 static int int_memory; //(4 Byte)
132 static int bool_memory;
133 static int short_memory; //(2 Byte)
134 static int float_memory; //(4 Byte)
135};
136
137} // namespace ModuleBase
138
139#endif
Record memory consumption during computation.
Definition memory.h:18
static bool init_flag
Definition memory.h:118
static double & get_total(void)
Definition memory.h:85
static double total
Definition memory.h:112
static int n_now
Definition memory.h:117
static int bool_memory
Definition memory.h:132
static int float_memory
Definition memory.h:134
static int n_memory
Definition memory.h:116
static int short_memory
Definition memory.h:133
Memory()
Definition memory.cpp:45
~Memory()
Definition memory.cpp:49
static int complex_matrix_memory
Definition memory.h:129
static void print(const int find_in)
Definition memory.cpp:344
static int double_memory
Definition memory.h:130
static std::string * name
Definition memory.h:113
static double calculate_mem(const long &n, const std::string &type)
Calculate memory requirements for various types of data.
Definition memory.cpp:53
static void print_all(std::ofstream &ofs)
Print memory consumed (> 1 MB) in a file.
Definition memory.cpp:374
static int int_memory
Definition memory.h:131
static void finish(std::ofstream &ofs)
Definition memory.cpp:352
static double record(const std::string &class_name, const std::string &name, const long &n, const std::string &type, const bool accumulate=false)
Record memory consumed during computation.
Definition memory.cpp:108
static std::string * class_name
Definition memory.h:114
static double * consume
Definition memory.h:115
Definition array_pool.h:6