preprocessed_inputfile_t Struct Reference

Public Member Functions

 preprocessed_inputfile_t (const inputfile_t &inputfile)
 

Public Attributes

string filename
 
vector< preprocessed_inputfile_entry_tentries
 

Private Member Functions

void import_input_file_range_one_product_size (const vector< inputfile_entry_t >::const_iterator &begin, const vector< inputfile_entry_t >::const_iterator &end)
 

Constructor & Destructor Documentation

◆ preprocessed_inputfile_t()

preprocessed_inputfile_t::preprocessed_inputfile_t ( const inputfile_t inputfile)
inline
177  : filename(inputfile.filename) {
178  if (inputfile.type != inputfile_t::type_t::all_pot_sizes) {
179  abort();
180  }
181  auto it = inputfile.entries.begin();
182  auto it_first_with_given_product_size = it;
183  while (it != inputfile.entries.end()) {
184  ++it;
185  if (it == inputfile.entries.end() || it->product_size != it_first_with_given_product_size->product_size) {
186  import_input_file_range_one_product_size(it_first_with_given_product_size, it);
187  it_first_with_given_product_size = it;
188  }
189  }
190  }
string filename
Definition: analyze-blocking-sizes.cpp:70
type_t type
Definition: analyze-blocking-sizes.cpp:72
vector< inputfile_entry_t > entries
Definition: analyze-blocking-sizes.cpp:71
void import_input_file_range_one_product_size(const vector< inputfile_entry_t >::const_iterator &begin, const vector< inputfile_entry_t >::const_iterator &end)
Definition: analyze-blocking-sizes.cpp:193
string filename
Definition: analyze-blocking-sizes.cpp:174

References inputfile_t::all_pot_sizes, inputfile_t::entries, and inputfile_t::type.

Member Function Documentation

◆ import_input_file_range_one_product_size()

void preprocessed_inputfile_t::import_input_file_range_one_product_size ( const vector< inputfile_entry_t >::const_iterator &  begin,
const vector< inputfile_entry_t >::const_iterator &  end 
)
inlineprivate
194  {
195  uint16_t product_size = begin->product_size;
196  float max_gflops = 0.0f;
197  for (auto it = begin; it != end; ++it) {
198  if (it->product_size != product_size) {
199  cerr << "Unexpected ordering of entries in " << filename << endl;
200  cerr << "(Expected all entries for product size " << hex << product_size << dec << " to be grouped)" << endl;
201  exit(1);
202  }
203  max_gflops = max(max_gflops, it->gflops);
204  }
205  for (auto it = begin; it != end; ++it) {
207  entry.product_size = it->product_size;
208  entry.block_size = it->pot_block_size;
209  entry.efficiency = it->gflops / max_gflops;
210  entries.push_back(entry);
211  }
212  }
#define max(a, b)
Definition: datatypes.h:23
static constexpr lastp1_t end
Definition: IndexedViewHelper.h:79
std::uint16_t uint16_t
Definition: Meta.h:38
Definition: analyze-blocking-sizes.cpp:162
uint16_t block_size
Definition: analyze-blocking-sizes.cpp:164
uint16_t product_size
Definition: analyze-blocking-sizes.cpp:163
float efficiency
Definition: analyze-blocking-sizes.cpp:166
vector< preprocessed_inputfile_entry_t > entries
Definition: analyze-blocking-sizes.cpp:175

References preprocessed_inputfile_entry_t::block_size, preprocessed_inputfile_entry_t::efficiency, Eigen::placeholders::end, MergeRestartFiles::filename, max, and preprocessed_inputfile_entry_t::product_size.

Member Data Documentation

◆ entries

◆ filename

string preprocessed_inputfile_t::filename

The documentation for this struct was generated from the following file: