Release 3.1.0 (2021/04/14)
Taskflow 3.1.0 is the 2nd release in the 3.x line! This release includes several new changes such as CPU-GPU tasking, algorithm collection, enhanced web-based profiler, documentation, and unit tests.
Download
Taskflow 3.1.0 can be downloaded from here.
System Requirements
To use Taskflow v3.1.0, you need a compiler that supports C++17:
- GNU C++ Compiler at least v8.4 with -std=c++17
- Clang C++ Compiler at least v6.0 with -std=c++17
- Microsoft Visual Studio at least v19.27 with /std:c++17
- AppleClang Xcode Version at least v12.0 with -std=c++17
- Nvidia CUDA Toolkit and Compiler (nvcc) at least v11.1 with -std=c++17
- Intel C++ Compiler at least v19.0.1 with -std=c++17
- Intel DPC++ Clang Compiler at least v13.0.0 with -std=c++17 and SYCL20
Taskflow works on Linux, Windows, and Mac OS X.
New Features
Taskflow Core
- optimized task node storage by using std::
unique_ptr for semaphores - merged the execution flow of cudaFlow and cudaFlow capturer
cudaFlow
- optimized tf::cudaRoundRobinCapturing through an event-pruning heuristic
- optimized the default block size used in cudaFlow algorithms
- added tf::
cudaFlow:: clear() to clean up a cudaFlow - added tf::
cudaFlow:: num_tasks() to query the task count in a cudaFlow - added tf::
cudaTask:: num_dependents() to query the dependent count in a cudaTask - added tf::
cudaFlowCapturer:: clear() to clean up a cudaFlow capturer - added tf::
cudaFlowCapturer:: num_tasks() to query the task count in a cudaFlow capturer - added tf::
cudaFlowCapturer rebind methods: - tf::cudaFlowCapturer::rebind_single_task
- tf::cudaFlowCapturer::rebind_for_each
- tf::cudaFlowCapturer::rebind_for_each_index
- tf::cudaFlowCapturer::rebind_transform
- tf::cudaFlowCapturer::rebind_reduce
- tf::cudaFlowCapturer::rebind_uninitialized_reduce
- added tf::
cudaFlow update methods: - tf::cudaFlow::update_for_each
- tf::cudaFlow::update_for_each_index
- tf::cudaFlow::update_transform
- tf::cudaFlow::update_reduce
- tf::cudaFlow::update_uninitialized_reduce
- added cudaFlow examples:
- parallel reduction (examples/cuda/cuda_reduce.cu)
- parallel transform (examples/cuda/cuda_transform.cu)
- rebind (examples/cuda/cuda_rebind.cu)
Utilities
- resolved the compiler warning in serializer caused by
constexpr if
- resolved the compiler error of nvcc when parsin variadic namespace
Taskflow Profiler (TFProf)
No update for TFProf in this release.
Bug Fixes
- fixed the macro expansion issue with MSVC on
TF_CUDA_CHECK
- fixed the serializer compile error (#288)
- fixed the tf::
cudaTask:: type bug in mixing host and empty task types
Breaking Changes
There are no breaking changes in this release.
Deprecated and Removed Items
There are no deprecated or removed items in this release.
Documentation
- added Query the Worker ID to the cookbook page Executor
- revised update methods in GPU Tasking (cudaFlow)
- revised rebind methods in GPU Tasking (cudaFlowCapturer)
Miscellaneous Items
- removed Circle-CI from the continuous integration
- updated grok to the user list
- updated RavEngine to the user list
- updated RPGMPacker to the user list
- updated Leanify to the user list