Commit 3c8ba22f authored by Jens Petit's avatar Jens Petit

DataHandlerGPU: Documentation (#21)

parent 6556c6b1
Pipeline #225709 failed with stages
in 28 minutes and 1 second
elsa offers a fully GPU based DataContainer. This option requires compilation with
```
-DELSA_CUDA_VECTOR=ON
```
Additionally, a matching version of CUDA as well as clang has to be available. This is necessary because of C++17 in device code which is not supported by nvcc. Two tested combinations on Ubuntu 18.04 are:
| clang | CUDA | compute capability |
| ------ | ------ | ----- |
| 8 | 10.0 | up to 7.5 |
| 8 | 9.2 | up to 7 |
Similarly to the `DataHandlerGPU` which uses Eigen, the `DataHandlerGPU` uses the [Quickvec](https://gitlab.lrz.de/IP/quickvec) project. The compile flags will be set automatically.
Enabling the compile-time option `ELSA_CUDA_VECTOR` will set the default `DataContainer` type to use the GPU.
Keep in mind that running full reconstruction examples with large volumes requires large amounts of memory (which the GPU might not have depending on your hardware). As a rough estimate, running a reconstruction task with $700^3$ volume elements requires around 10 GB of memory, as multiple copies have to be created.
On newer GPUs, oversubscription of the GPU memory through the unified memory architecture is possible. However, this will slow down the task at hand considerably to the point that a CPU-only version in main memory might be faster.
......@@ -63,6 +63,12 @@ DataHandlerCPU
.. doxygenclass:: elsa::DataHandlerCPU
DataHandlerGPU
--------------
.. mdinclude:: data_handler_GPU.md
.. doxygenclass:: elsa::DataHandlerGPU
Expression
----------
.. mdinclude:: expression_templates.md
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment