namespace tf { /** @page release-3-1-0 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. @tableofcontents @section release-3-1-0_download Download %Taskflow 3.1.0 can be downloaded from here. @section release-3-1-0_system_requirements System Requirements To use %Taskflow v3.1.0, you need a compiler that supports C++17: @li GNU C++ Compiler at least v8.4 with -std=c++17 @li Clang C++ Compiler at least v6.0 with -std=c++17 @li Microsoft Visual Studio at least v19.27 with /std:c++17 @li AppleClang Xcode Version at least v12.0 with -std=c++17 @li Nvidia CUDA Toolkit and Compiler (nvcc) at least v11.1 with -std=c++17 @li Intel C++ Compiler at least v19.0.1 with -std=c++17 @li Intel DPC++ Clang Compiler at least v13.0.0 with -std=c++17 and SYCL20 %Taskflow works on Linux, Windows, and Mac OS X. @section release-3-1-0_new_features New Features @subsection release-3-1-0_taskflow_core Taskflow Core @li optimized task node storage by using std::unique_ptr for semaphores @li merged the execution flow of %cudaFlow and %cudaFlow capturer @subsection release-3-1-0_cudaflow cudaFlow @li optimized tf::cudaRoundRobinCapturing through an event-pruning heuristic @li optimized the default block size used in %cudaFlow algorithms @li added tf::cudaFlow::clear() to clean up a %cudaFlow @li added tf::cudaFlow::num_tasks() to query the task count in a %cudaFlow @li added tf::cudaTask::num_dependents() to query the dependent count in a %cudaTask @li added tf::cudaFlowCapturer::clear() to clean up a %cudaFlow capturer @li added tf::cudaFlowCapturer::num_tasks() to query the task count in a %cudaFlow capturer @li 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 @li 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 @li added %cudaFlow examples: + parallel reduction (examples/cuda/cuda_reduce.cu) + parallel transform (examples/cuda/cuda_transform.cu) + rebind (examples/cuda/cuda_rebind.cu) @subsection release-3-1-0_utilities Utilities @li resolved the compiler warning in serializer caused by constexpr if @li resolved the compiler error of nvcc when parsin variadic namespace @subsection release-3-1-0_profiler Taskflow Profiler (TFProf) No update for TFProf in this release. @section release-3-1-0_bug_fixes Bug Fixes + fixed the macro expansion issue with MSVC on @c TF_CUDA_CHECK + fixed the serializer compile error ([#288](https://github.com/taskflow/taskflow/issues/288)) + fixed the tf::cudaTask::type bug in mixing host and empty task types @section release-3-1-0_breaking_changes Breaking Changes There are no breaking changes in this release. @section release-3-1-0_deprecated_items Deprecated and Removed Items There are no deprecated or removed items in this release. @section release-3-1-0_documentation Documentation + added @ref QueryTheWorkerID to the cookbook page @ref ExecuteTaskflow + revised update methods in @ref GPUTaskingcudaFlow + revised rebind methods in @ref GPUTaskingcudaFlowCapturer @section release-3-1-0_miscellaneous_items 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 */ }