"Join our vendor-locked implementation" is all I hear. "Trust us by investing into writing software for hardware you can never own".
"Join our vendor-locked implementation" is all I hear. "Trust us by investing into writing software for hardware you can never own".
Maybe I just need to look at them differently, or maybe my perception of their capabilities is just wrong. I do like GPUs, for example. While they are ornery and limited in many ways, they are still flexible enough that you can do enjoyable general-purpose programming on them.
In the last few decades we got really lucky that general purpose CPUs kept getting faster and faster. So many of us could get away with ignoring application specific computer hardware.
Btw, as far as I can tell, TPUs are really just a variant of GPUs with an emphasis on lower precision?
Have a look also at the kind of special purpose hardware people make to mine crypto-currencies. I think the challenge for your teenage hacker is not so much to make them do interesting things, but to design them? (Assuming the tools and simulators become cheap enough?) FPGAs seem like they are cheap enough for a teenager?
GPUs and TPUs have substantially different architectures, it’s not accurate to consider a TPU an a variant of a GPU. See https://dl.acm.org/doi/pdf/10.1145/3360307, particularly section “Contrasting GPU and TPU Architectures”
looking only at the matrix multiply units (and ignoring the hardware multithreading in GPUs that was deliberately not part of the TPU architecture):
TPUv3: 2 cores, 2 128x128 matrix multiply units per core
V100: 80 cores, 8 4x4 matrix multiply units per core
It's almost like a universal law that generic stuff is helpful only to some extent, after which you need specialization. That's why we do PhDs I suppose. And that's why you have cardiologists.
I too am after one of those for my home-security camera system but I've never really looked at what they _are_.
There's only so much of the Internet you can route through a small number of points, before it starts to fail.