CUDA Explained - Why Deep Learning uses GPUs

deeplizard
9 Sept 201813:32

Summary

TLDRThis video tutorial introduces CUDA, a software platform by NVIDIA that enables developers to utilize GPUs for parallel computing, accelerating neural network programming. It explains the difference between CPUs and GPUs, emphasizing the latter's superiority in handling parallel tasks, ideal for deep learning. The video also touches on the evolution of GPUs from graphics processing to general-purpose computing, highlighting NVIDIA's pioneering role. It simplifies complex concepts like convolution operations and demonstrates how to leverage CUDA with PyTorch for efficient computation, providing a foundational understanding for beginners in neural network programming.

Takeaways

  • πŸš€ CUDA is a software platform developed by NVIDIA that allows developers to utilize the parallel processing power of NVIDIA GPUs for accelerated computations.
  • πŸ” GPUs are specialized processors that excel at handling parallel computations, unlike CPUs which are better at general computations.
  • πŸ”„ Parallel computing involves breaking down a large computation into smaller, independent tasks that can be executed simultaneously.
  • πŸ”’ The number of parallel tasks a computation can be broken into is determined by the number of cores in the hardware, with GPUs potentially having thousands of cores compared to a few in CPUs.
  • 🌟 GPUs are particularly suited for 'embarrassingly parallel' tasks, such as those found in neural networks, where many computations can be performed independently.
  • 🧠 Neural networks benefit from GPUs due to their ability to handle the large number of independent computations required for tasks like the convolution operation in deep learning.
  • πŸ› οΈ NVIDIA has been a pioneer in GPU computing, with CUDA being created nearly a decade ago to support general-purpose computing on GPUs.
  • πŸ“š The CUDA toolkit includes specialized libraries like cuDNN (CUDA Deep Neural Network library) that facilitate the development of deep learning applications.
  • πŸ’‘ Using PyTorch with CUDA is straightforward; developers can move computations to the GPU by calling the .cuda() function on tensors.
  • ⚠️ Not all computations are faster on a GPU; it is beneficial for tasks that can be parallelized and may not be efficient for smaller or less parallelizable tasks.
  • 🌐 The advancement of GPU computing has implications beyond graphics; it's now a driving force in fields like deep learning, scientific computing, and AI.

