Skip to content

Commit efa1529

Browse files
Merge pull request #1798 from arcaneframework/dev/gg-use-const-runqueue-for-some-methods
Use 'const RunQueue*' instead of 'RunQueue*' for arguments of methods 'copy()' and 'fill()'
2 parents 93d60f4 + 0fe9a04 commit efa1529

File tree

7 files changed

+33
-31
lines changed

7 files changed

+33
-31
lines changed

arcane/src/arcane/accelerator/MemoryCopier.cc

+8-7
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class AcceleratorSpecificMemoryCopy
7777

7878
public:
7979

80-
void _copyFrom(RunQueue* queue, SmallSpan<const Int32> indexes,
80+
void _copyFrom(const RunQueue* queue, SmallSpan<const Int32> indexes,
8181
Span<const DataType> source, Span<DataType> destination)
8282
{
8383
ARCANE_CHECK_POINTER(queue);
@@ -100,7 +100,7 @@ class AcceleratorSpecificMemoryCopy
100100
};
101101
}
102102

103-
void _copyFrom(RunQueue* queue, SmallSpan<const Int32> indexes, SmallSpan<Span<std::byte>> multi_views,
103+
void _copyFrom(const RunQueue* queue, SmallSpan<const Int32> indexes, SmallSpan<Span<std::byte>> multi_views,
104104
Span<const DataType> source)
105105
{
106106
ARCANE_CHECK_POINTER(queue);
@@ -141,7 +141,7 @@ class AcceleratorSpecificMemoryCopy
141141
*
142142
* Si \a indexes est vide, remplit toutes les valeurs.
143143
*/
144-
void _fill(RunQueue* queue, SmallSpan<const Int32> indexes, Span<const DataType> source,
144+
void _fill(const RunQueue* queue, SmallSpan<const Int32> indexes, Span<const DataType> source,
145145
Span<DataType> destination)
146146
{
147147
ARCANE_CHECK_POINTER(queue);
@@ -189,7 +189,7 @@ class AcceleratorSpecificMemoryCopy
189189
}
190190
}
191191

192-
void _fill(RunQueue* queue, SmallSpan<const Int32> indexes, SmallSpan<Span<std::byte>> multi_views,
192+
void _fill(const RunQueue* queue, SmallSpan<const Int32> indexes, SmallSpan<Span<std::byte>> multi_views,
193193
Span<const DataType> source)
194194
{
195195
ARCANE_CHECK_POINTER(queue);
@@ -224,7 +224,8 @@ class AcceleratorSpecificMemoryCopy
224224
// Remplit toutes les valeurs du tableau avec la source.
225225
// Comme le nombre d'éléments de la deuxième dimension dépend de la première,
226226
// on utilise un noyau par dimension.
227-
RunQueue::ScopedAsync sc(queue);
227+
RunQueue q(*queue);
228+
RunQueue::ScopedAsync sc(&q);
228229
const Int32 nb_dim1 = multi_views.size();
229230
for (Int32 zz = 0; zz < nb_dim1; ++zz) {
230231
Span<DataType> orig_view = Arccore::asSpan<DataType>(multi_views[zz]);
@@ -256,7 +257,7 @@ class AcceleratorSpecificMemoryCopy
256257
}
257258
}
258259

259-
void _copyTo(RunQueue* queue, SmallSpan<const Int32> indexes, Span<const DataType> source,
260+
void _copyTo(const RunQueue* queue, SmallSpan<const Int32> indexes, Span<const DataType> source,
260261
Span<DataType> destination)
261262
{
262263
ARCANE_CHECK_POINTER(queue);
@@ -279,7 +280,7 @@ class AcceleratorSpecificMemoryCopy
279280
};
280281
}
281282

282-
void _copyTo(RunQueue* queue, SmallSpan<const Int32> indexes, SmallSpan<const Span<const std::byte>> multi_views,
283+
void _copyTo(const RunQueue* queue, SmallSpan<const Int32> indexes, SmallSpan<const Span<const std::byte>> multi_views,
283284
Span<DataType> destination)
284285
{
285286
ARCANE_CHECK_POINTER(queue);

arcane/src/arcane/utils/MemoryView.cc

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* MemoryView.cc (C) 2000-2023 */
8+
/* MemoryView.cc (C) 2000-2024 */
99
/* */
1010
/* Vues constantes ou modifiables sur une zone mémoire. */
1111
/*---------------------------------------------------------------------------*/
@@ -55,7 +55,7 @@ namespace
5555
impl::SpecificMemoryCopyList<impl::IndexedCopyTraits> global_copy_list;
5656
impl::ISpecificMemoryCopyList* default_global_copy_list = nullptr;
5757

58-
impl::ISpecificMemoryCopyList* _getDefaultCopyList(RunQueue* queue)
58+
impl::ISpecificMemoryCopyList* _getDefaultCopyList(const RunQueue* queue)
5959
{
6060
if (queue && !default_global_copy_list)
6161
ARCANE_FATAL("No instance of copier is available for RunQueue");
@@ -135,7 +135,7 @@ copyFromIndexes(ConstMemoryView v, SmallSpan<const Int32> indexes,
135135

136136
void MutableMemoryView::
137137
fillIndexes(ConstMemoryView v, SmallSpan<const Int32> indexes,
138-
RunQueue* queue) const
138+
const RunQueue* queue) const
139139
{
140140
Int32 one_data_size = _checkDataTypeSize(A_FUNCINFO, m_datatype_size, v.datatypeSize());
141141

@@ -153,7 +153,7 @@ fillIndexes(ConstMemoryView v, SmallSpan<const Int32> indexes,
153153
/*---------------------------------------------------------------------------*/
154154

155155
void MutableMemoryView::
156-
fill(ConstMemoryView v, RunQueue* queue) const
156+
fill(ConstMemoryView v, const RunQueue* queue) const
157157
{
158158
Int32 one_data_size = _checkDataTypeSize(A_FUNCINFO, m_datatype_size, v.datatypeSize());
159159

arcane/src/arcane/utils/MemoryView.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ class ARCANE_UTILS_EXPORT MutableMemoryView
335335
* \pre this.nbElement() >= indexes.size();
336336
*/
337337
void fillIndexes(ConstMemoryView v, SmallSpan<const Int32> indexes,
338-
RunQueue* run_queue = nullptr) const;
338+
const RunQueue* run_queue = nullptr) const;
339339

340340
/*!
341341
* \brief Remplit les éléments de l'instance avec la valeur \a v.
@@ -354,7 +354,7 @@ class ARCANE_UTILS_EXPORT MutableMemoryView
354354
*
355355
* \pre this.datatypeSize() == v.datatypeSize();
356356
*/
357-
void fill(ConstMemoryView v, RunQueue* run_queue = nullptr) const;
357+
void fill(ConstMemoryView v, const RunQueue* run_queue = nullptr) const;
358358

359359
public:
360360

arcane/src/arcane/utils/NumArray.cc

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ _checkHost(eMemoryRessource r)
4949
{
5050
if (r == eMemoryRessource::Host || r == eMemoryRessource::UnifiedMemory)
5151
return;
52-
ARCANE_FATAL("Invalid access from '{0}' ressource memory to host memory", (int)r);
52+
ARCANE_FATAL("Invalid access from '{0}' ressource memory to host memory", r);
5353
}
5454

5555
/*---------------------------------------------------------------------------*/
5656
/*---------------------------------------------------------------------------*/
5757

5858
void NumArrayBaseCommon::
5959
_memoryAwareCopy(Span<const std::byte> from, eMemoryRessource from_mem,
60-
Span<std::byte> to, eMemoryRessource to_mem, RunQueue* queue)
60+
Span<std::byte> to, eMemoryRessource to_mem, const RunQueue* queue)
6161
{
6262
MemoryUtils::copy(MutableMemoryView(to), to_mem, ConstMemoryView(from), from_mem, queue);
6363
}
@@ -67,7 +67,7 @@ _memoryAwareCopy(Span<const std::byte> from, eMemoryRessource from_mem,
6767

6868
void NumArrayBaseCommon::
6969
_memoryAwareFill(Span<std::byte> to, Int64 nb_element, const void* fill_address,
70-
Int32 datatype_size, SmallSpan<const Int32> indexes, RunQueue* queue)
70+
Int32 datatype_size, SmallSpan<const Int32> indexes, const RunQueue* queue)
7171
{
7272
ConstMemoryView fill_value_view(makeConstMemoryView(fill_address, datatype_size, 1));
7373
MutableMemoryView destination(makeMutableMemoryView(to.data(), datatype_size, nb_element));
@@ -79,7 +79,7 @@ _memoryAwareFill(Span<std::byte> to, Int64 nb_element, const void* fill_address,
7979

8080
void NumArrayBaseCommon::
8181
_memoryAwareFill(Span<std::byte> to, Int64 nb_element, const void* fill_address,
82-
Int32 datatype_size, RunQueue* queue)
82+
Int32 datatype_size, const RunQueue* queue)
8383
{
8484
ConstMemoryView fill_value_view(makeConstMemoryView(fill_address, datatype_size, 1));
8585
MutableMemoryView destination(makeMutableMemoryView(to.data(), datatype_size, nb_element));

arcane/src/arcane/utils/NumArray.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -331,21 +331,22 @@ class NumArray
331331
_checkHost(memoryRessource());
332332
m_data.fill(v);
333333
}
334+
334335
/*!
335336
* \brief Remplit via la file \a queue, les valeurs du tableau d'indices
336337
* données par \a indexes par la valeur \a v .
337338
*
338339
* La mémoire associée à l'instance doit être accessible depuis la file \a queue.
339340
*/
340-
void fill(const DataType& v, SmallSpan<const Int32> indexes, RunQueue* queue)
341+
void fill(const DataType& v, SmallSpan<const Int32> indexes, const RunQueue* queue)
341342
{
342343
m_data.fill(v, indexes, queue);
343344
}
344345

345346
/*!
346347
* \brief Remplit les éléments de l'instance la valeur \a v.
347348
*/
348-
void fill(const DataType& v, RunQueue* queue)
349+
void fill(const DataType& v, const RunQueue* queue)
349350
{
350351
m_data.fill(v, queue);
351352
}

arcane/src/arcane/utils/NumArrayContainer.h

+7-7
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ class ARCANE_UTILS_EXPORT NumArrayBaseCommon
3838
static MemoryAllocationOptions _getDefaultAllocator(eMemoryRessource r);
3939
static void _checkHost(eMemoryRessource r);
4040
static void _memoryAwareCopy(Span<const std::byte> from, eMemoryRessource from_mem,
41-
Span<std::byte> to, eMemoryRessource to_mem, RunQueue* queue);
41+
Span<std::byte> to, eMemoryRessource to_mem, const RunQueue* queue);
4242
static void _memoryAwareFill(Span<std::byte> to, Int64 nb_element, const void* fill_address,
43-
Int32 datatype_size, SmallSpan<const Int32> indexes, RunQueue* queue);
43+
Int32 datatype_size, SmallSpan<const Int32> indexes, const RunQueue* queue);
4444
static void _memoryAwareFill(Span<std::byte> to, Int64 nb_element, const void* fill_address,
45-
Int32 datatype_size, RunQueue* queue);
45+
Int32 datatype_size, const RunQueue* queue);
4646
};
4747

4848
/*---------------------------------------------------------------------------*/
@@ -150,30 +150,30 @@ class NumArrayContainer
150150
*
151151
* \a input_ressource indique l'origine de la zone mémoire (ou eMemoryRessource::Unknown si inconnu)
152152
*/
153-
void copyOnly(const Span<const DataType>& v, eMemoryRessource input_ressource, RunQueue* queue = nullptr)
153+
void copyOnly(const Span<const DataType>& v, eMemoryRessource input_ressource, const RunQueue* queue = nullptr)
154154
{
155155
_memoryAwareCopy(v, input_ressource, queue);
156156
}
157157
/*!
158158
* \brief Remplit les indices données par \a indexes avec la valeur \a v.
159159
*/
160-
void fill(const DataType& v, SmallSpan<const Int32> indexes, RunQueue* queue)
160+
void fill(const DataType& v, SmallSpan<const Int32> indexes, const RunQueue* queue)
161161
{
162162
Span<DataType> destination = to1DSpan();
163163
NumArrayBaseCommon::_memoryAwareFill(asWritableBytes(destination), destination.size(), &v, _typeSize(), indexes, queue);
164164
}
165165
/*!
166166
* \brief Remplit les éléments de l'instance la valeur \a v.
167167
*/
168-
void fill(const DataType& v, RunQueue* queue)
168+
void fill(const DataType& v, const RunQueue* queue)
169169
{
170170
Span<DataType> destination = to1DSpan();
171171
NumArrayBaseCommon::_memoryAwareFill(asWritableBytes(destination), destination.size(), &v, _typeSize(), queue);
172172
}
173173

174174
private:
175175

176-
void _memoryAwareCopy(const Span<const DataType>& v, eMemoryRessource input_ressource, RunQueue* queue)
176+
void _memoryAwareCopy(const Span<const DataType>& v, eMemoryRessource input_ressource, const RunQueue* queue)
177177
{
178178
NumArrayBaseCommon::_memoryAwareCopy(asBytes(v), input_ressource,
179179
asWritableBytes(to1DSpan()), m_memory_ressource, queue);

arcane/src/arcane/utils/internal/SpecificMemoryCopyList.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* SpecificMemoryCopyList.h (C) 2000-2023 */
8+
/* SpecificMemoryCopyList.h (C) 2000-2024 */
99
/* */
1010
/* Classe template pour gérer des fonctions spécialisées de copie mémoire. */
1111
/*---------------------------------------------------------------------------*/
@@ -40,7 +40,7 @@ class ARCANE_UTILS_EXPORT IndexedMemoryCopyArgs
4040
public:
4141

4242
IndexedMemoryCopyArgs(SmallSpan<const Int32> indexes, Span<const std::byte> source,
43-
Span<std::byte> destination, RunQueue* run_queue)
43+
Span<std::byte> destination, const RunQueue* run_queue)
4444
: m_indexes(indexes)
4545
, m_source(source)
4646
, m_destination(destination)
@@ -52,7 +52,7 @@ class ARCANE_UTILS_EXPORT IndexedMemoryCopyArgs
5252
SmallSpan<const Int32> m_indexes;
5353
Span<const std::byte> m_source;
5454
Span<std::byte> m_destination;
55-
RunQueue* m_queue = nullptr;
55+
const RunQueue* m_queue = nullptr;
5656
};
5757

5858
/*---------------------------------------------------------------------------*/

0 commit comments

Comments
 (0)