GPU core progress & general design philosophy

We often have to make difficult decisions on what hardware to support in the future, including adding new platforms or removing existing ones.  Removing existing platforms always leads to a lot of disruptive change for donors, so we try to do this as rarely as we can.  In particular, in the GPU1 to GPU2 transition, there was a big change done quickly, which was extremely hard on donors.

For GPUs in particular, the central issue is that in general, GPU technology keeps on progressing and GPU manufacturers come up with new ways to do things which make the old ones obsolete. So, it's probably safe to say that until hardware design innovation changes, *eventually* older GPUs will become obsolete for FAH. We try to keep as many GPUs working as long as possible, but eventually it becomes a losing battle, as we have only a fixed number of programmers and more GPU types (even from a given vendor, say different CUDA capable levels) require more programmers to keep up, and eventually we run out of resources.

Right now, there's a division with the Fermi cards. Fermi and later cards have powerful new capabilities that the older cards do not have. So, I can imagine eventually we'll run out of tricks to support the older cards. I can't predict when that will be, as it depends on lots of things, but I can say we're trying hard to support everything as long as we can.

One of the biggest issues is that scientific needs can change based on where the science takes us and that's particularly hard for us to predict.  We'll try to let donors know as soon as we can if there will be any changes, but some donors questions prompted this blog post so that at least donors have some sense of how our decisions are made internally.