Q & A

  • What is CUDA and why is it significant in neural network programming?

    -CUDA is a software platform created by NVIDIA that pairs with their GPU hardware, making it easier for developers to build software that accelerates computations using the parallel processing power of NVIDIA GPUs. It is significant in neural network programming because it allows for efficient computation acceleration, especially for tasks that can be performed in parallel, which is common in deep learning.

  • What is the difference between a CPU and a GPU in terms of computation capabilities?

    -A CPU, or Central Processing Unit, is designed for handling general computations and typically has a few cores, ranging from four to sixteen. On the other hand, a GPU, or Graphics Processing Unit, is specialized for handling computations that can be done in parallel and can have thousands of cores. GPUs are much faster at computing for parallel tasks compared to CPUs.

  • What is parallel computing and why is it beneficial for neural networks?

    -Parallel computing is a type of computation where a larger computation is broken down into independent, smaller computations that can be carried out simultaneously. This is beneficial for neural networks because they consist of many computations that can be performed in parallel, allowing for significant speedups when using hardware like GPUs that are designed for such tasks.

  • Why are GPUs particularly well-suited for deep learning tasks?

    -GPUs are well-suited for deep learning tasks because neural networks are 'embarrassingly parallel,' meaning they can be easily broken down into a large number of smaller, independent tasks that can be executed in parallel. High-end GPUs have thousands of cores that can perform these computations simultaneously, greatly accelerating the training and inference processes.

  • What is an example of a computation in deep learning that can be parallelized and why is it efficient on a GPU?

    -The convolution operation is an example of a computation in deep learning that can be parallelized. It involves applying a filter over an input image in a way that each position's computation is independent of the others. This allows all positions to be processed in parallel on a GPU, making efficient use of its many cores and accelerating the overall computation.

  • What does NVIDIA provide in terms of software and hardware to support GPU computing?

    -NVIDIA provides the hardware in the form of GPUs that are capable of parallel computations. On the software side, they offer CUDA, a software platform that includes an API for developers to leverage the power of NVIDIA GPUs. Additionally, they provide specialized libraries like cuDNN (CUDA Deep Neural Network library) to further facilitate the development of deep learning applications.

  • What is the relationship between PyTorch and CUDA?

    -PyTorch is a deep learning framework that can take advantage of CUDA to accelerate computations on NVIDIA GPUs. PyTorch integrates CUDA seamlessly, allowing developers to perform GPU-accelerated computations without needing to use the CUDA API directly, making it easier to work with while still benefiting from GPU performance.

  • Why might running computations on a GPU not always be faster than on a CPU?

    -Running computations on a GPU is not always faster due to several factors. For instance, moving data between the CPU and GPU can be costly in terms of performance. Additionally, if the computation task is simple or small, the overhead of parallelizing it may not yield significant speedups, and in some cases, it could slow down the process.

  • What is the significance of the term 'embarrassingly parallel' in the context of neural networks?

    -The term 'embarrassingly parallel' refers to tasks that can be easily broken down into many smaller, independent sub-tasks with little to no effort. Neural networks are considered embarrassingly parallel because their computations, such as the forward and backward passes during training, can be naturally decomposed into many parallelizable operations.

  • What is GPGPU and how does it relate to CUDA?

    -GPGPU stands for General-Purpose computing on Graphics Processing Units. It is a programming model that allows GPUs to be used for computations that are not necessarily related to graphics processing. CUDA is a key component of GPGPU, as it provides the software layer that enables developers to write programs that can run on GPUs for a wide range of applications beyond graphics.

  • How does the process of moving a tensor to a GPU using PyTorch differ from using it on a CPU?

    -In PyTorch, tensors are created on the CPU by default. To move a tensor to a GPU, you call the `.cuda()` method on the tensor object. This transfers the tensor to the GPU memory, allowing subsequent operations on that tensor to be performed on the GPU, leveraging its parallel processing capabilities for potentially faster computation.

Outlines

00:00

πŸš€ Introduction to CUDA and GPU in Neural Networks

This paragraph introduces the concept of CUDA and the role of GPUs in neural network programming. It explains that GPUs are specialized processors designed for handling parallel computations, which makes them faster than CPUs for certain tasks. The explanation includes the difference between CPUs and GPUs, the concept of parallel computing, and how many cores are typically found in each. It also touches on why GPUs are particularly well-suited for neural networks due to their ability to handle 'embarrassingly parallel' tasks, such as the convolution operation in deep learning, which can be broken down into many smaller, independent computations that can be executed simultaneously on a GPU.

05:03

πŸ›  Understanding CUDA and Its Integration with PyTorch

The second paragraph delves into the specifics of CUDA as a software platform developed by NVIDIA to facilitate the use of their GPU hardware for accelerated computations. It discusses the necessity of having an NVIDIA GPU to use CUDA and how developers can download and install it for free. The paragraph also explains the role of libraries in GPU computing and how PyTorch simplifies the use of CUDA by integrating it from the start, allowing developers to leverage GPU acceleration without needing to understand the CUDA API directly. It further explores the trade-offs of using Python for PyTorch's ease of use and the performance benefits of dropping into C, C++, and CUDA at bottleneck points. The summary also includes a practical example of how to move tensors to a GPU using PyTorch and discusses the considerations of when to use GPU versus CPU for computations.

10:04

🌐 The Evolution of GPU Computing and Its Future

