Skip to content

Commit e2bfec3

Browse files
[arcane,utils] Ajoute surcharges de 'NumArray::fill()' et 'NumArray::copy()' qui prennent une 'const RunQueue&' en argument.
1 parent 0fb2a91 commit e2bfec3

File tree

1 file changed

+57
-7
lines changed

1 file changed

+57
-7
lines changed

arcane/src/arcane/utils/NumArray.h

+57-7
Original file line numberDiff line numberDiff line change
@@ -376,20 +376,44 @@ class NumArray
376376
* données par \a indexes par la valeur \a v .
377377
*
378378
* La mémoire associée à l'instance doit être accessible depuis la file \a queue.
379+
* \a queue peut être nulle, auquel cas le remplissage se fait sur l'hôte.
379380
*/
380381
void fill(const DataType& v, SmallSpan<const Int32> indexes, const RunQueue* queue)
381382
{
382383
m_data.fill(v, indexes, queue);
383384
}
384385

385386
/*!
386-
* \brief Remplit les éléments de l'instance la valeur \a v.
387+
* \brief Remplit via la file \a queue, les valeurs du tableau d'indices
388+
* données par \a indexes par la valeur \a v .
389+
*
390+
* La mémoire associée à l'instance doit être accessible depuis la file \a queue.
391+
*/
392+
void fill(const DataType& v, SmallSpan<const Int32> indexes, const RunQueue& queue)
393+
{
394+
m_data.fill(v, indexes, &queue);
395+
}
396+
397+
/*!
398+
* \brief Remplit les éléments de l'instance la valeur \a v en utilisant la file \a queue.
399+
*
400+
* \a queue peut être nulle, auquel cas le remplissage se fait sur l'hôte.
387401
*/
388402
void fill(const DataType& v, const RunQueue* queue)
389403
{
390404
m_data.fill(v, queue);
391405
}
392406

407+
/*!
408+
* \brief Remplit les éléments de l'instance la valeur \a v en utilisant la file \a queue.
409+
*
410+
* \a queue peut être nulle, auquel cas le remplissage se fait sur l'hôte.
411+
*/
412+
void fill(const DataType& v, const RunQueue& queue)
413+
{
414+
m_data.fill(v, &queue);
415+
}
416+
393417
/*!
394418
* \brief Remplit les valeurs du tableau par \a v.
395419
*
@@ -421,29 +445,55 @@ class NumArray
421445
void copy(const ThatClass& rhs) { copy(rhs, nullptr); }
422446

423447
/*!
424-
* \brief Copie dans l'instance les valeurs de \a rhs via la file \a queue
448+
* \brief Copie dans l'instance les valeurs de \a rhs via la file \a queue.
425449
*
426450
* Cette opération est valide quelle que soit la mêmoire associée
427451
* associée à l'instance.
428452
* \a queue peut être nul. Si la file est asynchrone, il faudra la
429453
* synchroniser avant de pouvoir utiliser l'instance.
430454
*/
431-
void copy(ConstMDSpanType rhs, RunQueue* queue)
455+
void copy(ConstMDSpanType rhs, const RunQueue* queue)
432456
{
433457
_resizeAndCopy(rhs, eMemoryRessource::Unknown, queue);
434458
}
435459

436460
/*!
437-
* \brief Copie dans l'instance les valeurs de \a rhs via la file \a queue
461+
* \brief Copie dans l'instance les valeurs de \a rhs via la file \a queue.
462+
*
463+
* Cette opération est valide quelle que soit la mêmoire associée
464+
* associée à l'instance.
465+
* \a queue peut être nulle, auquel cas la copie se fait sur l'hôte.
466+
* Si la file est asynchrone, il faudra la synchroniser avant de pouvoir utiliser l'instance.
467+
*/
468+
void copy(ConstMDSpanType rhs, const RunQueue& queue)
469+
{
470+
_resizeAndCopy(rhs, eMemoryRessource::Unknown, &queue);
471+
}
472+
473+
/*!
474+
* \brief Copie dans l'instance les valeurs de \a rhs via la file \a queue.
475+
*
476+
* Cette opération est valide quelle que soit la mêmoire associée
477+
* associée à l'instance.
478+
* \a queue peut être nulle, auquel cas la copie se fait sur l'hôte.
479+
* Si la file est asynchrone, il faudra la synchroniser avant de pouvoir utiliser l'instance.
480+
*/
481+
void copy(const ThatClass& rhs, const RunQueue* queue)
482+
{
483+
_resizeAndCopy(rhs.constMDSpan(), rhs.memoryRessource(), queue);
484+
}
485+
486+
/*!
487+
* \brief Copie dans l'instance les valeurs de \a rhs via la file \a queue.
438488
*
439489
* Cette opération est valide quelle que soit la mêmoire associée
440490
* associée à l'instance.
441491
* \a queue peut être nul. Si la file est asynchrone, il faudra la
442492
* synchroniser avant de pouvoir utiliser l'instance.
443493
*/
444-
void copy(const ThatClass& rhs, RunQueue* queue)
494+
void copy(const ThatClass& rhs, const RunQueue& queue)
445495
{
446-
_resizeAndCopy(rhs.constMDSpan(), rhs.memoryRessource(), queue);
496+
_resizeAndCopy(rhs.constMDSpan(), rhs.memoryRessource(), &queue);
447497
}
448498

449499
public:
@@ -601,7 +651,7 @@ class NumArray
601651
m_span.m_ptr = m_data.to1DSpan().data();
602652
}
603653

604-
void _resizeAndCopy(ConstMDSpanType rhs, eMemoryRessource input_ressource, RunQueue* queue)
654+
void _resizeAndCopy(ConstMDSpanType rhs, eMemoryRessource input_ressource, const RunQueue* queue)
605655
{
606656
this->resize(rhs.extents().dynamicExtents());
607657
m_data.copyOnly(rhs.to1DSpan(), input_ressource, queue);

0 commit comments

Comments
 (0)