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");
65copyContiguousData(INumericDataInternal* num_destination,
ConstMemoryView source_buf,
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,
105 INumericDataInternal* num_data = data->_commonInternal()->numericData();
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.
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.
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.
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)
void fill(MutableMemoryView destination, ConstMemoryView source, const RunQueue *run_queue=nullptr)
Remplit une zone mémoire avec une valeur.
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 -*-
MutableMemoryView makeMutableMemoryView(void *ptr, Int32 datatype_size, Int64 nb_element)
Créé une vue mémoire modifiable.
std::int64_t Int64
Type entier signé sur 64 bits.
ConstMemoryView makeConstMemoryView(const void *ptr, Int32 datatype_size, Int64 nb_element)
Créé une vue mémoire en lecture seule.
std::int32_t Int32
Type entier signé sur 32 bits.
Espace de nom de Arccore.