The final paragraph discusses the evolution of GPU computing from its origins in computer graphics to its current role in a variety of parallel tasks, including deep learning and scientific computing. It highlights NVIDIA's pioneering role in the development of general-purpose GPU (GPGPU) computing and CUDA, which has been instrumental in enabling the growth of this field. The paragraph also touches on the broader implications of advancements in computing, such as the potential for breakthroughs in precision medicine, weather prediction, climate understanding, material science, and artificial intelligence. It concludes with a reflection on the importance of computing as a transformative human invention and its role in driving scientific discovery and innovation.

Mindmap

Keywords

πŸ’‘CUDA

CUDA, which stands for Compute Unified Device Architecture, is a parallel computing platform and application programming interface (API) model created by NVIDIA. It allows developers to use NVIDIA GPUs for general purpose processing, not just graphics rendering. In the context of the video, CUDA is essential for neural network programming as it enables the acceleration of computations through parallel processing power, making it a key component in deep learning tasks.

πŸ’‘GPU (Graphics Processing Unit)

A GPU is a specialized processor designed to handle complex computations, particularly those that can be performed in parallel. Unlike a CPU, which is optimized for general computations, a GPU contains potentially thousands of cores that can execute multiple threads simultaneously. In the video, GPUs are highlighted as crucial for neural network programming due to their ability to perform parallel computations, which is ideal for tasks in deep learning.

πŸ’‘CPU (Central Processing Unit)

The CPU is the primary processing unit in a computer, designed to handle a wide range of computations. It is typically optimized for sequential processing and contains fewer cores compared to a GPU. In the script, the CPU is contrasted with the GPU to illustrate the difference in their capabilities, particularly in the context of parallel computing and neural network programming.

πŸ’‘Parallel Computing

Parallel computing refers to the simultaneous execution of multiple tasks or computations. It is a method where a larger computation is divided into smaller, independent tasks that can be carried out at the same time. The video emphasizes the importance of parallel computing in neural networks, as it allows for the efficient processing of data in deep learning algorithms.

πŸ’‘Core

In the context of computing, a core refers to a processing unit within a CPU or GPU that is capable of executing tasks. CPUs typically have fewer cores, while GPUs can have thousands, making them more suitable for parallel processing. The script explains that the number of cores is a determining factor in the ability to perform parallel computing.

πŸ’‘Neural Networks

Neural networks are a set of algorithms designed to recognize patterns and represent data in a way that is inspired by the human brain. They are the foundation of deep learning and are used in various applications, including image and speech recognition. The video discusses how neural networks are 'embarrassingly parallel,' making them highly suitable for processing with GPUs.

πŸ’‘Deep Learning

Deep learning is a subset of machine learning that uses neural networks with many layers to learn complex patterns in large amounts of data. The video script explains that deep learning heavily utilizes GPUs due to the parallel nature of the computations involved in training neural networks.

πŸ’‘Convolution Operation

The convolution operation is a key process in neural networks, particularly in convolutional neural networks (CNNs), where it is used to apply a filter to an input image to produce an output feature map. The script uses an animation to illustrate how this operation can be performed in parallel on a GPU, highlighting the efficiency gains possible with parallel processing.

πŸ’‘NVIDIA

NVIDIA is a technology company renowned for its design and manufacturing of GPUs. In the video, NVIDIA is credited with creating CUDA, which is a significant development in the field of GPU computing. The company's vision and work in GPU computing have positioned it as a leader in the industry, especially in the area of deep learning.

πŸ’‘PyTorch

PyTorch is an open-source machine learning library based on the Torch library, used for applications such as computer vision and natural language processing. The script mentions PyTorch as a framework that integrates seamlessly with CUDA, allowing developers to leverage the power of NVIDIA GPUs for accelerated computation in neural network programming.

πŸ’‘GPGPU (General-Purpose Computing on Graphics Processing Units)

