  EMMA is a cosmological simulation code aimed at investigating the
reionization epoch. It handles simultaneously collisionless and gas dynamics,
as well as radiative transfer physics using a moment-based description with the
M1 approximation. Field quantities are stored and computed on an adaptive 3D
mesh and the spatial resolution can be dynamically modified based on
physically-motivated criteria. Physical processes can be coupled at all spatial
and temporal scales. We also introduce a new and optional approximation to
handle radiation : the light is transported at the resolution of the
non-refined grid and only once the dynamics have been fully updated, whereas
thermo-chemical processes are still tracked on the refined elements. Such an
approximation reduces the overheads induced by the treatment of radiation
physics. A suite of standard tests are presented and passed by EMMA, providing
a validation for its future use in studies of the reionization epoch. The code
is parallel and is able to use graphics processing units (GPUs) to accelerate
hydrodynamics and radiative transfer calculations. Depending on the
optimizations and the compilers used to generate the CPU reference, global GPU
acceleration factors between x3.9 and x16.9 can be obtained. Vectorization and
transfer operations currently prevent better GPU performances and we expect
that future optimizations and hardware evolution will lead to greater
accelerations.
