Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

What impact on DOTS does the rising trend in big.LITTLE core CPU architectures have?

Discussion in 'Entity Component System' started by Arowx, May 15, 2021.

  1. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Mobile CPUs have had big cores and little cores partly from the transition between 32 and 64 bit features and more recently in large more mainstream CPUs e.g. the new Apple M1 and it sounds like next gen AMD chips will follow this trend.

    So what impact on DOTS does this trend in big.LITTLE cores have on performance, if the very hardware constrains some threads and not others.

    If DOTS is taking advantage of the hardware do we need big and LITTLE systems in DOTS?

    Does this limit any approach that would allow interleaving DOTS systems to fully utilise the hardware e.g. a big core could have way more L0 cache/registers and SIMD power than a LITTLE core?
     
    Haneferd likes this.
  2. 8bitgoose

    8bitgoose

    Joined:
    Dec 28, 2014
    Posts:
    449
    I wonder if Unity will provide a way to choose which type of core you can execute your jobs on?
     
  3. BrendonSmuts

    BrendonSmuts

    Joined:
    Jun 12, 2017
    Posts:
    86
    Wouldn't you pick one type of target and optimize for that? Aren't you either looking to make an app that is low power or high performance, not both? If you want to be able to perform well on low power cores then it seems a high power core would handle you're app well enough anyway, optimized or not. If on the other hand you need the performance of a high power core then you've already eliminated the low power core as an option.
     
  4. Zuntatos

    Zuntatos

    Joined:
    Nov 18, 2012
    Posts:
    612
    You could have a single threaded job (chain) that you know will be part of the main execution path; having that run on the high power cores while the "other" jobs not directly on the main path run on the rest would probably be desirable.
     
  5. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    DOTS regarding different architectures and cores / affinities seems like something we could control in a few years. The core idea of DOTS is going to be the same for every problem here but the tweaking is not, and I don't expect the magic numbers to change much while in dev.

    By that I mean the general resource behaviour and distribution/size of work.
     
  6. 8bitgoose

    8bitgoose

    Joined:
    Dec 28, 2014
    Posts:
    449
    DOTS also seems to improve performance so much due to marshaling of resources correctly that the little cores and the big cores may have negligible difference in absolute performance. Or I could be wrong.
     
  7. desertGhost_

    desertGhost_

    Joined:
    Apr 12, 2018
    Posts:
    258
    I suspect that the OS will ultimately decide what work to put on which type of cores. A game's threads will probably be run on high performance cores while background tasks will be put on the efficiency cores.
     
  8. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    MNNoxMortem and Haneferd like this.