• Socsa@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      10 months ago

      Right, GPGPU is a thing. You can do branch logic on GPU and you can do SIMD on a CPU. But in general, logic and compute have some orthogonal requirements which means you end up with divergent designs if you start optimizing in either direction.

      This is also a software architecture and conceptual problem as well. You simply can’t do conditional SIMD. You can compute both graphs in parallel and “branch” when the tasks join (which is a form of speculative execution), but that’s rarely more efficient than defining and dispatching compute tasks on demand when you get to the edges of the performance curve.