GPGPU refers to the use of GPUs for computations that are not directly related to graphics processing. The video discusses how the advent of CUDA and the increasing capability of GPUs have led to a new programming model where GPUs are used for a wide range of scientific and computational tasks beyond their traditional role in graphics rendering.

Highlights

Introduction to CUDA and its role in neural network programming with PyTorch.

Explanation of GPUs as processors specialized in handling parallel computations, contrasting with CPUs designed for general computations.

The concept of parallel computing and its suitability for tasks that can be broken down into independent, simultaneous computations.

The advantage of GPUs with thousands of cores over CPUs with fewer cores for parallel tasks.

Neural networks are described as 'embarrassingly parallel', making them ideal for GPU acceleration.

Illustration of the convolution operation in deep learning as an example of a parallelizable task.

The history and development of CUDA by NVIDIA as a software platform for GPU computing.

Necessity of an NVIDIA GPU to utilize CUDA and its free availability for developers.

Integration of CUDA within PyTorch for seamless GPU utilization without direct API usage.

Demonstration of how to move tensors to GPU using PyTorch for accelerated computations.

Discussion on the potential bottlenecks and performance costs associated with moving data between CPU and GPU.

The evolution of GPUs from primarily graphics tasks to a broader range of parallel tasks including deep learning.

NVIDIA's pioneering role in general-purpose GPU computing and the establishment of CUDA a decade ago.

The layered structure of GPU computing, from hardware to CUDA software, libraries, and frameworks like PyTorch.

The strategic importance of understanding the full stack in computer science for effective GPU programming.

The significance of computer and computational advancements in scientific research and potential breakthroughs.

Invitation to visit the blog for more information and mention of exclusive perks on the deep lizard hotline.

Transcripts

play00:00

welcome back to the series on neural

play00:03

network programming with PI George in

play00:05

this video we're going to introduce CUDA

play00:07

at a high level the goal of this post is

play00:09

to help beginners understand what CUDA

play00:12

is and how it fits in with pi Jorge and

play00:14

more importantly why we even use GPUs in

play00:17

neural network programming in the first

play00:19

place without further ado let's get

play00:22

started to understand CUDA we need to

play00:32

have a working knowledge of graphics

play00:34

processing units or GPUs a GPU is a

play00:38

processor that is good at handling

play00:40

specialized computations this is in

play00:42

contrast to a central processing unit or

play00:45

CPU which is a processor that is good at

play00:48

handling general computations CPUs are

play00:51

the processors that power most of the

play00:53

typical computations on our electronic

play00:55

devices a GPU can be much faster at

play00:59

computing than a CPU however this is not

play01:01

always the case the speed of a GPU

play01:04

relative to a CPU depends on the type of

play01:07

computation being performed the type of

play01:09

computation most suitable for GPU is a

play01:12

computation that can be done in parallel

play01:15

this brings us to parallel computing

play01:18

parallel computing is a type of

play01:20

computation whereby a particular

play01:22

computation is broken into independent

play01:25

smaller computations that can be carried

play01:28

out simultaneously the resulting

play01:30

computations are then recombined or

play01:32

synchronized to form the result of the

play01:35

original larger computation the number

play01:37

of tasks that a larger computation can

play01:39

be broken into depends on the number of

play01:42

cores contained on a particular piece of

play01:44

hardware cores are the units that

play01:46

actually do the computation within a

play01:49

given processor and CPUs typically have

play01:51

four a or 16 cores while GPUs have

play01:55

potentially thousands of cores there are

play01:58

other technical specifications that

play02:00

matter but this description is meant to

play02:02

drive the general idea with this working

play02:04

knowledge we can conclude that parallel

play02:06

computing is done using GPUs we can also

play02:10

conclude that tasks which are best

play02:12

suited to be

play02:13

of using a GPU our tasks that can be

play02:15

done in parallel if a computation can be

play02:18

done in parallel we can accelerate our

play02:20

computation using parallel programming

play02:23

approaches and GPUs let's turn our

