|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
CRTP mixin giving a class uniform to_device / to_host / device / getDeviceArrayBytes methods.
More...
#include <DeviceTransferable.hpp>
Public Member Functions | |
| void | to_device (DeviceBackend B) |
| Mirror every registered ArrayPair to the given device backend. | |
| void | to_host () |
| Pull every registered pair back to host memory. | |
| DeviceBackend | device () |
| Consistent device backend across all registered pairs. | |
| index | getDeviceArrayBytes () |
| Total footprint of every registered father+son pair in bytes. | |
CRTP mixin giving a class uniform to_device / to_host / device / getDeviceArrayBytes methods.
The derived class only has to expose its device-managed members via a for_each_device_member(F&&) method template that invokes F(m) once per MemberRef<ArrayPairType>:
Once that is in place, all four member functions below iterate every registered pair and forward the device operation.
Definition at line 35 of file DeviceTransferable.hpp.
|
inline |
Consistent device backend across all registered pairs.
Asserts that every pair's father and son live on the same backend; throws a descriptive message if not.
Definition at line 61 of file DeviceTransferable.hpp.
|
inline |
Total footprint of every registered father+son pair in bytes.
Definition at line 94 of file DeviceTransferable.hpp.
|
inline |
Mirror every registered ArrayPair to the given device backend.
Definition at line 39 of file DeviceTransferable.hpp.
|
inline |
Pull every registered pair back to host memory.
Definition at line 49 of file DeviceTransferable.hpp.