Commit Graph

8 Commits

Author SHA1 Message Date
Arne Schober
9712441191 UE5 - This is the first step of an upcomming TaskGraph refactoring. New Frontends will be comming at a later time. The goal of this Step is to have a common Backend and prove its performance as well as stability. We have proven that the Taskpool and the TaskGraph can run on the same Backend. The Performance has been tested in Fortnite and is comparable on Android as well as PS4. We have completed all the Engine Test sucessfully, tested the Texture and Shader-compilation as well as cooking pipeline extensively and have run Reverb and Frosty. The Backend is disabled by default and can be enabled with -TaskGraphForceNewBackend Commandline option
[CL 14823215 by Arne Schober in ue5-main branch]
2020-11-30 16:27:34 -04:00
danny couture
e9a21dcdf5 Add support to run QueuedThreadPool task on the task graph
Add support for benchmarking task graph scheduling in benchmark tool
Fix exit in benchmark tool

#rb Andriy.Tylychko

[CL 14394713 by danny couture in ue5-main branch]
2020-09-25 05:52:58 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
danny couture
aa8163282b Merge GThreadPool and GLargeThreadPool in Editor using new ThreadPool wrapping functionality
- Supports limiting concurrency essentially giving the option of carving smaller threadpools out of a bigger one
  - Supports priority mapping function to allow per instance priority scheduling
  - In Editor, GThreadPool is now carved up from GLargeThreadPool by wrapping it and limiting concurrency
  - Can also reduce latency on the main thread pool because work items are scheduled just-in-time giving
    the chance to other wrapped queues to take turn and each make progress even if they have hundreds
    of tasks in their respective queue.

#rb Andriy.Tylychko, Francis.Hurteau

[CL 13682779 by danny couture in ue5-main branch]
2020-06-16 06:32:37 -04:00
danny couture
45bbcfdc90 Add priority buckets in thread pools for better scheduling within a single pool.
- This allows to use the GLargeThreadPool and benefit from all available cores even for low priority tasks.
  - Using this implementation, DistanceFields computations, Async resources building, AssetRegistry scanning could all run from the same pool at max cores efficiency.
  - Add synthetic micro-benchmark to isolate new implementation performance and compare it against the old one.

  BenchmarkTool.exe -Benchmark=BM_ThreadPoolOverhead

  Best 3 out of 10 runs
  Before  BM_ThreadPoolOverhead              100000 iterations took   946 ms (9.465282 us/iteration)
               BM_ThreadPoolOverhead              100000 iterations took   947 ms (9.473544 us/iteration)
               BM_ThreadPoolOverhead              100000 iterations took   948 ms (9.485538 us/iteration)

  After    BM_ThreadPoolOverhead              100000 iterations took   944 ms (9.441136 us/iteration)
              BM_ThreadPoolOverhead              100000 iterations took   940 ms (9.407212 us/iteration)
              BM_ThreadPoolOverhead              100000 iterations took   941 ms (9.410743 us/iteration)

#rb Andriy.Tylychko

[CL 13607892 by danny couture in ue5-main branch]
2020-06-03 10:28:25 -04:00
Ryan Durand
9ef3748747 Updating copyrights for Engine Programs.
#rnx
#rb none
#jira none

#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869242 in //Fortnite/Release-12.00/... via CL 10869536
#ROBOMERGE-BOT: FORTNITE (Main -> Dev-EngineMerge) (v613-10869866)

[CL 10870955 by Ryan Durand in Main branch]
2019-12-26 23:01:54 -05:00
Stefan Boberg
d2f9a61b06 Copy-up from Dev-Core
#rb none

[CL 10419044 by Stefan Boberg in Main branch]
2019-11-25 12:03:09 -05:00
Stefan Boberg
1f813eb516 Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb many

[CL 9405827 by Stefan Boberg in Main branch]
2019-10-03 16:26:48 -04:00