4 comments

  • quentindanjou 17 hours ago
    I understood everything up to

    > The debug flow I propose with RenderDoc will rely on a lot of shader replacements and roundtrips via SPIRV-Cross’ GLSL backend, so Vulkan GLSL is the appropriate language to start with.

    Where, as someone who never did GPU programming, I feel like the author was explaining GPU programming to people who already know GPU programming.

    • bsder 14 hours ago
      > Vulkan GLSL is the appropriate language to start with.

      GLSL is ABSOLUTELY NOT an appropriate language to start with anymore for a huge number of reasons, and I dearly wish people would quit using it for tutorials.

      Anyone trying to get into GPU programming is going to be much, much more familiar programming in Slang which is effectively HLSL plus some stuff and HLSL is superficially like C++. As a bonus, you are learning a shader language actually used on Windows.

      • fulafel 9 hours ago
        The caveats: Slang is a transpiled language so you're putting in extra abstraction layers, and there's a difference between what people commonly use for GPU programming in games/graphics vs general compute apps. For example people on AMD chips seem to be gravitating to Vulkan for LLM stuff now and Slang/HLSL are not involved.
        • bsder 6 hours ago
          Slang compiles directly to SPIR-V which is now directly supported by both DirectX (as of Shader Model 7) and Vulkan (from the very beginning). Where is the transpilation or abstraction?

          > For example people on AMD chips seem to be gravitating to Vulkan for LLM stuff now and Slang/HLSL are not involved.

          You seem to be confusing different layers of the graphics stack. The SDK operates on the host CPU but the GPU needs something else. For Windows, that was DirectX (CPU) with HLSL compiled to DXIL (GPU). For Linux/Android, that was Vulkan (CPU) with GLSL compiled to SPIR-V (GPU).

          As of now, those are DirectX with (HLSL or Slang) to SPIR-V and Vulkan with Slang to SPIR-V.

          Microsoft announcement of support for SPIR-V in SM7: https://devblogs.microsoft.com/directx/directx-adopting-spir...

          Vulkan announcement of Slang as supported shading language: https://www.khronos.org/news/press/khronos-group-launches-sl... . You can also see it in the fact that the Vulkan examples now all have slang shaders as well.

          The biggest reason to quit using GLSL is simply that development of it occurs at a snail's pace relative to the others because Microsoft and NVIDIA pour so much resource at HLSL and Slang, respectively.

      • merksoftworks 13 hours ago
        Agreed. I wish it was easier to embed the compiler in my favorite languages and reflect on it. Quite excited bout Wesl: https://github.com/wgsl-tooling-wg/wesl-rs.
    • wrs 15 hours ago
      This seems to be some thoughts about an improved way to teach GPU programming to people who don't know it, so the audience for this is people who already do.
  • AntoineN2 14 hours ago
    • loosetypes 8 hours ago
      Is this Human Resource Machine for GPUs rather than single core CPU assembly?
  • codyb 17 hours ago
    Thanks for writing this! I'm just getting into futzing with my Jetson Nano and it indeed is an entirely different space.

    Excited to get into a bit and am bookmarking this guide for when I've got my basic setup going.

  • amelius 15 hours ago
    (as opposed to graphics-first)