12#ifndef ARCANE_ACCELERATOR_IREDUCEMEMORYIMPL_H
13#define ARCANE_ACCELERATOR_IREDUCEMEMORYIMPL_H
19#include "arcane/utils/MemoryView.h"
26namespace Arcane::Accelerator::impl
94template<
typename T> T*
virtual void * allocateReduceDataMemory(ConstMemoryView identity_view)=0
Alloue la mémoire pour une donnée dont on veut faire une réduction et remplit la zone avec la valeur ...
virtual Int32 gridSize() const =0
Taille de la grille GPU (nombre de blocs)
virtual GridMemoryInfo gridMemoryInfo()=0
Informations sur la mémoire utilisée par la réduction.
virtual void copyReduceValueFromDevice()=0
Copie la valeur réduite depuis le device vers l'hote.
virtual void release()=0
Libère l'instance.
virtual void setGridSizeAndAllocate(Int32 grid_size)=0
Positionne la taille de la grille GPU (le nombre de blocs)
eDeviceReducePolicy
Politique des opératations de réduction sur les accélérateurs.
@ Grid
Utilise un noyau de calcul avec une synchronisations entre les blocs.
std::int32_t Int32
Type entier signé sur 32 bits.
Informations mémoire pour la réduction sur les accélérateurs.
void * m_host_memory_for_reduced_value
Pointeur vers la mémoire sur l'hôte contenant la valeur réduite.
eDeviceReducePolicy m_reduce_policy
Politique de réduction.
MutableMemoryView m_grid_memory_values
Mémoire allouée pour la réduction sur une grille (de taille nb_bloc * sizeof(T))
unsigned int * m_grid_device_count
Entier utilisé pour compter le nombre de blocs ayant déjà fait leur partie de la réduction.