Arsiliath
Arsiliath
  • Видео 9
  • Просмотров 113 691
GPU Compute Shader Work Groups
Thank you:
Scott: ImpossibleScott
Landon: landon.vfx
Thanks also to RobotFunk for catching a bug in the video.
Music: ruclips.net/video/x3umEBHGgho/видео.html
Просмотров: 6 798

Видео

01 Introduction to Cyclic Cellular Automata
Просмотров 3,3 тыс.2 года назад
Part of a class I teach on compute shaders. Sign up here: arsiliath.gumroad.com/ I forget what track the intro music is, but if you know please let me know. www.math.ucdavis.edu/~gravner/papers/cca.pdf originally found via softologyblog.wordpress.com/2013/08/29/cyclic-cellular-automata/
Tutorial: Disabling Unity 2021 HDRP defaults like sky, bloom, brightness, exposure
Просмотров 5 тыс.3 года назад
In HDRP, there are a lot of defaults that can be a bit confusing how to remove. Here's a quick tutorial on how to get back down to a very basic scene.
[OLD] Tutorial: Disabling Unity 2019 HDRP defaults like bloom, brightness, exposure
Просмотров 3,2 тыс.4 года назад
New video for unity 2020 here: ruclips.net/video/3-cgjUzU0DA/видео.html
Intro to Compute Shaders
Просмотров 44 тыс.4 года назад
Part of a class I teach on compute shaders. Sign up here: arsiliath.gumroad.com/ Twitter: arsiliath
Reaction Diffusion: A Visual Explanation
Просмотров 14 тыс.5 лет назад
A simple, visual explanation of Gray Scott reaction diffusion. arsiliath
Tutorial: Subsurface Scattering in Unity 2019 (HDRP SSS)
Просмотров 29 тыс.5 лет назад
psychobiotik How to get the built-in SSS working in HDRP. More info: github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/Subsurface-Scattering
Tutorial: Intro to Unity VFX Graph
Просмотров 8 тыс.5 лет назад
IMPORTANT For Unity 2019 please use this approach: imgur.com/a/fMudl1L instead of the "sequential grid" approach in the video. Quick tutorial on how to make a basic effect using curl noise, single burst spawn, and some basic remaps. To get it to look like the video at the beginning, just put it inside of a glass sphere, using glass from the Measured Materials library.

