Closed Rombur closed 2 years ago
@Rombur, just as a heads-up, I might not be able to get to this review until next week. I have a string of all-day meetings coming up to prep for and attend.
OK no problem. Thanks for letting me know.
OK this is ready to be merged. The tests were failing for two reasons:
ArrayView
worked like BlockMemoryView
in 1D--expt-relaxed-constexpr
to the CI. We actually don't need this flag if we slightly change the code but I will do it in a different PR.
With this PR the underlying data in
MaterialProperty
can be on the host or the device. Because it changes where the material property are stored, it affects virtually every thing else. That's why the PR is huge. The most interesting thing in the PR is the removal ofArrayMD
and its replacement with two new classesMemoryBlock
andMemoryBlockView
.MemoryBlock
allocates a block of memory andMemoryBlockView
allows to access it. This makes it easier to use lambda function with CUDA. Note that we now need the flag--extended-lambda
to use CUDA. I will fix the build system so that we don't need to set this flag manually in a different PR.