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"
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,
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);
#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.
#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.
Fonctions de gestion mémoire et des allocateurs.
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.
Vue constante sur une zone mémoire contigue contenant des éléments de taille fixe.
constexpr Int32 datatypeSize() const
Taille du type de donnée associé (1 par défaut)
virtual void visitMultiArray2(IMultiArray2DataVisitor *visitor)
Applique le visiteur à la donnée.
Interface du pattern visitor pour une donnée tableau 2D à taille variable.
Interface d'une donnée tableau multi 2D.
Interface pour un 'IData' d'un type numérique.
virtual MutableMemoryView memoryView()=0
Vue mémoire sur la donnée.
Vue modifiable sur une zone mémoire contigue contenant des éléments de taille fixe.
constexpr Int32 datatypeSize() const
Taille du type de donnée associé (1 par défaut)
Exception lorsqu'une opération n'est pas supportée.
ARCCORE_COMMON_EXPORT void fill(MutableMemoryView destination, ConstMemoryView source, const RunQueue *run_queue=nullptr)
Remplit une zone mémoire avec une valeur.
ARCCORE_COMMON_EXPORT 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 -*-
ConstMemoryView makeConstMemoryView(const void *ptr, Int32 datatype_size, Int64 nb_element)
Créé une vue mémoire en lecture seule.
std::int64_t Int64
Type entier signé sur 64 bits.
MutableMemoryView makeMutableMemoryView(void *ptr, Int32 datatype_size, Int64 nb_element)
Créé une vue mémoire modifiable.
std::int32_t Int32
Type entier signé sur 32 bits.
Espace de nom de Arccore.