play02:26

attention now to neural networks and see

play02:28

why GPUs are so heavily used in deep

play02:31

learning we have just seen that GPUs are

play02:33

will suited for parallel computing and

play02:35

this fact about GPUs is why deep

play02:37

learning uses them neural networks are

play02:39

embarrassingly parallel seriously in

play02:44

parallel computing an embarrassingly

play02:46

parallel task is a problem where little

play02:49

to no effort is needed to break the task

play02:51

down into an independent set of smaller

play02:53

tasks neural networks are embarrassingly

play02:56

parallel and GPUs typically have 3000

play03:00

like high-end GPUs have 3000 cores that

play03:02

can run computations in parallel many of

play03:05

the computations we do in neural

play03:06

networks can indeed be easily broken

play03:09

into smaller computations that are

play03:11

independent with respect to one another

play03:13

so it's the nature of computations used

play03:15

in neural networks that makes GPUs so

play03:18

useful in deep learning let's look at an

play03:20

example computation that's often used in

play03:23

deep learning the convolution operation

play03:24

this animation showcases the convolution

play03:27

process without numbers we have an input

play03:30

channel in blue on the bottom a

play03:32

convolutional filter shaded on top of

play03:34

the input channel that is sliding across

play03:36

the input channel and a green output

play03:39

channel for each position of the

play03:41

convolutional filter on top of the input

play03:43

channel there's a corresponding green

play03:45

region on the output channel this is the

play03:48

output of the convolution operation at

play03:50

each point in the animation these

play03:52

computations are happening sequentially

play03:54

one after the other however each

play03:56

computation is independent from the

play03:59

others this means that none of the

play04:01

computations depend on the results of

play04:03

any of the other computations as a

play04:06

result all of these independent

play04:07

computations can happen in parallel on a

play04:10

GPU and the overall output channel can

play04:13

then be produced after all of the

play04:15

computations have been completed this

play04:17

allows us to see that the convolution

play04:19

operation can be accelerated using a

play04:22

parallel programming approach and a GPU

play04:25

this is where kou

play04:27

comes into play when invidious GPU

play04:29

computing approach pioneer was the

play04:31

entire stack thinking from architecture

play04:33

to processor two systems system software

play04:35

api's libraries and application solvers

play04:38

we optimized across the entire stack one

play04:40

domain at a time one domain at a time

play04:42

and it is incredibly hard working that's

play04:44

one the reasons why staking us almost

play04:45

ten years nvidia is a technology company

play04:47

that designs GPUs and they have created

play04:50

CUDA as a software platform that pairs

play04:53

with their GPU hardware making it easier

play04:55

for developers to build software that

play04:57

accelerates computations using the

play04:59

parallel processing power of NVIDIA GPUs

play05:03

and NVIDIA GPU is the hardware that

play05:05

enables parallel computations while CUDA

play05:08

is the software layer that provides an

play05:11

API for developers developers developers

play05:14

developers developers developers

play05:16

developers developers developers

play05:19

developers developers

play05:28

as a result you might have guessed that

play05:31

an NVIDIA GPU is required to use CUDA

play05:34

once you have an NVIDIA GPU CUDA can be

play05:37

downloaded and installed from Nvidia's

play05:39

website for free developers use CUDA by

play05:42

downloading the CUDA toolkit in with the

play05:45

toolkit come specialized libraries like

play05:47

kudi and in the CUDA deep learning

play05:50

neural network library the stack GPU

play05:53

computing basically works in several

play05:55

ways the first step of course is to

play05:56

build an amazing GPU that's the first

play05:58

step the first type is building the

play05:59

amazing GPU the second step is to create

play06:01

the libraries for that domain the system

play06:04

software the system's architecture the

play06:06

api's and the libraries accelerated

play06:08

libraries for that domain and in the

play06:10

case of high-performance computing it's

play06:11

linear algebra as FFTs it's all kinds of

