tnl-dev:6f736e101f95f8591368c1c5710d7ce2df4fb26d commitshttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commits/6f736e101f95f8591368c1c5710d7ce2df4fb26d2019-11-08T15:49:36+01:00https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/6f736e101f95f8591368c1c5710d7ce2df4fb26dMerge branch 'JK/execution' into 'develop'2019-11-08T15:49:36+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
Refactoring for execution policies
Closes <a href="/gitlab/tnl/tnl-dev/-/issues/49" data-reference-type="issue" data-original="#49" data-link="false" data-link-reference="false" data-project="6" data-issue="49" data-project-path="tnl/tnl-dev" data-iid="49" data-issue-type="issue" data-container="body" data-placement="top" title="Rename prefix sum methods in vectors to scan" class="gfm gfm-issue">#49</a>, <a href="/gitlab/tnl/tnl-dev/-/issues/46" data-reference-type="issue" data-original="#46" data-link="false" data-link-reference="false" data-project="6" data-issue="46" data-project-path="tnl/tnl-dev" data-iid="46" data-issue-type="issue" data-container="body" data-placement="top" title="Remove getType() methods" class="gfm gfm-issue">#46</a>, and <a href="/gitlab/tnl/tnl-dev/-/issues/11" data-reference-type="issue" data-original="#11" data-link="false" data-link-reference="false" data-project="6" data-issue="11" data-project-path="tnl/tnl-dev" data-iid="11" data-issue-type="issue" data-container="body" data-placement="top" title="Refactor VectorFieldVTKWriter and VectorFieldGnuplotWriter" class="gfm gfm-issue">#11</a>
See merge request <a href="/gitlab/tnl/tnl-dev/-/merge_requests/42" data-reference-type="merge_request" data-original="tnl/tnl-dev!42" data-link="false" data-link-reference="false" data-project="6" data-merge-request="45" data-project-path="tnl/tnl-dev" data-iid="42" data-container="body" data-placement="top" title="Refactoring for execution policies" class="gfm gfm-merge_request">!42</a>https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/9723c16bfa3ba16bad97e4902b47d27884768614Moved skipping of synchronization directly into the synchronizeSmartPointersO...2019-11-08T15:38:26+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/9615d107c21c11850be77bd6d3cb2fc6a6b6c2c0Fixed handling of Cuda::getTransferBufferSize() in memory operations2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/e8cc0880358341ddf6604c2f73d7f2fb4ba9ec34Fixed internal linkage of the getHardwareMetadata function in benchmarks2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/ef4cd475ea0958939f30093812a2abfc82ced0b6Added missing __cuda_callable__ to StaticArray and StaticVector methods2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/e202036eeaab8771090cb86540e6c0a30a39c83bReimplemented mesh traverser using ParallelFor2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/11ba9c9f1f009b0c2ec3deb5e3911a9324bd4e0bAdded MeshTraverserTest2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/1c31eac955a47a63233c0e8b7e714c35c1c80cfeSwapped template parameters for methods in Meshes::Traverser so that UserData...2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/87bf36052ded07dc9172e3815f60793e084ca481Updated documentation in README.md2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/afba52d9805c5f8af2c0dfcafd4dc79e56571ebdRenamed prefixSum methods to scan2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
Closes <a href="/gitlab/tnl/tnl-dev/-/issues/49" data-reference-type="issue" data-original="#49" data-link="false" data-link-reference="false" data-project="6" data-issue="49" data-project-path="tnl/tnl-dev" data-iid="49" data-issue-type="issue" data-container="body" data-placement="top" title="Rename prefix sum methods in vectors to scan" class="gfm gfm-issue">#49</a>https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/d070cc39053945afde7e4623e602ebaacd3dad8bRemoved HostType and CudaType aliases in containers, matrices and grids2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
They are not suitable for more than 2 devices/execution types; their design
breaks the Open-Closed Principle. Instead, a type template "Self" was
created, which allows to change any template parameter.https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/3a99723314087917821cc5460a6df0ac1f770168Removed useless typedefs such as ThisType2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/1b7361a959553a5f55eb0ac4efdd22969944fb03Removed Containers::List because it has no benefits over std::list2019-11-08T15:16:22+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/3ddc54a6295f74f3d9d330589356c785c035ba51Fixed handling of --build parameter in the install script2019-11-08T15:16:19+01:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/058aa8a9919f91916ff204903f7db5e76c97ba07Enforce builds without (more or less) any warnings2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/7756e2d0c69479158f6bd9a76f4d6694e199acd1Added Devices::Sequential and corresponding specializations in TNL::Algorithms2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/dbfa5d11a76dc1261a6a359d724545b8f90af7c8Serialization in TNL::File: File::save and File::load are specialized by...2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czSerialization in TNL::File: File::save and File::load are specialized by Allocator instead of Device
https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/399f9627187682cef448c2adde1ecebfff22bad7Moved algorithms from TNL/Containers/Algorithms/ to just TNL/Algorithms/2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
The usage of algorithms such as MemoryOperations or Reduction is not
bound to a particular container. On the other hand, ArrayIO,
ArrayAssignment, VectorAssignment and StaticArrayAssignment are just
implementation details for the containers - moved into
TNL/Containers/detail/
Also moved ParallelFor, StaticFor, StaticVectorFor, TemplateStaticFor
into TNL/Algorithms/https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/57db358c278127f124e5f5f1a281054cca588b64Split ArrayOperations into MemoryOperations and MultiDeviceMemoryOperations2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
This will be necessary to avoid code bloat with more than 2 devices
(execution types).https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/986e25fc252fcf0b9300632789fb9d439d7e6370ArrayOperations: using more parallel algorithms and suitable sequential fallb...2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
- cudaMemcpy is slower than our ParallelFor kernel for CUDA
- use std::copy and std::equal instead of memcpy and memcmp, but only as
sequential fallbacks
- use parallel algorithms for containsValue and containsOnlyValue (again
with sequential fallbacks)https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/f8c8673d5c8533c3ceb3d99a3915bbbf3067f941ArrayOperations: added missing methods for the static/sequential specialization2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/7a5840de5c466077a69257931baaad173c7100c6Benchmarks: added benchmarks for array copy and compare using memcpy and memcmp2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/dacc171122a72c2bacbfbb8909187ce2925044b9Moved SystemInfo class out of the Devices namespace2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
It has nothing to do with devices.https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/e2ac7194b542a44145b5b5f0666c1904c7ddd350Cleaned up Devices::Cuda2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/a1a054bf877e5ed7f879a9f4786b13e6a412b234Removed duplicate TransferBufferSize constants2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
Also set the buffer size to 1 MiB, because larger buffer size slows down
memory copies significantly (e.g. MeshTest would take about 10x longer).
Addresses <a href="/gitlab/tnl/tnl-dev/-/issues/26" data-reference-type="issue" data-original="#26" data-link="false" data-link-reference="false" data-project="6" data-issue="26" data-project-path="tnl/tnl-dev" data-iid="26" data-issue-type="issue" data-container="body" data-placement="top" title="Code revision" class="gfm gfm-issue">#26</a>https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/15b5e2c40d9c1a68518c0f4408bb4ecdd1b56a36Moved atomicAdd function from Devices/Cuda.h into Atomic.h2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/1743358a01404a575b09b06474e4ef8fb8bb9dedMoved synchronization of smart pointers from Devices::Cuda into TNL::Pointers...2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czMoved synchronization of smart pointers from Devices::Cuda into TNL::Pointers namespace as free functions
synchronizeDevice() was renamed to synchronizeSmartPointersOnDevice()
for clarity - there are many similarly named functions in CUDA (e.g.
cudaDeviceSynchronize()).
https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/2d5176fbd499dc84110e7105ed3fec69caa0e869Moved (most of) static methods from TNL::Devices::Cuda as free functions into...2019-10-25T15:42:35+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czMoved (most of) static methods from TNL::Devices::Cuda as free functions into separate namespace TNL::Cuda
The class TNL::Devices::Cuda was too bloated, breaking the Single
Responsibility Principle. It should be used only for template
specializations and other things common to all devices.
The functions in MemoryHelpers.h are deprecated, smart pointers should
be used instead.
The functions in LaunchHelpers.h are temporary, more refactoring is
needed with respect to execution policies and custom launch parameters.
https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/fed5d45ca61dc013d570845412096454120428a4Added default stream synchronizations after kernel launches in CudaReductionK...2019-10-24T11:35:02+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/39dadccb76366f194dd7d42ea73aaa44446d10fdFixed parseCommandLine after refactoring the getType function2019-10-24T11:35:02+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/5910a5e8cae4d2f05ae6868e875afaf416a888d8Reimplemented getType() function using typeid operator and removed useless ge...2019-10-24T11:35:02+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
Fixes <a href="/gitlab/tnl/tnl-dev/-/issues/46" data-reference-type="issue" data-original="#46" data-link="false" data-link-reference="false" data-project="6" data-issue="46" data-project-path="tnl/tnl-dev" data-iid="46" data-issue-type="issue" data-container="body" data-placement="top" title="Remove getType() methods" class="gfm gfm-issue">#46</a>https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/203ee514b4bc3d9580f5836f8f993ebef878a072Removed custom implementation of std::make_unique which is available in STL s...2019-10-24T11:35:02+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/826332e4e9793ae031714400155778b122e240f2Removed useless operator<< for TNL::String2019-10-24T11:35:02+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
The implementation for std::string (which is a base class of
TNL::String) is perfectly sufficient.https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/6d17baa38fc84cbc508308d888f7ff7b68a8b8c2Refactoring VectorFieldVTKWriter2019-10-24T11:35:02+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
Fixes <a href="/gitlab/tnl/tnl-dev/-/issues/11" data-reference-type="issue" data-original="#11" data-link="false" data-link-reference="false" data-project="6" data-issue="11" data-project-path="tnl/tnl-dev" data-iid="11" data-issue-type="issue" data-container="body" data-placement="top" title="Refactor VectorFieldVTKWriter and VectorFieldGnuplotWriter" class="gfm gfm-issue">#11</a>https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/4675fbdfa68232528576250cbf10d20a8337a6eaDevices: replaced getDeviceType() with getType()2019-10-24T11:35:02+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/e7880461cfd64752fa8136c5e48ed6cc60bda30aRemoved MIC support2019-10-24T11:35:02+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/ccd42739c3686b8e9ae389c99e62b8548ed0a4aeMerge branch 'hamilton-jacobi-rebase' into 'develop'2019-10-21T13:21:41+02:00Jakub Klinkovskýklinkovsky@mmg.fjfi.cvut.cz
Hamilton jacobi rebase
See merge request <a href="/gitlab/tnl/tnl-dev/-/merge_requests/43" data-reference-type="merge_request" data-original="tnl/tnl-dev!43" data-link="false" data-link-reference="false" data-project="6" data-merge-request="46" data-project-path="tnl/tnl-dev" data-iid="43" data-container="body" data-placement="top" title="Hamilton jacobi rebase" class="gfm gfm-merge_request">!43</a>https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/e162a57a89c80ef7d685191b013cb6436d0b85762D MPI GPU method adjusted.2019-10-05T10:33:58+02:00fenclfenclmat@fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/ac30546025477c6f06c55c30670808b86df82b34Fixed passing of Arrays by ArrayView.2019-09-28T21:49:31+02:00Tomas Oberhubertomas.oberhuber@fjfi.cvut.czhttps://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/commit/008601adc763ccbbcfdf8db6901a9af11d75b723Fix 2D GPU neighbours. Version with Chess method and OpenMP FSM methods.2019-09-25T20:05:21+02:00fenclfenclmat@fjfi.cvut.cz