• Socsa
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    9 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.