play06:13

different ups of libraries and we have

play06:14

all the libraries created and now we

play06:15

deep learning KU DNN and with inference

play06:17

tensor RT the libraries are in place the

play06:20

third step is to work with all of the

play06:21

application developers the solvers

play06:22

technical teams work hand-in-hand to

play06:24

accelerate to refactor their algorithms

play06:26

of their application and run it on our

play06:28

libraries with pi torch cuda comes baked

play06:30

in from the start there are no

play06:32

additional downloads required all we

play06:35

need is to have a supported NVIDIA GPU

play06:37

and we can leverage CUDA using PI torch

play06:40

we don't need to know how to use the

play06:42

CUDA API directly now if we want it to

play06:44

work on the PI torch core development

play06:46

team or right PI torch extensions it

play06:48

would definitely be useful to know how

play06:50

to use CUDA directly much of pi torch is

play06:53

written in Python however at bottleneck

play06:55

points PI tortes drops into C C++ and

play06:59

CUDA to speed up processing and get that

play07:02

performance boost we fight it in various

play07:05

ways one of the simplest ways is we just

play07:07

move all of our functions to succeed C

play07:10

or C++ that are actually important it's

play07:12

a subtle trade-off because as use of Pi

play07:14

torch itself you want to make sure it's

play07:16

very easy to debug and extend while

play07:18

you're working with the day-to-day but

play07:20

if you want performance then the biggest

play07:23

hotspots cannot be in Python so the

play07:26

reason we went down python like instead

play07:28

of using c++ directly why we went to use

play07:31

python is because python is the most

play07:32

popular data science language but we

play07:34

have to make these constant trade-offs

play07:36

and fight Python all the time I'm in a

play07:38

Jupiter notebook now and I want to show

play07:40

you how to use

play07:41

with pi torch taking advantage of CUDA

play07:43

is extremely easy with pi torch if we

play07:45

want a particular computation to be

play07:47

performed on the GPU we can instruct PI

play07:50

torch to do so by calling the CUDA

play07:52

function on our data structures suppose

play07:54

we have the following code we assign T

play07:57

to be equal to a new torch dot tensor

play08:00

we'll learn more about this in future

play08:02

videos for now let's just focus on the

play08:04

tensor output so we see the tensor

play08:07

output we have a tensor with three

play08:09

elements the numbers one two and three

play08:11

the tensor object created in this way is

play08:13

on the CPU by default as a result any

play08:16

operations that we do using this tensor

play08:19

object will be carried out on the CPU

play08:21

now if we want to move this tensor onto

play08:24

the GPU we just write T CUDA calling the

play08:28

CUDA function on a tensor where it turns

play08:30

the same tensor but on the GPU so after

play08:33

running this code and we look at the

play08:35

tensor output we have the same tensor

play08:37

with three elements one two and three

play08:40

but we also have a device specified and

play08:42

this is what happens whenever the device

play08:44

is not the CPU we actually get the value

play08:47

in the output so we can see that our

play08:49

device is cuda zero the zero stands for

play08:52

the first index and the reason for this

play08:55

is that pi torch supports multiple GPUs

play08:57

so if you had multiple GPUs you could

play09:00

put this tensor on a particular GPU this

play09:03

ability makes PI quartz very versatile

play09:06

because computations can be selectively

play09:08

carried out either on the CPU or on the

play09:11

GPU with that being said I want to talk

play09:13

to you about a looming question we said

play09:16

that we can selectively run our

play09:17

computations on the GPU or on the CPU

play09:21

but why not just run every computation

play09:23

on the GPU is it a GPU faster than a CPU

play09:27

the answer is that a GPU is only faster

play09:31

for particular specialized tasks one

play09:34

issue that we can run into is

play09:36

bottlenecks that slow our performance

play09:38

for example moving data from the CPU to

play09:41

the GPU is costly so when we do this the

