CPU vs GPU (What's the Difference?) - Computerphile

What does a GPU do differently to a CPU and why don't we use them for everything? First of a series from Jem Davies, VP of Technology at ARM.
Floating Point Numbers: • Floating Point Numbers...
Why Computers Use Binary: • Why Use Binary? - Comp...
How Bitcoin Works: • How Bitcoin Works - Co...
Triangles & Pixels (Graphics Playlist): • Triangles and Pixels
/ computerphile
/ computer_phile
This video was filmed and edited by Sean Riley.
Computer Science at the University of Nottingham: bit.ly/nottscomputer
Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

Пікірлер: 539

  • @tomasotto8980
    @tomasotto89804 жыл бұрын

    CPU - 10 Ph.D guys sitting in a room trying to solve one super hard problem. GPU - 1000 preschoolers drawing between lines.

  • @evenprime1658

    @evenprime1658

    3 жыл бұрын

    end of the day GPU's are taking over tho .. they use gpu for computations now days anyways

  • @DS-Pakaemon

    @DS-Pakaemon

    3 жыл бұрын

    @@evenprime1658 Nothing is taking over anything. GPU is also a CPU, CPU is also a GPU. Now let's enjoy TV.

  • @ber2996

    @ber2996

    3 жыл бұрын

    Explained in the simplest form

  • @ekremdincel1505

    @ekremdincel1505

    3 жыл бұрын

    @@DS-Pakaemon isn't GPU is a subset of CPU?

  • @mistakenmeme

    @mistakenmeme

    3 жыл бұрын

    @@DS-Pakaemon they are both PUs.

  • @scheimong
    @scheimong7 жыл бұрын

    One thing worth mentioning: GPUs actually do 4 dimensional matrix calculations rather than 3, because with 3 dimensions, Rotation and magnification require matrix multiplication while translation requires matrix addition. By adding an arbitrary dimension, the GPU is able to unify all three key transformations under a single multiplicative architecture.

  • @artofgameplaying

    @artofgameplaying

    7 жыл бұрын

    I was scrolling down just hoping somebody would mention this!

  • @abhishekgy38

    @abhishekgy38

    4 жыл бұрын

    Yes... affine transformations

  • @prezadent1

    @prezadent1

    3 жыл бұрын

    @@abhishekgy38 homogeneous transformations, not affine

  • @grn1

    @grn1

    3 жыл бұрын

    That's actually talked about in the one of the Triangles and Pixels videos (playlist linked in description).

  • @Cccoast

    @Cccoast

    2 жыл бұрын

    Yes, he mentioned this with transparency.

  • @magikarpusedsplash8881
    @magikarpusedsplash88817 жыл бұрын

    "you've never seen a triangle that isn't flat." I just came from the non-euclidean geometry video.

  • @Street_Cyberman

    @Street_Cyberman

    5 жыл бұрын

    A triangle made of straight lines...

  • @pablo_brianese

    @pablo_brianese

    5 жыл бұрын

    @@Street_Cyberman Triangles in non-euclidean geometry are made of straight lines.

  • @IronicHavoc

    @IronicHavoc

    4 жыл бұрын

    You've still only seen a flat representation.

  • @idkidk9204

    @idkidk9204

    4 жыл бұрын

    Lol

  • @Xomsabre

    @Xomsabre

    3 жыл бұрын

    @@IronicHavoc Nah, it was drawn on an anti-sphere, so it wasn't flat... it was curved... and its angles were all 90 degrees.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro91046 жыл бұрын

    Here’s a key acronym to remember about GPUs: “SIMD”. That‘s “Single-Instruction, Multiple-Data”. It has to do with the fact that a GPU can operate on a hundred or a thousand vertices or pixels at once in parallel, but it has to perform exactly the same calculation on all of them. Whereas a single CPU core can be described as “SISD” -- “Single-Instruction, Single-Data”. With multiple CPU cores, you get “MIMD” -- “Multiple-Instruction, Multiple-Data”, where each instruction sequence can be doing entirely different things to different data. Or in other words, multithreading. So even with all their massive parallelism, GPUs are still effectively single-threaded.

  • @tazogochitashvili6514

    @tazogochitashvili6514

    4 жыл бұрын

    Don't modern CPUs have SIMD instructions like AVX though?

  • @lawrencedoliveiro9104

    @lawrencedoliveiro9104

    4 жыл бұрын

    Yes, but the vectors that your typical present-day CPU operates on are short ones, with something like 4 or 8 elements at most.

  • @hathawayamato

    @hathawayamato

    2 жыл бұрын

    Thank you, best explanation I've seen

  • @solaokusanya955

    @solaokusanya955

    Жыл бұрын

    I am an autodidactic ,and I beleive in the "first principle" of things... I want to understand this Intuitively... Is there any video that can properly put into perspective all these that you say in such a way I little child can understand?

  • @solaokusanya955

    @solaokusanya955

    Жыл бұрын

    @@lawrencedoliveiro9104 I am an autodidactic ,and I beleive in the "first principle" of things... I want to understand this Intuitively... Is there any video that can properly put into perspective all these that you say in such a way I little child can understand?.... How do these vectors work? How are they represented, how can all these not look abstract? Human beings made these things so if someone has done it, then it's no more abstract....I want to Intuitively understand all these... It should have to be school of the 4 walls of anywhere, I beleive if a man seeks he would find...I want to know these things...thus my everyday search of all these topics... I just Intuitively understood how binary numbers can be used to represent any other number, but how does it translate to videos? Audios and everything we see digitally?..how does just o and 1 define everything we feel that is completely tangential to 1 and 0?

  • @matsv201
    @matsv2018 жыл бұрын

    Hi missed one of the most important things. Why they are more efficient. Running GPU load in parallell don´t make it more power efficient. It also don´t use less die surface. Whats is done is that the GPU it just have one very narrow sett of instruction that is the same width and same length regardless. Typically it can be a 128 bit by 128 bit instruktion that can run on 2x64 bit, 4x32 bit or 8x16 bit. And it can only run a very limited number of instruction. Also, there is no branch, and no branch prediction. This cuts away a load of piples. In a GPU every pipeline does say 128 bit of instruction for every clock regardless of instruction. If you only need 16 by 16 bit of instruction, though luck, still have to fill up the whole 128 by 128 bit register. Also, a CPU got a FPU and a IPU and logic, and SIMD pipes. And every pipe have duplicates for bransch prediction. Some have 4 way branch prediction, so they have 4 pipelines for one instruction. So in a normal CPU you might have 4 pipes for integer, 4 for floating, 4 for SIMD and 4 for general logic (often combined with integer). Total of 16 pipes just to calculate one value. Why.. well to get the speed up. .. the clock speed that is and keep branch prediction errors down. A GPU just does one type of pipeline (in the older days there was two different, one for transform and one for rendering, but in most modern one they are integrated in the same pipeline). Also, there is one instruction for every 128 or 256 set of data. That is if you uses 32 bit on 128 bit pipe you get a 1:4 instruction reduction... because most data uses the same instruction. Typical 128 bit data can be a HDR rendering scen where two colors are mixed RGBA mixed with a other RGBA. Insteed of running first the R, then the G and then the B and so on. They just put the whole load in to the pipe and calculate all the data with the same instruction. Almost everything in graphics come in set of four. If there is a polygon, well triangle. It have 3 corners, and then a additional value for the polygon. So it still have 4 values. Some Graphics load use half precision. Then you can do two pixel or two polygon calculation at the same time in the same pipe. Actually, CPU have had that capability since Pentium 3. But its still just have one output per core. (even if its a 128bit simd output, most modern CPU even have 256 bit simd) The other part is the missing of branch .This remove a ton of problem for the chip designer. Firstly you don´t need any branch prediction. Secondly you don´t need and branching instructions and pipes. Removing the whole logic pipe. Thow you can still make branch like calculation multiplying with a matrix that gives a very set 0 or 1 value in the end matrix. But the GPU can never make any decision about it. This is also the main drawback with the GPU. it will continually calculate the same set of work orders on and on and it will only calculate set given work order. It can´t make work order. This makes the load very predictable. The GPU know what it will do several 10 000 clocks in for hand. This helps parallellism very much. But it can´t make a instruction. So the CPU still have to make a instruction for the GPU. But the load of the CPU can be very low. For example the CPU kan tell the GPU to render a trea of data. The trea in turn is a given list of objects, that have a given list of subobjekt, that have a given list of vertexes, that have a given list of textures and so on. This way the CPU can give the GPU very limited amount of information to make quite a lot of work. This have not always been the case. GPU prior to 2000 have to have specific list of textures and vertexes directly from the CPU, giving the CPU quite a lot of work load. The problem nowdays is that the game dev want the word to be "living" They there for want as little amount of data to be pre fixed to a set trea of object. There for the CPU can be running in feeding the GPU with 1000 and 1000 of objects for every frame. In DX11 this is a problem, because in DX11 just one CPU core can do the GPU feeding. Someone just never thought this would be a problem. This have been in DX since the first version. Finally in DX12 it will be updated.

  • @Friedeggonheadchan

    @Friedeggonheadchan

    8 жыл бұрын

    +matsv201 Modern GPUs do have branching, albeit very primitive, but even that's getting better due to AMDs non-synchronized shaders which allows for much better efficiency and foregoing some inherent weaknesses of SIMD. I've read some modern architectures even considering adopting branch prediction quite soon.

  • @QuantumFluxable

    @QuantumFluxable

    8 жыл бұрын

    +matsv201 thanks for putting that much effort into a youtube comments section :O still, do you think that much detail would've made a general explanation of GPU vs. CPU easier to understand? :D

  • @matsv201

    @matsv201

    8 жыл бұрын

    QuantumFluxable Well. i had little to do.. but no problem, stop reading when you get bored.

  • @Henrix1998

    @Henrix1998

    8 жыл бұрын

    You wrote so much that I assume you are right

  • @matsv201

    @matsv201

    8 жыл бұрын

    Henrix98 Yea that tactics i usualy go for :)... actually im more likely to be wrong, the more i write.... on the other side... people that dont understand how things work usually over simplyfies them... Is really anying when someone force you to tell something complicated in a simple way

  • @f4z0
    @f4z08 жыл бұрын

    woobly computerphile camera XDDD nice one hahaha.

  • @U014B

    @U014B

    8 жыл бұрын

    Wibbly-wobbly camery-wamery

  • @legostarwarsrulez

    @legostarwarsrulez

    8 жыл бұрын

    Stuff

  • @U014B

    @U014B

    8 жыл бұрын

    shut your face! Don't forget Things.

  • @oxey_

    @oxey_

    7 жыл бұрын

    Yes xD

  • @sakracliche

    @sakracliche

    3 жыл бұрын

    Feels like watching the office

  • @MacBeach
    @MacBeach8 жыл бұрын

    This is one of the better simplified explanations of 3D graphics I've seen. Particularly the part about why triangles are used.

  • @michaelgeorgoulopoulos8678
    @michaelgeorgoulopoulos86788 жыл бұрын

    2:45 - Nearly bringing up the 'w' coordinate and quick fix by baptizing it "transparency" :P

  • @HaniiPuppy
    @HaniiPuppy8 жыл бұрын

    One of the features of OS X a few versions back was the ability to off-load repetitive, non-graphical tasks to the GPU rather than the CPU to operate faster.

  • @TheHrabik
    @TheHrabik3 жыл бұрын

    Thank you so much for the content and the people on the screen for their willingness to share knowledge! Bravo good sir, it takes a special kind of talent to explain something complicated this well and understandably. Exactly the kind of people you'd want to have tea/coffee/beer with!

  • @73h73373r357
    @73h73373r3577 жыл бұрын

    We've learned all sorts of things about CPUs. Some more videos on GPUs would be really nice.

  • @robfielding8566
    @robfielding85666 жыл бұрын

    it's amazing that he didn't explain SIMD or Vector computing, because that's exactly what the difference is - and it's the real answer to why CPU and GPU are different. instead of looping over an expression of 256 array elements, you create huge registers that are a gang of 256 floating point elements. a CPU would have 256 threads progressing at different rates on each array element. a GPU would force all 256 items to be on the same instruction because it's working on these huge registers. this is why you can't run all CPU algorithms efficiently on a GPU. ie: for each i in [0,256]: c[i] = a[i] * b[i] ... is CPU thinking. Each thread progresses at its own rate. GPU thinking is: float32_times256 c,b,a; c = b * a; .... where c=b*a is one instruction, with three huge operands.

  • @theguyfromyesterday325

    @theguyfromyesterday325

    Жыл бұрын

    I understand all of that

  • @jajssblue

    @jajssblue

    Жыл бұрын

    Holy Cow! I've been trying to understand the fundamental difference by googling or watching content like this video and your single comment taught me more than anything. Thank you!

  • @suntzu1409

    @suntzu1409

    Жыл бұрын

    Modern compilers can achieve this on CPUs as well. This works like this only for independent operations

  • @mauridocarmo7167

    @mauridocarmo7167

    7 ай бұрын

    Awesome

  • @smaklilu90
    @smaklilu908 жыл бұрын

    It is extremely easy to complain about a tiny glich in the game while sitting in front of a console without any clue how everything works. When u think of about the math involved in making it, it is mind blowing what a human mind is capable of.

  • @MelBrooksKA

    @MelBrooksKA

    8 жыл бұрын

    +sami aklilu When you think about thinking about the human mind, or any animal brain for that matter, your mind should be blown at the fact that you can think about that...

  • @lort6022

    @lort6022

    7 жыл бұрын

    it is extremely easy to fix issues before release, but they rush it. creating a game is not hard. creating a game engine is very hard, but often game dev's don't make the engine anyway and 99.9% of the bugs are not because of the engine, but made by level designers..

  • @jerseyjacket100
    @jerseyjacket1008 жыл бұрын

    I've been always curious of this, thanks for a video to explain it!

  • @Slarti
    @Slarti6 жыл бұрын

    Really nice simple explanation of a complicated area!

  • @jameswhyte1340
    @jameswhyte13408 жыл бұрын

    He is excellent at explaining these things. Please have him on more.

  • @paulthy1496
    @paulthy14968 жыл бұрын

    wow, so well explained, as simple as possible but no simpler. Its such a big area i cant believe he explained it so compactly and clearly. Hi is a real genus.

  • @FoxDren
    @FoxDren8 жыл бұрын

    am I the only one who finds the way he says pixel weird, the stress seems to be in completely the wrong place

  • @jdgrahamo

    @jdgrahamo

    8 жыл бұрын

    +Ascdren Not if you consider what it stands for.

  • @theinsanitypenguin

    @theinsanitypenguin

    8 жыл бұрын

    +Ascdren he's saying it as you would if you say it as picture element pic*e*l

  • @allend433

    @allend433

    8 жыл бұрын

    his accent seems of England. what language are we speaking again?

  • @ann.samuel

    @ann.samuel

    4 жыл бұрын

    pick-SELL 😂

  • @rjfaber1991
    @rjfaber19918 жыл бұрын

    Watching this video on one monitor, seeing my GTX970 busy folding away on the other monitor. How appropriate...

  • @rjfaber1991

    @rjfaber1991

    8 жыл бұрын

    B Snacks Not sure VRAM does a lot for folding, but if you wish...

  • @MelBrooksKA

    @MelBrooksKA

    8 жыл бұрын

    +Robert Faber Thank you for mentioning folding, I learned something new today

  • @ck88777

    @ck88777

    6 жыл бұрын

    Folding? as in protein folding?

  • @EnglishTeacherBerlin
    @EnglishTeacherBerlin7 жыл бұрын

    I adore his crystal-clear step by step explanations. Great vid!

  • @MrDajdawg
    @MrDajdawg8 жыл бұрын

    An entire episode with no explanations on how stuff actually works. Well done.

  • @vicscalletti6427

    @vicscalletti6427

    5 жыл бұрын

    MrDajdawg , yea seriously. This video was super annoying.

  • @Awgolas

    @Awgolas

    4 жыл бұрын

    What did you think this video was missing? I thought he explained how a GPU in general worked pretty well, it's essentially just a linear algebra machine.

  • @minepro1206

    @minepro1206

    4 жыл бұрын

    It wasn't easy for my professor to explain it during a whole semester, why do you think it would be easy explaining it in a 6 minute video?

  • @fredweasleylives00
    @fredweasleylives008 жыл бұрын

    very well explained, thanks for the video!

  • @richmahogany1710
    @richmahogany17108 жыл бұрын

    You should have asked him exactly what role a CPU plays vs. a GPU in something like a game. What exactly does the GPU need from the CPU, etc.

  • @Roxor128

    @Roxor128

    8 жыл бұрын

    +Ryan Couture In the case of a game, the CPU runs the game's logic (the rules of the game), input handling, sound mixing and AI. The GPU gets tasked with rendering the visuals and a good chunk of the physics. What the GPU needs to actually draw the scene tends to be sent to it by the CPU at load time, with the occasional update as objects fall in and out of relevance (eg. unloading the model for an enemy where all instances of it in the level are dead, loading in the projectiles for a new weapon the player just picked up). Game physics is a good candidate for the GPU because it tends to have lots of independent entities which need to be processed. Let's say you set off a trap with a bomb hidden in a pile of boxes. It's going to result in pieces of debris flying everywhere. All those pieces of debris need the equations of Newtonian mechanics crunched for them to figure out where they end up in each frame. The GPU can crunch a thousand such pieces at once and update the list of where everything which needs to be drawn is located and oriented. Then once it's done with the physics, it can tell the CPU "Okay, I'm done with the physics. The results are in this block of memory if you need them for something else." then the CPU can tell it to start drawing while it does something else.

  • @JoseOrtiz-zy4ew

    @JoseOrtiz-zy4ew

    8 жыл бұрын

    +Roxor128 Simply amazing.

  • @Maver1ck101

    @Maver1ck101

    6 жыл бұрын

    @Roxor128: That's a brilliant explanation. Thanks.

  • @Reth_Hard

    @Reth_Hard

    6 жыл бұрын

    Would it be theoretically possible to run Windows using only a GPU? (With no CPU) Assuming you have a modified version of Windows & Motherboard for it to work...?

  • @casperes0912

    @casperes0912

    6 жыл бұрын

    Frank Einstein Depends a bit how the specific architecture is made. There may be essential logic missing on some designs since it’s not required for normal gpu workloads. And it’d not exactly be a basic software mod. You’d need to compile to an entirely different instruction set. I know no compiler that could even do that. Intel’s Xeon Phi can run a system though and it works very much like a gpu in many ways.

  • @DRAVIASTUDIO
    @DRAVIASTUDIO3 жыл бұрын

    Such a pleasure to watch , wonderfull thanks !

  • @Verrisin
    @Verrisin6 жыл бұрын

    When you tell a joke to an engineer and he takes it seriously and fixes it instead. XDXD - 6:16

  • @MystycCheez
    @MystycCheez8 жыл бұрын

    Can you guys eventually do a video on how a cpu works? thanks

  • @enigma647

    @enigma647

    8 жыл бұрын

    +Mystyc Cheez cpu is easy gpu is real piece of cake

  • @glitchquitch

    @glitchquitch

    8 жыл бұрын

    +Mystyc Cheez There is a book called "But how do it know?". Highly recommended.

  • @WickedMuis

    @WickedMuis

    8 жыл бұрын

    +Mystyc Cheez If you're REALLY interested in knowing how it works read something like "Computer Systems Architecture; A Networking Approach" by Rob Williams, published by Addison Wesley

  • @RSP13

    @RSP13

    8 жыл бұрын

    +Mystyc Cheez I suppose one can't explain extensive topics like this in 5 min with a satisfying deep of details. Even explaining how transistors work can be difficult to explain in such hurry.

  • @Edifier1221

    @Edifier1221

    8 жыл бұрын

    +Mystyc Cheez Buy "But how do it know" Explain how a CPU works, and you can buy "Logicly" to simulate the CPU

  • @wouldntyaliktono
    @wouldntyaliktono8 жыл бұрын

    Nicely done. I use nVidia GPUs to do huge matrix operations in statistical modeling to speed up model estimation. Bayesian MCMC isn't really practical on large scales without the parallelism offered by GPU computing.

  • @MichaelLazarski
    @MichaelLazarski8 жыл бұрын

    good video ! i hope there will be more detailed videos about gpus und cpus !

  • @TheStevenWhiting
    @TheStevenWhiting8 жыл бұрын

    Password cracking with a GPU is also faster than the CPU.

  • @Roxor128

    @Roxor128

    8 жыл бұрын

    +Steven Whiting That's because when you're running through billions of permutations of input passwords and trying to find which one matches your stolen hash, you have a situation where each run is independent, so can be easily converted to a parallel form. Chances are that with a typical high-end GPU you'd be calculating over 1000 hashes at once and if each core can do 200k per second, that's a total throughput of 200M per second.

  • @SirCutRy

    @SirCutRy

    8 жыл бұрын

    +Roxor128 Do you think we'll need something like MD5-256 in the future?

  • @Vulcapyro

    @Vulcapyro

    8 жыл бұрын

    +SirCutRy MD5 is effectively dead cryptographically. It's flawed in its design, not because its digest is too small.

  • @SirCutRy

    @SirCutRy

    8 жыл бұрын

    Vulcapyro What are the flaws? Isn't MD5 still used in password hashing?

  • @SirCutRy

    @SirCutRy

    8 жыл бұрын

    Zhiyuan Qi How can it be fixed? More scrambling?

  • @tarcal87
    @tarcal876 жыл бұрын

    Perfect, I just wished he had actually said that a GPU has lots of tiny processors (compute units) physically. Yes most people know this, but given how entry-level this explanation was (on purpose), the target audience might not know it. Very clear answer, I'm impressed :O

  • @DodaGarcia
    @DodaGarcia4 жыл бұрын

    I didn’t understand half of what he was talking about but I could listen to him all day.

  • @letsgoBrandon204
    @letsgoBrandon2048 жыл бұрын

    When you describe basically what the gpu is doing it really put into perspective how complicated modern graphics is.

  • @zegzezon5539
    @zegzezon55396 жыл бұрын

    *GPU:* Graphic objects can generally be broken into pieces and rendered in *parallel* at the machine level. *CPU:* Generally sequential by design to care of problems which have many *_dependencies_* which *cannot be solved in parallel* by their very nature. Ex. Seq1: *A = b + c;* Seq2: *D = A + E;* Seq3: *y = D - A;* Obviously, you have to do the thing in *sequence* in order to get the value of *y.* However, the *tasks* of *_relegating_* as to which problem (i.e. gaming or any other apps) during *execution time* is mainly a *function of the OS.* This is so as *Gaming Apps* is not *all* a *_graphic rendering_* task but also a combination of *logic, rules, and some AI.* Those are the reasons why you need *both.* Kinda like *_specialization_* of tasks.

  • @dannygjk
    @dannygjk6 жыл бұрын

    It really isn't necessary to use floating point operations but it is done with floating point operations because there is hardware that does the floating point operations very well so they are making use of that. An example to clarify what I mean is doing square roots. You can do square roots without using floating point ops you can just use integer calculations then at the end you just place the decimal point in the correct position.

  • @markwilliams5654
    @markwilliams56548 жыл бұрын

    thanks for adding your info so all humans can learn thanks again

  • @sanisidrocr
    @sanisidrocr8 жыл бұрын

    Nice shout out to Bitcoin , but for clarification purposes Bitcoin mining on GPUs is now obsolete and most of it is done of Specialty ASICs. Mining is so competitive that If you attempt to mine with a GPU or even older generation ASIC you will lose money unless you have access to free electricity. The general point of mentioning mining on GPUs is important though as hashing double rounds of SHA256 is much more efficient on a GPU than CPU, although ASIC's are far superior to both. For Mining - ASIC > FPGA > GPU > CPU

  • @TheKlaMike

    @TheKlaMike

    8 жыл бұрын

    +sanisidrocr ASIC is to GPU and GPU is to CPU.

  • @sanisidrocr

    @sanisidrocr

    8 жыл бұрын

    TheKlaMike ASIC's can be designed in any way and be less optimal than CPUs for mining if not designed for parallel throughput.

  • @GelebFlamebringer

    @GelebFlamebringer

    7 жыл бұрын

    what about quantum computer?

  • @yasinomidi7525

    @yasinomidi7525

    6 жыл бұрын

    sanisidrocr HAH! Little did they know what happens to GPU because of mining in 1 year

  • @wobblycogsyt
    @wobblycogsyt8 жыл бұрын

    I think a video on real time ray tracing would be interesting. There's a good chance that it'll be the future of graphics but it'll require different silicon to todays GPUs

  • @8mycereal

    @8mycereal

    2 жыл бұрын

    Damn you predicted the future

  • @nestorjologs4051

    @nestorjologs4051

    7 ай бұрын

    I agree, what you said from the past is now happening in the present.

  • @Croz89
    @Croz898 жыл бұрын

    I've been told that for computer modelling, GPU's aren't always a good solution. I've been told that for certain kinds of Finite Element Analysis, you can generally only calculate one step at a time, one node at a time, as the result of one node can affect the calculation required for all the other nodes it influences, and the same is true for those nodes at each time step. So these still need high speed CPU's to do the grunt work, as the task isn't easy to parallelize.

  • @forloop7713

    @forloop7713

    5 жыл бұрын

    I'm interested in this too

  • @gregorymalchuk272

    @gregorymalchuk272

    3 жыл бұрын

    Does anybody have any more information about this? I always wondered how they can parallelize finite difference and coupled sets of differential equations. Because the results of one computation are the input to the equations of the next element in the mesh.

  • @sooryanarayanan4273
    @sooryanarayanan42732 жыл бұрын

    thank you so much

  • @janhrobar782
    @janhrobar7827 жыл бұрын

    best explanation of gpu vs cpu I ever heard

  • @unvergebeneid
    @unvergebeneid8 жыл бұрын

    1:27 That's a suboptimal way of tessellating circles. All the triangles meeting in the center will increase the chance of visible artifacts occurring. (KZread smartass answer mitigation disclaimer: I know it's not a circle and I saw that the triangles don't meet. Leaving a smaller copy of the same polygon for the center doesn't solve the problem though, does it?)

  • @Computerphile

    @Computerphile

    8 жыл бұрын

    Must I put 'for illustration only' on every animation I do? :) >Sean

  • @unvergebeneid

    @unvergebeneid

    8 жыл бұрын

    ***** Alright, fair point. But it still gives people wrong ideas. I had to learn this the hard way. Would be nice if future generations of fools who tessellate their own polygons would be unknowingly lead to have a better intuition about this. But I guess it's just much easier to do it the way you did which, again, would be a fair point.

  • @borissman

    @borissman

    8 жыл бұрын

    +Penny Lane There is also a point where if you had to learn stuff the hard way, you probably would be the one teaching those who learned it the easy way. Not being a smarty-pats or anything.. just a bright side :)

  • @QuantumFluxable

    @QuantumFluxable

    8 жыл бұрын

    +Penny Lane Who on earth still tesselates their own polygons? Most 3D modeling programs either have support for N-gons or can clean up this kind of mess automatically.

  • @StereoBucket

    @StereoBucket

    8 жыл бұрын

    +Penny Lane Can you explain to me why? You got me curious and I want to know.And what would be a proper way of doing this?

  • @Criticofus
    @Criticofus8 жыл бұрын

    D-Wave made a quantum computer, get on it Computerphile. I am kind of super hyped right now.

  • @Chiken1
    @Chiken14 жыл бұрын

    When it comes to game development 3D in unity do you need a powerful gpu?

  • @Fux704
    @Fux7048 жыл бұрын

    Cool video.

  • @edgeeffect
    @edgeeffect8 жыл бұрын

    "wobbly Computerphile camera" (laughs) "can it fix my bad focussing?" ... my this is a self-deprecating episode isn't it? ;)

  • @heudevil
    @heudevil4 жыл бұрын

    you have just got a follower

  • @smacman68
    @smacman687 жыл бұрын

    I run very, very large AutoCAD files and they would take forever and a day to load. My supervisor has the exact same machine I do and he loads the same files in a fraction of the time. I asked him how and he said that he installed a graphics card. Just for displaying 2D images, the GPU makes all the difference. I got one and it is like magic.

  • @redsunrises8571
    @redsunrises85718 жыл бұрын

    can Computerphile do an episode on algorithmic art/music?

  • @prashanthb6521
    @prashanthb65214 жыл бұрын

    I am currently doing "high throughput computing" :)

  • @freecrac
    @freecrac6 жыл бұрын

    Most of the modern display devices provide a secondary display output for to use a second monitor. But how to display the content of the secondary linear framebuffer on the secondary monitor using a different resolution as the primary monitor for a selfmade bootmanager(no display driver loaded) with and without an UEFI-Bios?

  • @Pinefenario
    @Pinefenario3 ай бұрын

    “ That is coming”, prophetic words.

  • @BHFJohnny
    @BHFJohnny8 жыл бұрын

    Our professor on Star Clusters told us GPUs are far more effective in calculating clusters evolution. Since it is not possible to analytically derive the evolution for more than two bodies, it has to be done numerically. 'It's all just about data crunching', he said.

  • @michagrycki8272
    @michagrycki82728 жыл бұрын

    Please start adding subtitle !

  • @thevirginmarty9738
    @thevirginmarty97388 жыл бұрын

    I do 3D modelling recreationally and I hate working with triangles. I prefer quads because those types of polygons can be structured into bands. With those bands, a looping structure can select/manipulate multiple polygons at once. For example, imagine designing a human model. You can run bands of quads to form cylinder parts like arms, neck etc. From there, you can manipulate entire bands at once instead of going polygon after polygon.

  • @petereiso5415
    @petereiso54153 жыл бұрын

    In what situations are objects modelled? Would it only be in CAD situations ?

  • @TheGodlessGuitarist
    @TheGodlessGuitarist7 жыл бұрын

    Triangles can exist on curved surfaces. You can even have a triangle with 3 right angles when placed on the surface of a sphere.

  • @PhilDaw
    @PhilDaw8 жыл бұрын

    that feeling when you're explaining to people that it's a $1000 card that just draws virtual triangles. I guess they're pretty good at adding and subtracting floats and doubles, but the triangle drawing is where the action is.

  • @rikschaaf
    @rikschaaf8 жыл бұрын

    I'm using a Tesla GPU at my university for accelerating a certain physics simulation. Works quite well, I'm getting a speedup of around 10, compared to normal CPU processing.

  • @talideon
    @talideon8 жыл бұрын

    The spice must flow! (If you don't get the joke straight away, rewatch the video.)

  • @RustyTube

    @RustyTube

    8 жыл бұрын

    +Cíat Ó Gáibhtheacháin That was my first reaction, too. :-)

  • @darthkynreeve

    @darthkynreeve

    8 жыл бұрын

    Yes!!!

  • @AishaDracoGryph
    @AishaDracoGryph8 жыл бұрын

    You should tweak your audio and reduce the heavy bass more often, half of the videos on this channel want to blow my woofer.

  • @mansoormaxalam1102
    @mansoormaxalam11027 жыл бұрын

    Hii sir.. can you help me...... I have amd A10 R7 7800 processor and amd radeon 2 GB graphic card model HD6450..... Soo can you suggest me they both work together and give best performance or graphic card is useless with this processor.....

  • @DLCSpider
    @DLCSpider8 жыл бұрын

    2:30 Games actually don't move the camera around. Everything else gets rotated around the camera.

  • @MrSlowestD16

    @MrSlowestD16

    8 жыл бұрын

    +DLC Spider Well not only is it implementation dependent but that's completely inaccurate for the most part. In the vast majority of scenes, be them game or otherwise you make a scene description. Whether the camera moves coordinates or the scene moves coordinates is pretty much irrelevant to the end result, but moving MANY vertices of ALL objects in the scene takes a MUCH larger time than moving 1 point (the camera) in the scene and updating the POV vector (a second point). From there the culling and rendering happens the same as it would no matter what moved. Moving vertices is expensive, moving the camera is cheap, though either will net you a valid result.

  • @saminazehra456
    @saminazehra4567 жыл бұрын

    can u please explain what is the difference between computer machine and computer device??

  • @SproutyPottedPlant
    @SproutyPottedPlant8 жыл бұрын

    Computerphile seem to be on a boat?

  • @gummansgubbe6225
    @gummansgubbe62258 жыл бұрын

    For a VP of Technology at "ARM" this was an extremely low tech explanation. But then all of my extra parallel processing is done on a NVIDIA card. A CPU today has eight or more cores. I hope the rest of this series has some more meat to the bone. We are not morons out here.

  • @SerBallister

    @SerBallister

    6 жыл бұрын

    This is a layman audience, if you want an indepth technical discussion go to a developer forum.

  • @okboing
    @okboing3 жыл бұрын

    Recently I made the mistake of trying to produce an entire 3d graphics engine from scratch in pjs, all starting with the following function: var raster = function(x, y, z) { return [x/z, y/z] }; This function allows me to take any point (x, y, z) and map it to the screen. This is the most vital, core component of the entire program. I eventually added cameraPos to the function so I could move anywhere. But there was one fatal problem. I could not rotate anything. I attempted to produce a function that took in 4 vectors (newx, newy, newz,) and (x, y, z) to produce a new imaginary grid that treats newx, newy, newz like x y z and transforms the point. I then tried to produce a function that generates 3 of the vectors the previous function calls for based on pitch, yaw, and roll, but I have yet to get it working.

  • @mage1over137
    @mage1over1378 жыл бұрын

    They also use GPU 's in Lattice QCD calculations.

  • 6 жыл бұрын

    I thought that the triangles were flat only in euclidean space? as 2+2 is only 4 in decimal

  • @daidabus
    @daidabus8 жыл бұрын

    is't the big difference architecture between those (kinda forgot but in school they teach something like this ) and was named by architects who made it , i know one was cheap to make because he could not take and give information at same time( that should be cpu ) and gpu could do it but it was much more expensive to produce harvard and von neumann i think. and slower one is von neumann expensive one is Harvard

  • @mattsaderson3096
    @mattsaderson30964 жыл бұрын

    "you've never seen a triangle that isn't flat." mmm, what about Spherical triangle

  • @Amar-lv1yw

    @Amar-lv1yw

    4 жыл бұрын

    Spheres are usually being rendered smoothly. Nonetheless it consists of very tiny triangles which the processor smooths out

  • @TechyBen
    @TechyBen8 жыл бұрын

    "Specialist" versus "General" computing? PS, after watching the video, the parallel computing is also a lot more important in a GPU. :)

  • @kryler8252
    @kryler82528 жыл бұрын

    Cuda; the best thing for the advancement of Machine Learning Research ever.

  • @Kneedragon1962

    @Kneedragon1962

    8 жыл бұрын

    +Dylan Cannisi CUDA, the best thing for lots of things... It helps gamers, but it also helps high performance computing people. The stuff you need to model the Big Bang, is the same as what you need to play Quake at 8k and 200 fps.

  • @kryler8252

    @kryler8252

    8 жыл бұрын

    +Kneedragon1962 CUDA is a programming language API for C/C++, Fortran, etc. You wouldn't use it to program graphics. It stands for Compute Unified Device Architecture. It unlocks you the ability to to do mathematics on vectors and other small computations. I'm just saying what I use it for, it allows me to build complicated models, mostly SVM's, I wouldn't be able to do on a CPU because it would take to long.

  • @Kneedragon1962

    @Kneedragon1962

    8 жыл бұрын

    Dylan Cannisi CUDA is a language and a suite of tools that allow you to do programming on the video hardware, which is not usually accessible to the programmer for general purpose computing. It provides access to hardware that is not normally used this way or accessible to a general software programmer. And it provides some tools for very wide parrallelisation of code. Many programming languages support parallel programming, multiple threads for example, but they anticipate a fairly small number of threads. CUDA supports a whole different view of this. I was at TAFE in'95 when nVidia started talking about it, and the Linux people were starting to use WolfPack to do distributed processing. We have a blanket term for this stuff today, we call it cloud computing...

  • @HiAdrian

    @HiAdrian

    8 жыл бұрын

    *+Dylan Cannisi* Yes, Nvidia did an amazing job with CUDA. It's unfortunate that it's not a hardware agnostic standard though. Doesn't seem right to have vendor lock-in for something of this nature.

  • @Kneedragon1962

    @Kneedragon1962

    8 жыл бұрын

    Adrian Right back at day one, nVidia tried very hard to sell the concept and make it an industry standard, they were shouting it from the rooftops while I was at college, but the various other manufacturers were lukewarm, and they all wrote their own proprietary versions, which all faded into the past like Flash player...

  • @sukhoy
    @sukhoy8 жыл бұрын

    The white pixel moving over the turned off monitor on the left is getting on my nerves... D:

  • @puckyMaXxx
    @puckyMaXxx2 жыл бұрын

    I think maybe GPU works like Analog TV which also can translate frequency into picture/ trinary data arrays. But CPU can do ALL of any of those and why CPU slow at the end? Maybe because of work load of crunching and sorting all of types of data arrays, that' why~! I just wondering, what would happened if GPU too used for processing tandem with CPU? will it bottle necked bc bridge/bus chaos or become awesome?

  • @The_Oracle
    @The_Oracle3 ай бұрын

    This video has aged well. Can we have an update please.

  • @LazyOtaku
    @LazyOtaku8 жыл бұрын

    So I need a better gpu for gaming computer?

  • @theXparkourXguy
    @theXparkourXguy6 жыл бұрын

    very nice video. I don't know a lot, and isn't the strongest in Math either, but I enjoyed this video very much

  • @astaghfirullahalzimastaghf3648
    @astaghfirullahalzimastaghf36483 жыл бұрын

    Gpu --> graphic rendering independently of cpu Cpu --> take user input and give it to gpu to draw the picture on the screen.. That's cool.. What is "vlar" and "foo" by the way?

  • @TheKlaMike
    @TheKlaMike8 жыл бұрын

    What about hardware wise? What makes a CPU better at single computations than a GPU physically?

  • @vermashwetank

    @vermashwetank

    8 жыл бұрын

    +TheKlaMike Same question here. I would really like to know the physics behind all this

  • @Chickenkeeper

    @Chickenkeeper

    8 жыл бұрын

    +TheKlaMike I believe it's because a CPU can do very long and complicated computations containing a lot of steps as its cores are larger and more complex, e.g. 'add this to this, then multiply that by this, then take this, square root it, then divide it by the previous number, then copy it to this...' etc. But when dealing with simple calculations it can only do a few at a time as CPUs tend to only have a few cores. But each core in a GPU is quite small and simple and specialized for graphical calculations rather than general purpose computing. Hundreds or thousands of them can fit on a single chip, so while each core would need to take many small steps to perform a complex calculation that a CPU core could do in one step, it can do thousands of simple, specialized steps at once.

  • @BGBTech

    @BGBTech

    8 жыл бұрын

    +shwetank verma CPU has a higher clock-speed, and a pipeline where multiple operations may be done in a single clock-cycle if they don't depend on each others' registers (they are basically decoded and rammed into the pipeline, as the other end divides them up and executes them). each core will typically also have multiple ALUs available for parallel integer arithmetic, ... normally the core count is small, with lots of resources invested into making each core fast. GPU tends to have a larger number of simpler (slower) cores each with vector units, and running at a lower clock-speed. each core isn't all that fast on its own, and deals rather poorly with things like branching, and can usually only do one operation per clock cycle, .... however, if your operation consists of large amounts of parallel operations, it can be spread across a large number of cores, with each doing their own work on their own data. instruction sets are also a bit different. for example, the x86 ISA uses operations that allow doing things like loading/storing memory and performing arithmetic at the same time. this can save clock-cycles. the contrast is a load/store model, where load/store operations and arithmetic operations are handled separately, which combined with being limited to a single operation per clock cycle, additionally limits how fast stuff can get done.

  • @TheBluMeeny

    @TheBluMeeny

    8 жыл бұрын

    +TheKlaMike There is a very long thread already going on about this question down below.

  • @matsv201

    @matsv201

    8 жыл бұрын

    +TheKlaMike Well. i suppose you mean faster. They are equally good in regard that they produce the same result. And a GPU will produce the result using less energy. A CPU chop up the calculation in several serial bits. This make it so every bit in sequence can be done really fast making a high clock speed possible. The number of steps is usually around 12-25. A GPU have fewer serial steps. Typically 3-10. This ironically mean that a CPU really does not do one single calculation faster. If both just make one calculation, and that is is. Both CPU and GPU is about equally fast. Where a CPU shines is when it need to do calculation in sequence. If the calculation depend on the result of a prior calculation the higher clock speed make it so it pops out them faster in seaqvens.. basically raw clock speed. But this is not really what a CPU is made for. CPU is made for calculating a number then making a comparison, than taking a decision. A CPU is not only faster at this. A GPU is not even capable of doing this at all.

  • @m3ttwur5t
    @m3ttwur5t8 жыл бұрын

    Normalize your audio.

  • @U014B

    @U014B

    8 жыл бұрын

    Normalize your face.

  • @m3ttwur5t

    @m3ttwur5t

    8 жыл бұрын

    Nopiw My speakers are fine.

  • @WalnutSpice

    @WalnutSpice

    8 жыл бұрын

    Nopiw Nah

  • @albertpatterson8164
    @albertpatterson81647 жыл бұрын

    I like this.

  • @derenbong6060
    @derenbong60602 жыл бұрын

    Nottingham in Malaysia! My alma meter!

  • @rudrasingh8017
    @rudrasingh80172 жыл бұрын

    Nice

  • @123philimo
    @123philimo8 жыл бұрын

    And why do programs like C4D use the Processor for rendering a 3 dimensional space?

  • @Roxor128

    @Roxor128

    8 жыл бұрын

    +DevilsCookies Not sure what program you're talking about, but some rendering techniques don't work that well on GPUs. They suck at recursion and branching, which are key components of ray-tracing. Not to say that GPUs can't do recursion or branching. They can. They're just much slower at it than the CPU is. Enough so that when writing code for the GPU, you want to avoid branching whenever possible. If you're rendering a sphere in a ray-tracer, you need an if() statement in the intersection test to check if the quadratic formula has a negative discriminant, which indicates a miss.

  • @123philimo

    @123philimo

    8 жыл бұрын

    C4D = Cinema 4D and well, i thought 3D Animations is rendered faster by a GPU, because it's graphics you are rendering, and the GPU is a graphics processing unit.

  • @ceruchi2084
    @ceruchi20843 жыл бұрын

    Anyone else notice this madman believes HE is a GPU? Great video!

  • @vegardertilbake1
    @vegardertilbake16 жыл бұрын

    I like the fact that he says graphical processing unit, as in "we"

  • @imisinjan
    @imisinjan7 жыл бұрын

    Graphics are just one possible application for the use of GPU's but remember that GPU's are designed as better number crunchers than CPU's. Possible uses are password cracking, calculating PI, Chaos theory, stock market prediction or anything that requires highly parallel computing. The guy being interviewed seemed to be only focused on graphics work which only the tip of the iceberg.

  • @davidmella1174

    @davidmella1174

    3 жыл бұрын

    Just use a quantum computer instead when they get more common.

  • @samwelndonga8795

    @samwelndonga8795

    Жыл бұрын

    with chaos theory is it fear to state machine will be one day be alive on exploiting that field, look the insects like bedbug are too small yet alive, could the principal of life be all about neurons or atoms arranged to achieve chaos in oscillation, with signals of data in the respective body. Putin one said the first to build AI will rule the world. What he didn't figure out was once it has been understand/masted by any one, that person will rule the AI, therefore the first one to understand or figure out AI will actually rule the world. its going be easy to manipulate AI while you don't have those expensive servers. Just access to AI will be more than enough, with internet of thing you can imagine how powerful a one man army will look like.

  • @goodmanEnt
    @goodmanEnt8 жыл бұрын

    Would it be easier to say that the table top is a circle, rather than a bunch of triangles?

  • @akashshrestha01
    @akashshrestha015 жыл бұрын

    Great

  • @BariumCobaltNitrog3n
    @BariumCobaltNitrog3n8 жыл бұрын

    A light field camera will help your focus problems. And a tripod.

  • @newmansan
    @newmansan8 жыл бұрын

    Cool video everyone, but did you forget to pack a tripod? I feel like this was shot at sea. Keep up the good work otherwise.

  • @Monsmak
    @Monsmak8 жыл бұрын

    THE SPICE MUST FLOW!

  • @EyesOfByes
    @EyesOfByes4 жыл бұрын

    Watching this in June 2020. Nvidia DGX2 was announced. That thing is from another Universe.

  • @awaisraad
    @awaisraad7 жыл бұрын

    Still at a higher level of abstraction to me. :p

  • @ab8jeh
    @ab8jeh3 жыл бұрын

    I like the way he takes on the persona of a GPU.

  • @tidemover
    @tidemover8 жыл бұрын

    I'm ot sure what you mean by a triangle always being flat since the four sides of a pyramid are made of triangles and they aren't on planar surface? the bottom of course isn't a triangle

  • @scotthorning354

    @scotthorning354

    8 жыл бұрын

    If you divide a rectqngle or square in half diagonally, you would get 2 triangles. Do that in certain ways for other shapes, and you will still get triangles. About them always being flat, it means they are always on the same plane. A triangle has the smallest amount of sides possible for it to be a 2d figure. It will always be on the same plane. For a rectangle, 3 points or vertexes could be on one plane, but the fourth one could be on a different one, making it not coplanar.

  • @calfischer1149

    @calfischer1149

    8 жыл бұрын

    pyramids are made of multiple triangles though. One triangle will always fit in one plane.

  • @rednafi
    @rednafi8 жыл бұрын

    but though gpu has a lot more processing cores named shader cores(vertex shader and fractal shader),their clock speed is much slower than cpu.So overall gpu isnt fast enough for running os ,programs and other shits

  • @glueee2621
    @glueee26218 жыл бұрын

    So a C.P.U is't capable of parallel computing? ( sorry if this is a stupid question, I just want to know the answer) .

  • @americanswan

    @americanswan

    8 жыл бұрын

    Technically Correct. The way multitasking was faked before was using the cycles of a sole processor more efficiently. Remember most applications are waiting for the user to do something so with the extra processing power of a lone processor, music could be played. The only way seriously do two things at once with the same clock cycle was to add cores. So sure enough, my phone has six cores now. Smartphones now also have OpenCL compatible GPUs. Which means a computation heavy task could be sent to the GPU to complete. It seems though ZERO applications in the app store utilize this ability.

  • @JugglingAnusJuggler

    @JugglingAnusJuggler

    8 жыл бұрын

    +Marcus Godiali modern CPUs are in fact capable of parallel computing. americanswan mentioned this, but im sure youve heard of CPUs with multiple cores; they can send instructions to each of the cores, which is effectively parallel computing. on top of that, each core (when speaking of Intel CPUs) generally has 2 ALUS (Arithmetic and Logic Unit) that can be operated at the same time if needed and the conditions are appropriate.

  • @unmellowthegamer8946

    @unmellowthegamer8946

    6 жыл бұрын

    Vaes Joren tho what you said is true i don't think you can call multithreading parallel sense it's only doing one task it's more schedualed then parallel tho like tothfirytoob said multiple cores are multithreading

  • @freecrac

    @freecrac

    6 жыл бұрын

    Intel Core 2 architecture starts with 4 integer pipelines for executing 4 integer instructions simultaneous, if the instructions are pairable and if there are no dependencies between them.

  • @Ozymandias1
    @Ozymandias16 жыл бұрын

    By the time this video was uploaded you couldn't mine bitcoins with a GPU anymore. They use specialized ASIC chips for that nowadays.

  • @theondono
    @theondono8 жыл бұрын

    Numberphile people that realized that not 'all triangles are flat'