GPUs have been my bread and butter for 20+ years.

The best introductory source continues to be Kayvon Fatahalian and Mike
Houston's 2008 CACM paper: https://dl.acm.org/doi/10.1145/1400181.1400197

It says little about the software interface to the GPU, but does a very
good job of motivating and describing the architecture.

The in-depth resource for modern GPU architecture is the Nvidia A100 tensor
architecture paper:
https://images.nvidia.com/aem-dam/en-zz/Solutions/data-center/nvidia-ampere-architecture-whitepaper.pdf.
It's a slog, but clearly shows how compute has changed.  Particularly, much
of the success is in turning branchy workloads with scattered memory
accesses into much more bulk-oriented data streams that match well to the
"natural" structure of the tensor cores.  The performance gains can be
astronomical. I've personally made > 1000x - yes, that's *times* not
percentages - speedups with some workloads.  There is very little compute
that's "cpu-limited" at multi-second scales that can't benefit from these
approaches, hence the death of non-GPU supercomputing.

Paul



On Fri, Dec 27, 2024 at 7:13 AM <tlaro...@kergis.com> wrote:

> On Thu, Dec 26, 2024 at 10:24:23PM -0800, Ron Minnich wrote:
> [very interesting stuff]
> >
> > Finally, why did something like this not ever happen? Because GPUs
> > came along a few years later and that's where all the parallelism in
> > HPC is nowadays. NIX was a nice idea, but it did not survive in the
> > GPU era.
> >
> 
> GPUs are actually wreaking havoc other kernels, with, in the Unix
> world, X11 being in a bad shape for several reasons, one being that
> GPU are not limited to graphical display---this tends to be
> anecdoctical in some sense.
> 
> Can you elaborate on the GPUs paradigm break? I tend to think that
> there is a main difference between "equals" sharing a same address
> space via MMU, and auxiliary processors that are using another address
> space. A GPU, as far as I know (this is not much), is an auxiliary
> processor when the GPU is discrete, and is a specialized processor
> sharing the same address space when integrated (but I guess that a
> HPC have discrete GPUs with perhaps a specialized connection).
> 
> Do you know good references about:
> 
> - organizing processors depending on memory connection---I found
> mainly M. J. Flynn's paper(s) about this, but nothing more
> recent---and the impact on an OS design;
> 
> - IPC vs threads---from your description, it seems that your solution
> was multiplying processes so IPC instead of multiplying threads---but
> nonetheless the sharing of differing memories remains, and is more
> easy to solve with IPC than with threads;
> 
> - Present GPU's architecture (supposing it is documented; it seems not
> totally from "General-Purpose Graphics Processor Archictectures",
> Aamodt, Lun Fung, Rogers, SpringerVerlag) and the RISC-V approach,
> composing hardware by connecting dedicated elements, and vectors vs
> SIMT.
> 
> Thanks for sharing (what can be shared)!
> --
> Thierry Laronde <tlaronde +AT+ kergis +dot+ com>
>              http://www.kergis.com/
>             http://kertex.kergis.com/
> Key fingerprint = 0FF7 E906 FBAF FE95 FD89  250D 52B1 AE95 6006 F40C

------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T7692a612f26c8ec5-M515bf7357d2a3e968c25260f
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to