Комментарии

  • @JerrodSteinkellner-b2p
    @JerrodSteinkellner-b2p 5 дней назад

    Pagac Points

  • @RooseveltChester-p2z
    @RooseveltChester-p2z 11 дней назад

    Daugherty Plains

  • @rudyjouannic741
    @rudyjouannic741 3 месяца назад

    i did everything, but the sky is still blue, like flat blue, i tried to set a "gradient sky" with "black;black;black" as colors but nop...sky still blue :/ any idea/help ? (in my scene its grey, but in game its blue i dont understand :'(

    • @rudyjouannic741
      @rudyjouannic741 3 месяца назад

      Alright, so i fixed it, just in case anyone have the same probleme one day, dont forget to check if in the rubric "environment" of your CAMERA, the skybox is either on "sky" AND you have put some overide on the sky ( like "Gradient sky") to make it black, OR if the "sky type" of the camera is on "color and > "black". My camera was set on skymode > color> blue for some reasons ^^'

  • @shariel9731
    @shariel9731 3 месяца назад

    Such a great explanation, thank you!

  • @alexandredias4782
    @alexandredias4782 4 месяца назад

    formula at 4:08 contains a mistake : dispatchX x dispatchY x dispatchY. the Y is repeated two times, it should instead be dispatchX x dispatchY x dispatchZ. Question : Nvidia GPUs have thousands of warps. But each warp contains a maximum of 32 threads. So, wouldn't a numthread of 16x16x1 exceed that number?

  • @吉吉犬
    @吉吉犬 5 месяцев назад

    Too abstract lol!!!

  • @ssojyeti2
    @ssojyeti2 5 месяцев назад

    nice tutorial!

  • @absorbingdude
    @absorbingdude 7 месяцев назад

    Big thanks for this clear explanation!

  • @musabkara1684
    @musabkara1684 8 месяцев назад

    So what is the limit of threads. is choosing a high value like 64,64,1 or higher possible?

    • @DxXNA
      @DxXNA 7 месяцев назад

      Yeah that's something I'd like to know as well, but if his suggestion of "Warps" is correct you take your Cuda Core's Count i.e. 2060 super has 2176 Cuda Cores and divide this by 32 to get the Warp Size aka 68 unique cores.

    • @alexfrozen
      @alexfrozen 4 месяца назад

      You have to look at limits when acquiring GPU device. I don't remember the name of this one, they're long to keep in mind, but it's last. Each limit has guaranteed value in spec of GPU and every vendor should respect it. So, 256 is guaranteed value. It means that 256,1,1, or 1,1,256, or 16,4,4 are valid values. Google GPU LIMITS keywords for answer how to ask GPU about this.

  • @dev_reimu
    @dev_reimu 9 месяцев назад

    This is great and incredibly informative, but why would we use more than 1 Dispatch if it's going to get distributed in the GPU?

    • @arsiliath
      @arsiliath 9 месяцев назад

      You dispatch once per kernel call. If you want to dispatch multiple kernels or one kernel multiple times, then you would do multiple dispatches. When you dispatch a grid, you choose the number of work groups and the work group dimensions.

    • @dev_reimu
      @dev_reimu 9 месяцев назад

      @@arsiliath Oh haha! That's just the same video this comment is on! I am just confused because at 4:28 you show a Dispatch of (1, 1, 1), saying it uses much more of the hardware and that it's better, but then proceed to use a Dispatch of (4, 4, 4) and numthreads of (4, 4, 4). Why use multiple dispatches for this one texture?

    • @arsiliath
      @arsiliath 9 месяцев назад

      @@dev_reimu What is your understanding of what "Dispatch" means? It might be helpful to articulate your understanding of dispatch (grid size), and also of num threads (work group size) etc, and make sure that you understand what's happening.

  • @v037_
    @v037_ Год назад

    Nice video thanks dude, can you also add some code samples of compute shader, for me it's best learning also viewing a lot of examples

    • @arsiliath
      @arsiliath Год назад

      Thank you! For examples please see my course: arsiliath.gumroad.com/l/compute-shaders

  • @tetronym4549
    @tetronym4549 Год назад

    This video is exactly what I needed! Slight nitpick though, is that the music is rather loud compared to your voice, and there is a lot of static as well. The good news is this isn't too hard to fix! The static is rather homogeneous so it should be easy to remove with something basic like Audacity

  • @TestVideoChannel_1234
    @TestVideoChannel_1234 Год назад

    Amazing video! Thank you for breaking down such a complex topic and making it so much more understandable. Liked and Subscribed. I’m interested in the Compute Shader course you have on Gumroad. Is that still current? I know it’s only a few years old but I though I would check before purchasing.

    • @arsiliath
      @arsiliath Год назад

      Hi - yes! The course now has students using the current versions of Unity and it is still working. The Unity compute shader API has not changed much, if at all, since the course was created.

    • @TestVideoChannel_1234
      @TestVideoChannel_1234 Год назад

      @@arsiliath Great! Thank you much!!

  • @michelechirra7120
    @michelechirra7120 Год назад

    Great video, clear and concise explanation on a topic that is not covered that much, congratulations!

  • @Chribit
    @Chribit Год назад

    Nice video! :) Do you know of any way to query warp / wave size at runtime with vulkan for example? I've found it makes quite the difference whether or not a workgroup fits within the internal thread block - and you loose out on some performance if you just use the smallest possible workroup size for all devices. For instance: my laptop has intel internal graphics, and supposedly 8x8 workgroups work better there. But my desktop pc with a gtx 1080 ti has much larger warps and technically could go for 32x32 as far as i know. would be really cool if you could point me to any resources regarding this - i can't seem to find much in the vulkan specs (only things regarding maximum thread counts per workgroup)

    • @arsiliath
      @arsiliath Год назад

      Unfortunately I'm not sure. I suppose one hack would be to programmatically try a few different sizes and then see which leads to highest fps. Sometimes CUDA documentation is more robust, so if you look there and then try to find the corresponding thing in whatever framework you are using, sometimes that can be a good angle.

  • @gt3293
    @gt3293 Год назад

    This is a great explanation, and i would love to see more if these!

  • @dpscloud3324
    @dpscloud3324 Год назад

    Awesome video! Earned a new like and subscribe.

  • @redenvalerio601
    @redenvalerio601 Год назад

    Loved your informative videos. Been subscribed ever since. Please continue this kind of content. Hoping for more frequent updates! Much love!

    • @arsiliath
      @arsiliath Год назад

      Thank you! Really heart warming to hear this.

  • @eatenpancreas
    @eatenpancreas Год назад

    The tutorial is amazing, but how (at 1:10) is that GREEN? This is baffling to me

  • @buh357
    @buh357 Год назад

    i did not understand the part (laplacian(point)) in the formula, could you explain a little bit?

  • @OMG3Dmax
    @OMG3Dmax Год назад

    this is an amazing lesson on SSS, you've been very helpful, thanks bro!

  • @TheKingoftheriff
    @TheKingoftheriff Год назад

    But who'd do any of this in C#?

    • @ThefamousMrcroissant
      @ThefamousMrcroissant Год назад

      If you want to process a large batch of rendertextures it's a very obvious choice. Doing this on the CPU would be very taxing.

  • @lofwyr5063
    @lofwyr5063 Год назад

    Extremely good tutorial. Simple examples that springboard a lot of complexity derived from it.

  • @fredspipa
    @fredspipa 2 года назад

    About halfway through the video I let out a long "AAAaaaahhhh...". Then it clicked, after writing several half-working compute shaders, watching many videos on them, reading guides, it wasn't until your examples that it suddenly made complete sense. This is both what I love and hate about programming; it feels impenetrable and extremely complex until it's suddenly the most natural thing in the world and you're embarrassed that you didn't get it before. That's what my electronics teacher told me when he was teaching the binary system; "you need to be stupid enough to understand this". I had the same feeling here, I over-complicated it until you succinctly and simply explained it to me. Thank you so much!

  • @ab-uo6rd
    @ab-uo6rd 2 года назад

    Thank you so much for that tutorial. For me as someone who just tries to start with compute shader it really helped me to understand the logic.

  • @pengxu8138
    @pengxu8138 2 года назад

    This is amazing. Thanks for sharing! I start understanding the PDE algorithm.

  • @SaadTheGlad
    @SaadTheGlad 2 года назад

    I slept to this video, calmest voice ever. I didn't understand anything yet, I'll attempt to do that when I'm awake. Please make more videos like this where you explain programming stuff calmly. Thank you.

  • @Blockmaster987
    @Blockmaster987 2 года назад

    I keep coming back to this video, hoping for more.

    • @arsiliath
      @arsiliath 2 года назад

      Hi - All the videos are available as part of the compute shader class here: notochord.xyz/compute-shader-class.html

  • @PunmasterSTP
    @PunmasterSTP 2 года назад

    These are so neat, and I really appreciate the fact that you included an explanation. By any chance, have you ever simulated systems with more than two chemical species?

    • @arsiliath
      @arsiliath 2 года назад

      Thank you! I haven't tried more than two chemicals, but here are some interesting approaches you may be interested in: ruclips.net/video/Q2w8dpemwt0/видео.html ruclips.net/video/9jHLS1qkCIU/видео.html ruclips.net/video/9PGtwthgynw/видео.html

  • @Code4MathVids
    @Code4MathVids 2 года назад

    Say I have a bunch of particles where I want to do physics simulations off of. I understand in the shader I could pass some known values to and the particle's id into the shader. However, what about returning the values computed from the shader (position / velocity)? if these are happening in parallel, how do I get this data back outside of the GPU?

    • @arsiliath
      @arsiliath 2 года назад

      Depends on the shader framework, but usually there is a way to get data from a GPU buffer and put it into a CPU array. More here: notochord.xyz/compute-shader-class.html

  • @vkokhan88
    @vkokhan88 2 года назад

    We need more stuff like this

    • @arsiliath
      @arsiliath 2 года назад

      Hi - All the videos are available as part of the compute shader class here: notochord.xyz/compute-shader-class.html

  • @FlipYourLearning
    @FlipYourLearning 2 года назад

    This is surprisingly good, especially for a beginner like me. The teaching style is very different from most youtube videos or udemy courses, but it works so well with a topic like this. I was even more impressed when I saw you take inspiration from biology for your shaders, as I'm a biologist myself. Unfortunately, I can't afford the course, but I will follow your channel closely. Thanks for this amazing tutorial.

    • @arsiliath
      @arsiliath 2 года назад

      Hey thanks! If you want to join the discord about all this stuff, feel free to DM me on twitter @arsiliath.

  • @DrTexx
    @DrTexx 2 года назад

    Super excellent, made a lot of sense! Thank you! :)

  • @alvarobyrne
    @alvarobyrne 2 года назад

    cool, very very cool. (The coding train should come here ) I'd like to attend to your classes if you offer a new course, tell me please (I'm subscribed to your newsletter, but I missed last course annoucement) congrats

    • @arsiliath
      @arsiliath 2 года назад

      I'm doing new cohorts every 3-6 months now. More info here: notochord.xyz/compute-shader-class.html

  • @maciejmatyka
    @maciejmatyka 2 года назад

    FYP GPU compute shader implementation: ruclips.net/video/xqfjL3vvk2k/видео.html and tutorial: maciejmatyka.blogspot.com/2022/01/compute-shaders-in-open-frameworks.html

    • @alvarobyrne
      @alvarobyrne 2 года назад

      Very nice professor Matyka! Thanks for sharing

  • @briskled8955
    @briskled8955 2 года назад

    thanks for your video. What do I do if my data size is larger than the amount of available threads?

    • @arsiliath
      @arsiliath 2 года назад

      You can dispatch multiple groups, so the GPU will just process them in turn if the grid that you dispatch has more threads than can be processed in one go. More here: notochord.xyz/compute-shader-class.html

  • @TrencTolize
    @TrencTolize 2 года назад

    This is by far the best explanation of this topic that I have seen. The visual examples really help to understand how the index works.

  • @IronFreee
    @IronFreee 2 года назад

    That's so intuitive.

  • @manu.vision
    @manu.vision 2 года назад

    Excited for this new series of tutorials!

  • @lucyboydwilson
    @lucyboydwilson 2 года назад

    Thank you! Could not figure out how to remove the clouds... thank you so much!

  • @deathvall3y
    @deathvall3y 2 года назад

    😍😍😍😍😍❤❤❤❤❤❤❤

  • @SevenDeMagnus
    @SevenDeMagnus 2 года назад

    Cool. Coreteks brought me here. God bless.

  • @shivanshuraj7175
    @shivanshuraj7175 2 года назад

    What are workgroup and invocation in workgroup.Are invocation referred to cell?So in each work group given cell will perform same computation and different workgroup cells will do different work?that is how is it arranged?

  • @magnuswootton6181
    @magnuswootton6181 2 года назад

    thats real enough for me. very volumetric thick look to it.

  • @grayman9398
    @grayman9398 2 года назад

    Thank you very much for that explanation, seriously though the explanation with the grid cells explains everything thank you very much

  • @KYL3R64
    @KYL3R64 2 года назад

    It's actually good but just not intuitive. It makes sense, that the HDR intensity has to be used, but I didn't get it by just playing around with it - therefore this is a helpful tutorial! Thanks

  • @alonsohv
    @alonsohv 2 года назад

    "Pisutiun" lmao

  • @curiouspers
    @curiouspers 2 года назад

    Great stuff!

  • @prodevus
    @prodevus 2 года назад

    What a great channel! I feel like this channel would explode if you put a little bit more energy into the voiceover, but I love your videos nonetheless!

    • @arsiliath
      @arsiliath 2 года назад

      Thank you for the feedback!

    • @monkey4102
      @monkey4102 Год назад

      @@arsiliath No idea if you want this channel to explode like Mr. Frippertronics wants, but I prefer the calm tone. I can't stand artificial excitement, clickbait titles, bouncing around in the chair, the latest slang, and generally trying to appeal to TikTok fans. Keep doing what you are doing, IMO.