Search Unity

"Getting started with Burst" session at Unite Copenhagen 2019

Discussion in 'Data Oriented Technology Stack' started by tim_jones, Sep 10, 2019.

  1. tim_jones

    tim_jones

    Unity Technologies

    Joined:
    May 2, 2019
    Posts:
    19
    Hello Burst users!

    We are preparing for our "Getting started with Burst" session at Unite Copenhagen 2019, and we would like to ask for your help. We want to make our session content as useful and relevant as possible.

    To that end... if you have questions about Burst that you think other people will also want to know the answer to, or specific best practices that you would like to see explained, or obstacles you've hit that could have been prevented with an upfront explanation, or anything else that you want to be covered, please reply in this thread.

    We can't promise to cover everything, but this will help us in deciding what to include. Thanks in advance.
     
    Tony_Max, Griz, GliderGuy and 6 others like this.
  2. Kolyasisan

    Kolyasisan

    Joined:
    Feb 2, 2015
    Posts:
    261
    When can we expect Burst to support Nintendo Switch? In our case we're CPU bound and having Burst working on it will definitely help us, even if slightly (we use ECS to do some rendering work in our project).
     
  3. pahe4retro

    pahe4retro

    Joined:
    Aug 13, 2019
    Posts:
    4
    Second that question with Switch support. Also, when will EntityCommandBuffers work with Burst? Maybe give us a list of "What works with Burst, what not", so we can hang on that list. You could also give examples in the talk for it.
     
    GliderGuy, eterlan, Opeth001 and 3 others like this.
  4. wobes

    wobes

    Joined:
    Mar 9, 2013
    Posts:
    669
    It would be wonderful to have some tips about proper vectorization and how to make the code more "Burst friendly".
     
  5. DreamingImLatios

    DreamingImLatios

    Joined:
    Jun 3, 2017
    Posts:
    436
    I'd be interested if there was some discussion about branching and flow control. There was one time in my C# I was loading four floats with terrible memory alignment into a float4 in an outer loop and doing comparisons in a tight and very hot inner loop, and Burst decided to reload those four floats in every inner loop iteration in the output assembly.

    Also, I see a lot of short functions use the AggressiveInlining attribute. Are there situations where that makes a difference for short functions in Burst, or is that just for out-of-burst performance salvaging?
     
    eterlan, Sylmerria and GilCat like this.
  6. Opeth001

    Opeth001

    Joined:
    Jan 28, 2017
    Posts:
    264
    How to use the FunctionPointer feature Correctly and what are the limits ?
     
    tarahugger, Tony_Max and Griz like this.
  7. fherbst

    fherbst

    Joined:
    Jun 24, 2012
    Posts:
    267
    I would be super interested in how to debug code with Burst visually (Debug.DrawLine, DrawRay, Spheres, ....)
    I converted quite some code to Jobs, but debugging is a pain. Currently the easiest way seems to be "convert everything back to non-jobs".

    The Unity Physics package does some debug drawing, but the setup is like a hundred lines with many ways to break stuff. I thought there would be just a way to say "hey, run this on main thread for debugging so I can draw debug lines", but I have neither found a way to do that nor a way to #ifdef whether something is currently compiled with Burst.

    So, long story short, please tell us how to actually debug stuff visually! "How to draw a debug line from a Burst job"
     
    GliderGuy and Rory_Havok like this.
  8. sngdan

    sngdan

    Joined:
    Feb 7, 2014
    Posts:
    918
    I used to write the line endpoints to a native list and then render those as a mesh with line topology - if I recall correctly
     
    krzysie7 likes this.
  9. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,098
    What are the main algorithms in game development that can benefit the most from Burst?
     
  10. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,098
    Are there any plans to allow Burst to compile to GPU compute for improved bandwidth on larger data sets?
     
  11. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,098
    How to get Burst to chain or chunk processing for maximum throughput e.g. Doing 4 SIMD operations in a loop by increasing the loops step rate by 4 and running 4 calculations a loop?
     
  12. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,098
    Have you considered going over the BurstBenchmarks and optimising them as examples?

    Or what would be the best game programming example for Burst optimisation?
     
  13. wobes

    wobes

    Joined:
    Mar 9, 2013
    Posts:
    669
    You may use OpenGL for debugging.
    https://github.com/eppz/Unity.Library.eppz.Lines
     
  14. M_R

    M_R

    Joined:
    Apr 15, 2015
    Posts:
    460
    how (if) Burst AOT supports generic jobs and systems, and limitations on that
     
  15. Griz

    Griz

    Joined:
    Aug 27, 2013
    Posts:
    108
    I can't imagine a getting started with burst session without some examples running with and without burst. Also a good idea might be to emphasize that burst can be used for bottlenecks or/and cpu intensive tasks without having to delve into ECS, and is quite useful in MonoBehaviour workflow.
     
    pahe4retro likes this.
  16. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,098
    Maybe an overview of the SIMD hardware features Burst can take advantage of in different platforms and what they can do.

    I'm thinking some kind of graphical table that would be a useful reference for Unity Game developers.
     
  17. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    839
    +1 With Code examples for cases without ECS
     
    pahe4retro likes this.
  18. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    237
    How burst and entities in general manage blob and NativeStream. What are best practices to have best performance with this containers
     
  19. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,156
    I have few questions:

    - Burst cross-platform determinism ETA? :D
    - Is Burst 100% deterministic on single platform already?
    - Burst outside of jobs coming? ETA?
    - AVX support for Burst and double precision math?
     
    Kolyasisan likes this.
  20. Guedez

    Guedez

    Joined:
    Jun 1, 2012
    Posts:
    158
    "How to make inherently hierarchical structures burstable"
    Like how to make a octree that uses burst for all of it's features like add, collide with box, etc