Area cuda
Cuda implementation of areas.
New area allow to allocate data on cuda devices. Allocation optionally include the ability to map host memory on device memory. See cuda area documentation.
Additional files are:
-
include/aml/area/cuda.h
: library header -
src/area/cuda.c
: area implementation -
tests/area/test_cuda.c
: tests -
o2lo.in
: generation of .lo files. This guides libtool to link cuda device object files with the remaining of the library.
This merge request modifies the compilation toolchain to check if cuda areas can be built and eventually tested. If it can be built, it will, even if the machine has no cuda device to run it. Indeed, one might want to compile and run the library on different machines (i.e with and without cuda devices). Modified files are:
configure.ac
src/Makefile.am
An additional error code has been added to aml errors for handling busy cuda devices or already registered host pointer on cuda devices. See:
include/aml/utils/error.h
src/utils/error.c
Also, all CI stages as been set not to run on branches name starting with wip:
.gitlab-ci.yml