The
"AI Computing Company", as they call themselves, have consistently made
strides to further the GPU (Graphical Processing Unit) (more reading here)
industry; in fact, back in 2006 they unveiled their CUDA programming
model and Tesla GPU platform, both of which revolutionized computing by
opening up the parallel-processing capabilities of the GPU to everyday
computing. It goes back even farther though: NVIDIA is responsible for
inventing the consumer-grade GPU itself back in 1999 (they claim to
have invented the GPU itself in 1999, but similar tech has existed since
the 70's). Their impact on the technology is clear, but how does that
affect AI?
Let's lay out some of the finer details first.
Once
upon a time, database throughput and application performance were
proportional to available RAM and number of CPUs. This, however, quickly
changed with the rise of NVIDIA and the GPU. It's easy to think that a
GPU is simply used for graphical concepts like video games, modeling,
and more. The GPU industry itself is largely synonymous with the gaming
industry today but it's so much more than that. To make the distinction
it helps to understand how GPU acceleration works under the hood.
GPU-accelerated
computing refers to the use of a GPU together with a CPU to accelerate
applications in fields such as deep learning, engineering, and
analytics. It works by offloading compute-intensive portions of an
application's code to a GPU while the remainder continues to run on the
CPU. Furthermore, the architecture of a given GPU is very different from
that of a CPU. We've all heard of "quad-core" and "octa-core" CPUs, but
why don't we hear of any "octa-core" GPUs? It's because they're already
far beyond that. GPUs consist of thousands of smaller, more efficient
cores that are designed to handle many tasks simultaneously (read: a
massively parallel architecture) (Nvidia).
This architecture means that a GPU can handle copious amounts of data
better than a CPU can. It's easy to see where this is headed.
Let's backtrack a bit and tackle our main question: how does Nvidia's impact on the GPU market affect AI?
The answer lies in GPU deep learning.
GPU
deep learning is an advanced machine learning technique that has taken
the AI and cognitive computing industries by storm. It uses neural
networks (and more) to power computer vision, speech recognition (OK
Google...), autonomous cars, and much more.The neural networks that drive
these projects perform very complex statistical computations in
attempts to find patterns in what are often incredibly large sets of
data. This is where the GPU comes in. A GPU can cut the time needed to
compute these computations down dramatically by increasing the overall
throughput over any given amount of time. Thanks to this architecture we
are able to experiment with AI techniques that simply weren't possible
(or probable) prior (Forbes).
Nvidia's newest card, the Titan V, is the most powerful consumer-grade GPU ever released (Titan V Webpage).
Inside
of it lies their new Volta architecture, which they say is the world's
most advanced architecture. With 640 Tensor Cores and over 100 TeraFLOPS
of performance, that's no lie; it really is the best AI-oriented card
and architecture on the market. Though, at $3,000 it's a bit pricey. At
least Titan users get free access to GPU-optimized deep learning
software on Nvidia's GPU Cloud. How nice of them.
If you're interested, you can read the whitepaper on their Volta architecture here.
(Posted originally to Google Group on 12/16/17)
Nvidia has been doing lots of innovative work lately. Aside from GPU applications in mining for crypto-coins and data analytics, I am curious to see how this company might expand the capabilities of virtual reality software.
ReplyDeleteAs a PC gamer, I have been using Nvidia graphics cards for optimal performance. I had no idea how GPUs really worked. I think it's very interesting how GPU acceleration works and how there's actually thousands of cores inside of a GPU. It's also pretty cool how GPUs can be used for A.I.
ReplyDeleteYes, there are thousands of cores in a GPU, but note that they are much more limited in what they can do than a general purpose CPU core. GPU cores are small and optimized for certain operations, but can't handle others, so their good for doing the same simple calculations on a huge volume of data. This is what makes them good for rendering graphics (processing each coordinate point in parallel) or training neural networks (multiplying/adding numbers and updating weights for a lot of nodes in parallel).
ReplyDelete