14#include "arcane/core/IData.h"
16#include "arcane/utils/NotSupportedException.h"
17#include "arcane/utils/FatalErrorException.h"
18#include "arcane/utils/ArrayShape.h"
21#include "arcane/core/IDataFactory.h"
22#include "arcane/core/IDataVisitor.h"
23#include "arcane/core/ISerializedData.h"
24#include "arcane/core/internal/IDataInternal.h"
28#include "arcane/accelerator/core/RunQueue.h"
29#include "arcane/accelerator/core/Memory.h"
47applyDataVisitor(IMultiArray2Data*)
49 ARCANE_THROW(NotSupportedException,
"using applyDataVisitor with IMultiArray2Data is no longer supported");
72 ARCANE_FATAL(
"Source and destination do not have the same datatype s={0} d={1}",
84copyContiguousData(IData* destination, IData* source, RunQueue& queue)
89 INumericDataInternal* num_destination = destination->_commonInternal()->numericData();
92 INumericDataInternal* num_source = source->_commonInternal()->numericData();
95 copyContiguousData(num_destination, num_source->memoryView(), queue);
102fillContiguousDataGeneric(IData* data,
const void* fill_address,
103 Int32 datatype_size, RunQueue& queue)
105 INumericDataInternal* num_data = data->_commonInternal()->numericData();
109 ConstMemoryView fill_value_view(makeConstMemoryView(fill_address, datatype_size, 1));
110 MutableMemoryView destination_buf = num_data->memoryView();
115 if (data->dimension() > 1) {
116 Int64 total_dim = data->shape().totalNbElement();
117 Int64 nb_element = destination_buf.nbElement();
118 destination_buf = makeMutableMemoryView(destination_buf.data(), datatype_size, nb_element * total_dim);
121 destination_buf.fill(fill_value_view, &queue);
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Fonctions de gestion mémoire et des allocateurs.
#define ARCCORE_DEFINE_REFERENCE_COUNTED_CLASS(class_name)
Macro pour définir les méthodes et types une classe qui utilise un compteur de référence.
Arguments pour la copie mémoire.
File d'exécution pour un accélérateur.
void copyMemory(const MemoryCopyArgs &args) const
Copie des informations entre deux zones mémoires.
bool isNull() const
Indique si la RunQueue est nulle.
virtual void visitMultiArray2(IMultiArray2DataVisitor *visitor)
Applique le visiteur à la donnée.
Interface du pattern visitor pour une donnée tableau 2D à taille variable.
Interface pour un 'IData' d'un type numérique.
Interface d'une donnée sérialisée.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Exception lorsqu'une opération n'est pas supportée.
void copy(MutableMemoryView destination, eMemoryResource destination_mem, ConstMemoryView source, eMemoryResource source_mem, const RunQueue *queue=nullptr)
Copie de source vers destination en utilisant la file queue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Espace de nom de Arccore.