> I'd hoped that would mean the Eigen::Matrix would end up in
> persistent memory, but does it just mean the std::vector internal
> data ends up in the persistent memory but the object data (the
> Eigen::Matrix objects themselves) stay in volatile memory? It
> would seem to be a strange copy into the vector if that's the
> case, but maybe the std::vector invokes the Eigen::Matrix
> allocator when doing the copy?
All real data are not stored in the Matirx class itself, or else
you'd never be able to allocate one on stack - there's a limit on
stack memory.
The data of a Matrix are stored in a malloc-allocated memory that
is merely pointed to by some field of the class Matrix.
Your Eigen::Matrix object (= its fields and vtable) does end up in
persistent memory. The memory explicitly allocated by member
functions (or constructors) of this object using a malloc() stay
in DRAM.
There's nothing you can do apart form rewriting Eigen library.
Regards,
Jan
>
https://groups.google.com/d/msgid/pmem/96163572-c2b4-4897-a0c7-bb493f22d967n%40googlegroups.com.
>