Skip to content

Commit c792c41

Browse files
Merge pull request #312 from arcaneframework/dev/gg-continue-refactor-of-bsrmatrix
[femutils] Continue refactoring of `BSRMatix`
2 parents 2cf6201 + 5a3e987 commit c792c41

File tree

2 files changed

+89
-84
lines changed

2 files changed

+89
-84
lines changed

femutils/BSRFormat.cc

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ BSRMatrix(ITraceMng* tm, const eMemoryRessource& mem_ressource, const RunQueue&
4141
: TraceAccessor(tm)
4242
, m_values(mem_ressource)
4343
, m_columns(mem_ressource)
44-
, m_row_index(mem_ressource)
44+
, m_rows_index(mem_ressource)
4545
, m_queue(queue) {};
4646

4747
/*---------------------------------------------------------------------------*/
@@ -71,8 +71,8 @@ initialize(Int32 nb_non_zero_value, Int32 nb_col, Int32 nb_row, Int8 nb_block, b
7171
m_values.resize(nb_non_zero_value);
7272
m_values.fill(0, &m_queue);
7373
m_columns.resize(nb_col);
74-
m_row_index.resize(nb_row);
75-
m_nb_nz_per_row.resize(nb_row);
74+
m_rows_index.resize(nb_row);
75+
m_nb_non_zero_per_rows.resize(nb_row);
7676
}
7777

7878
/*---------------------------------------------------------------------------*/
@@ -84,8 +84,8 @@ findValueIndex(DoFLocalId row, DoFLocalId col) const
8484
auto block_row = row / m_nb_block;
8585
auto block_col = col / m_nb_block;
8686

87-
auto block_start = m_row_index[block_row];
88-
auto block_end = (block_row == m_nb_row - 1) ? m_nb_col : m_row_index[block_row + 1];
87+
auto block_start = m_rows_index[block_row];
88+
auto block_end = (block_row == m_nb_row - 1) ? m_nb_col : m_rows_index[block_row + 1];
8989

9090
auto row_offset = row % m_nb_block;
9191
auto col_offset = col % m_nb_block;
@@ -96,7 +96,7 @@ findValueIndex(DoFLocalId row, DoFLocalId col) const
9696
while (block_start < block_end) {
9797
if (m_columns[block_start] == block_col) {
9898
if (!m_order_values_per_block)
99-
return block_start_in_value + (m_nb_block * col_index) + (row_offset * m_nb_block * m_nb_nz_per_row[block_row]) + col_offset;
99+
return block_start_in_value + (m_nb_block * col_index) + (row_offset * m_nb_block * m_nb_non_zero_per_rows[block_row]) + col_offset;
100100
else
101101
return (block_start * nb_block_sq) + ((row_offset * m_nb_block) + col_offset);
102102
}
@@ -116,25 +116,25 @@ toCsr(CsrFormat* csr_matrix)
116116
info() << "BSRMatrix(toCsr): Convert matrix to CSR";
117117
auto startTime = platform::getRealTime();
118118

119-
auto nb_block_rows = m_row_index.extent0();
119+
auto nb_block_rows = m_rows_index.extent0();
120120
auto nb_rows = nb_block_rows * m_nb_block;
121121
auto total_non_zero_elements = m_nb_non_zero_value;
122122

123123
csr_matrix->initialize(nullptr, total_non_zero_elements, nb_rows, m_queue);
124124

125125
if (m_nb_block == 1) {
126-
csr_matrix->m_matrix_row = m_row_index;
126+
csr_matrix->m_matrix_row = m_rows_index;
127127
csr_matrix->m_matrix_column = m_columns;
128-
csr_matrix->m_matrix_rows_nb_column = m_nb_nz_per_row;
128+
csr_matrix->m_matrix_rows_nb_column = m_nb_non_zero_per_rows;
129129
}
130130
else {
131131
// Translate `row_index`
132132
csr_matrix->m_matrix_row[0] = 0;
133133
auto offset = 1;
134-
for (auto i = 0; i < m_row_index.extent0() - 1; ++i) {
134+
for (auto i = 0; i < m_rows_index.extent0() - 1; ++i) {
135135
for (auto j = 0; j < m_nb_block; ++j) {
136-
auto start = m_row_index[i];
137-
auto end = i == m_row_index.extent0() - 1 ? m_nb_col : m_row_index[i + 1];
136+
auto start = m_rows_index[i];
137+
auto end = i == m_rows_index.extent0() - 1 ? m_nb_col : m_rows_index[i + 1];
138138
auto nombre_de_dof_dans_la_rangee = (end - start) * m_nb_block;
139139
csr_matrix->m_matrix_row[offset] = csr_matrix->m_matrix_row[offset - 1] + nombre_de_dof_dans_la_rangee;
140140
offset++;
@@ -143,10 +143,10 @@ toCsr(CsrFormat* csr_matrix)
143143

144144
// Translate `columns`
145145
offset = 0;
146-
for (auto i = 0; i < m_row_index.extent0(); ++i) {
146+
for (auto i = 0; i < m_rows_index.extent0(); ++i) {
147147
for (auto j = 0; j < m_nb_block; ++j) {
148-
auto start = m_row_index[i];
149-
auto end = i == m_row_index.extent0() - 1 ? m_nb_col : m_row_index[i + 1];
148+
auto start = m_rows_index[i];
149+
auto end = i == m_rows_index.extent0() - 1 ? m_nb_col : m_rows_index[i + 1];
150150
for (auto block_index = start; block_index < end; ++block_index) {
151151
for (auto k = 0; k < m_nb_block; ++k) {
152152
csr_matrix->m_matrix_column[offset] = m_columns[block_index] * m_nb_block + k;
@@ -158,9 +158,9 @@ toCsr(CsrFormat* csr_matrix)
158158

159159
// Translate `nb_nz_per_row`
160160
offset = 0;
161-
for (auto i = 0; i < m_nb_nz_per_row.extent0(); ++i) {
161+
for (auto i = 0; i < m_nb_non_zero_per_rows.extent0(); ++i) {
162162
for (auto j = 0; j < m_nb_block; ++j) {
163-
csr_matrix->m_matrix_rows_nb_column[offset++] = m_nb_nz_per_row[i] * m_nb_block;
163+
csr_matrix->m_matrix_rows_nb_column[offset++] = m_nb_non_zero_per_rows[i] * m_nb_block;
164164
}
165165
}
166166

@@ -183,8 +183,8 @@ toLinearSystem(DoFLinearSystem& linear_system)
183183
info() << "BSRMatrix(toLinearSystem): Translate matrix to linear system using `matrixAddValue`";
184184

185185
for (auto row = 0; row < m_nb_row; ++row) {
186-
auto row_start = m_row_index[row];
187-
auto row_end = (row + 1 < m_nb_row) ? m_row_index[row + 1] : m_nb_col;
186+
auto row_start = m_rows_index[row];
187+
auto row_end = (row + 1 < m_nb_row) ? m_rows_index[row + 1] : m_nb_col;
188188
for (auto block_idx = row_start; block_idx < row_end; ++block_idx) {
189189
auto col = m_columns[block_idx];
190190
for (auto i = 0; i < m_nb_block; ++i) {
@@ -208,10 +208,10 @@ dump(const String& filename)
208208
info() << "BSRMatrix(dump): Dump matrix in '" << filename << "'";
209209
ofstream file(filename.localstr());
210210

211-
file << "size :" << nbNz() << "\n";
211+
file << "size :" << nbNonZero() << "\n";
212212
for (auto i = 0; i < nbRow(); ++i) {
213-
file << m_row_index(i) << " ";
214-
for (Int32 j = m_row_index(i) + 1; (i + 1 < m_row_index.dim1Size() && j < m_row_index(i + 1)) || (i + 1 == m_row_index.dim1Size() && j < m_columns.dim1Size()); j++)
213+
file << m_rows_index(i) << " ";
214+
for (Int32 j = m_rows_index(i) + 1; (i + 1 < m_rows_index.dim1Size() && j < m_rows_index(i + 1)) || (i + 1 == m_rows_index.dim1Size() && j < m_columns.dim1Size()); j++)
215215
file << " ";
216216
}
217217
file << "\n";
@@ -220,7 +220,7 @@ dump(const String& filename)
220220
file << m_columns(i) << " ";
221221
file << "\n";
222222

223-
for (auto i = 0; i < nbNz(); ++i)
223+
for (auto i = 0; i < nbNonZero(); ++i)
224224
file << m_values(i) << " ";
225225
file << "\n";
226226

@@ -321,9 +321,9 @@ computeNzPerRowArray()
321321
auto startTime = platform::getRealTime();
322322

323323
auto command = makeCommand(m_queue);
324-
NumArray<Int32, MDDim1>& nb_nz_per_row = m_bsr_matrix.nbNzPerRow();
324+
NumArray<Int32, MDDim1>& nb_nz_per_row = m_bsr_matrix._nbNonZeroPerRows();
325325
auto inout_nb_nz_per_row = viewInOut(command, nb_nz_per_row);
326-
auto inout_row_index = viewInOut(command, m_bsr_matrix.rowIndex());
326+
auto inout_row_index = viewInOut(command, m_bsr_matrix._rowsIndex());
327327

328328
auto nb_row = m_bsr_matrix.nbRow();
329329
// Copy `row_index` in `nz_per_row`
@@ -339,7 +339,7 @@ computeNzPerRowArray()
339339
m_queue.barrier();
340340

341341
{
342-
auto nb_col = m_bsr_matrix.nbCol();
342+
auto nb_col = m_bsr_matrix.nbColumn();
343343
auto command = makeCommand(m_queue);
344344
command << RUNCOMMAND_LOOP1(iter, nb_row)
345345
{
@@ -396,7 +396,7 @@ computeRowIndexAtomicFree()
396396
computeNeighborsAtomicFree(neighbors_ss);
397397

398398
Accelerator::Scanner<Int32> scanner;
399-
scanner.exclusiveSum(&m_queue, neighbors_ss, m_bsr_matrix.rowIndex().to1DSmallSpan());
399+
scanner.exclusiveSum(&m_queue, neighbors_ss, m_bsr_matrix._rowsIndex().to1DSmallSpan());
400400
}
401401

402402
/*---------------------------------------------------------------------------*/
@@ -406,8 +406,8 @@ void BSRFormat::
406406
computeColumnsAtomicFree()
407407
{
408408
auto command = makeCommand(m_queue);
409-
auto inout_columns = viewInOut(command, m_bsr_matrix.columns());
410-
auto row_index = m_bsr_matrix.rowIndex().to1DSmallSpan();
409+
auto inout_columns = viewInOut(command, m_bsr_matrix._columns());
410+
auto row_index = m_bsr_matrix._rowsIndex().to1DSmallSpan();
411411

412412
if (m_mesh->dimension() == 2) {
413413
UnstructuredMeshConnectivityView connectivity_view(m_mesh);
@@ -555,7 +555,7 @@ computeRowIndex(Int8 edges_per_element, Int64 nb_edge_total, SmallSpan<UInt64>&
555555

556556
Accelerator::Scanner<Int32> scanner;
557557
SmallSpan<Int32> neighbors_ss = neighbors.to1DSmallSpan();
558-
scanner.exclusiveSum(&m_queue, neighbors_ss, m_bsr_matrix.rowIndex().to1DSmallSpan());
558+
scanner.exclusiveSum(&m_queue, neighbors_ss, m_bsr_matrix._rowsIndex().to1DSmallSpan());
559559
}
560560

561561
/*---------------------------------------------------------------------------*/
@@ -568,8 +568,8 @@ computeColumns(Int8 edges_per_element, Int64 nb_edge_total, SmallSpan<uint64_t>&
568568

569569
{
570570
auto command = makeCommand(m_queue);
571-
auto in_row_index = viewIn(command, m_bsr_matrix.rowIndex());
572-
auto inout_columns = viewInOut(command, m_bsr_matrix.columns());
571+
auto in_row_index = viewIn(command, m_bsr_matrix._rowsIndex());
572+
auto inout_columns = viewInOut(command, m_bsr_matrix._columns());
573573

574574
command << RUNCOMMAND_LOOP1(iter, nb_node)
575575
{
@@ -587,8 +587,8 @@ computeColumns(Int8 edges_per_element, Int64 nb_edge_total, SmallSpan<uint64_t>&
587587

588588
{
589589
auto command = makeCommand(m_queue);
590-
auto inout_columns = viewInOut(command, m_bsr_matrix.columns());
591-
auto in_row_index = viewIn(command, m_bsr_matrix.rowIndex());
590+
auto inout_columns = viewInOut(command, m_bsr_matrix._columns());
591+
auto in_row_index = viewIn(command, m_bsr_matrix._rowsIndex());
592592
auto inout_offsets = viewInOut(command, offsets);
593593

594594
command << RUNCOMMAND_LOOP1(iter, nb_edge_total)
@@ -659,7 +659,7 @@ matrix()
659659
void BSRFormat::
660660
resetMatrixValues()
661661
{
662-
m_bsr_matrix.values().fill(0, m_queue);
662+
m_bsr_matrix._values().fill(0, m_queue);
663663
};
664664

665665
/*---------------------------------------------------------------------------*/

0 commit comments

Comments
 (0)