play09:45

overall performance might be slower if

play09:47

the computation task is a simple one

play09:49

moving relatively small computational

play09:52

tasks to the GPU won't speed us up very

play09:54

much and may indeed slow us down

play09:56

remember the GPU works well for tasks

play09:59

that can be broken into many smaller

play10:01

tasks and if the compute task is already

play10:04

small we won't have much to gain by

play10:06

breaking it up and moving it to the GPU

play10:08

for this reason it's often acceptable to

play10:12

simply use a CPU especially when just

play10:15

starting out and as we tackle larger

play10:17

more complicated problems we can begin

play10:19

using the GPU more heavily in the

play10:22

beginning the main tests that were

play10:23

accelerated using GPUs or computer

play10:26

graphics tasks hence the name graphics

play10:29

processing unit but in recent years many

play10:31

more varieties of parallel tasks have

play10:33

emerged one such task as we have seen is

play10:36

the task of training neural networks for

play10:39

deep learning deep learning along with

play10:42

many other scientific computing tasks

play10:44

that use parallel programming techniques

play10:45

are leading to a new type of programming

play10:47

model called GP GPU or

play10:50

general-purpose GPU computing NVIDIA has

play10:54

been a pioneer in this space Nvidia CEO

play10:57

Jensen Wong has envisioned GPU computing

play11:00

very early on which is why Kudo was

play11:02

created nearly 10 years ago even though

play11:05

cuda has been around for a long time

play11:07

it's just now beginning to really take

play11:10

flight and invidious work on CUDA up

play11:12

until now is why Nvidia is leading the

play11:15

way in terms of GPU computing for deep

play11:18

learning when we hear Jensen talk about

play11:20

the GPU computing stack he is referring

play11:22

to the GPU as the hardware on the bottom

play11:25

cuda as the software architecture on the

play11:28

top of the GPU and finally libraries

play11:31

like KU DN in on top of cuda this GPU

play11:35

computing stack is what supports the

play11:37

general-purpose computing capabilities

play11:39

on a chip that is otherwise very

play11:41

specialized we often see stacks like

play11:44

this in computer science as technology

play11:46

is built in layers sitting on top of

play11:49

CUDA and ku D and n in this stack is PI

play11:52

torch which is the framework we'll be

play11:53

working with that ultimately supports

play11:55

applications on top the paper I'm

play11:58

showing here takes a deep dive into GPU

play12:00

programming and CUDA but it goes much

play12:02

deeper than we need we will be working

play12:04

near the top of the

play12:05

stack here with pie George however it's

play12:08

beneficial to have a bird's-eye view of

play12:10

just where we're operating within the

play12:12

overall stack we are ready now to jump

play12:14

in with section 2 of this neural network

play12:16

programming series which is all about

play12:19

tensors remember to check the blog for

play12:21

this video on deep lizard calm and don't

play12:23

forget to check out the deep lizard

play12:25

hotline for exclusive perks and rewards

play12:27

thanks for watching and supporting

play12:28

collective intelligence I'll see you in

play12:31

the next one computing is the most

play12:33

important invention of humanity it is

play12:36

the single most important tool that we

play12:39

have ever created over the last 25 years

play12:42

the computer has advanced in performance

play12:44

100 thousand times scientists and

play12:47

researchers are at the brink of

play12:48

discovering solutions for precision

play12:51

medicine they're at the brink of being

play12:53

able to solve weather prediction and

play12:54

understanding climate we're at the brink

play12:56

of being able to discover the next

play12:58

groundbreaking material that's light and

play12:59

strong or new ways of store energy we're

play13:02

at the brink of discovering away from

play13:04

machines to operate themselves we're at

play13:06

the brink of discovering artificial

play13:08

intelligence

play13:08

[Music]

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
CUDAGPUNeural NetworksParallel ComputingDeep LearningNVIDIAProgrammingPerformanceTech EducationData Science