Mind-bending new programming language for GPUs just dropped...

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 มิ.ย. 2024
  • What is the Bend programming language for parallel computing? Let's take a first look at Bend and how it uses a Python-like syntax to write high performance code that can run on the GPU.
    #programming #tech #thecodereport
    💬 Chat with Me on Discord
    / discord
    🔗 Resources
    Bend Language GitHub github.com/HigherOrderCO/Bend
    CUDA in 100 Seconds • Nvidia CUDA in 100 Sec...
    Recursion in 100 Seconds • Recursion in 100 Seconds
    🔥 Get More Content - Upgrade to PRO
    Upgrade at fireship.io/pro
    Use code YT25 for 25% off PRO access
    🎨 My Editor Settings
    - Atom One Dark
    - vscode-icons
    - Fira Code Font
    🔖 Topics Covered
    - What is Bend language?
    - Parallelism vs Concurrency
    - Rust programming language projects
    - CUDA alternatives
    - How to run code on a GPU
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 2K

  • @WorstDeveloper
    @WorstDeveloper 20 วันที่ผ่านมา +8451

    Time to become a code bender.

    • @igorthelight
      @igorthelight 20 วันที่ผ่านมา +72

      But what about non-benders? ;-)

    • @mishanya1162
      @mishanya1162 20 วันที่ผ่านมา +197

      @@igorthelight Folders you mean?

    • @kipchickensout
      @kipchickensout 20 วันที่ผ่านมา +47

      ​@@mishanya1162 is that with or without hard R

    • @catakuri6678
      @catakuri6678 20 วันที่ผ่านมา +216

      Everything changed when the Bug nation attacked

    • @Sq7Arno
      @Sq7Arno 20 วันที่ผ่านมา +12

      Finally, I have a chance to step into my father's shoes. Grow a pair. Live the life I was born to live.

  • @hamadaelwarky3640
    @hamadaelwarky3640 20 วันที่ผ่านมา +12324

    Time to add 10 years of experience to my resume/CV

    • @lionlike5856
      @lionlike5856 20 วันที่ผ่านมา +287

      Can we stop making this joke every fucking video

    • @Eichro
      @Eichro 20 วันที่ผ่านมา +1135

      My work experience is multithreaded, that's how

    • @domodiak
      @domodiak 20 วันที่ผ่านมา +126

      Probably 4 minutes in 1314000 threads

    • @atemoc
      @atemoc 20 วันที่ผ่านมา +171

      @@lionlike5856 We would if it wouldn't still be true

    • @alexander1989x
      @alexander1989x 20 วันที่ผ่านมา +134

      Recruiters be like: Do you have 10 years experience in bend?

  • @VictorTaelin
    @VictorTaelin 20 วันที่ผ่านมา +5473

    That video was *extremely* well done. Seems like someone has read the docs! Thanks for making it. We're long-term fans of your content here at HOC. If you or any other content creator wants to reach out, we're available to talk about the technology and answer any questions.
    We know there's a lot of work to do, but we're excited about it. You can expect Bend to become faster with every release. There are also many missing features (64-bit numbers, larger memory limit, etc.) that will be added very soon!

    • @steinerkelvin
      @steinerkelvin 20 วันที่ผ่านมา +75

      Let's do it. 🚀🚀

    • @xeon39688
      @xeon39688 20 วันที่ผ่านมา +13

      excited*

    • @mysterry2000
      @mysterry2000 20 วันที่ผ่านมา +50

      Thank you for commenting! Shouldn't it be possible to model for loops to work like the tree model that Jeff showed, or am I missing something?

    • @Rasperin
      @Rasperin 20 วันที่ผ่านมา +9

      This might legitimately make my life so much easier. It looks like I have some docs and playing around to do.

    • @ben_car_8115
      @ben_car_8115 20 วันที่ผ่านมา +59

      ⁠@@mysterry2000In the circles that would be using this language, the “fold” keyword and everything that comes along with it is actually more understandable that calling it a loop. When he said no loops I originally was confused but as soon as he said it’s replaced by “fold” I immediately got it. It’s just one of those things :/

  • @samwalker7567
    @samwalker7567 20 วันที่ผ่านมา +414

    Folds have been a mainstay of the functional programming world for a very long time.
    I remember teaching students how to implement folds in Python a few years back and it blowing their minds. The basic concept that all loops are simply a subset of a wider class of iterative constructs called folds is transformational - I love the simplicity and inherent understanding of a fold.
    This new concept of a bend is incredibly interesting, as like the fold it appears to be able to emulate any kind of loop or iterative function, but instead of going from many to one, goes from one to many. I will be playing around with this over the next few weeks I am sure!

    • @asdfghyter
      @asdfghyter 20 วันที่ผ่านมา +18

      Yeah, these concepts are really fascinating! The paper "Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire" from 1991 gives a deep-dive in the different kinds of recursion schemas you can work with, though unfortunately not in the most accessible way possible. In that paper a fold is called a catamorphism, while a bend/unfold is called an anamorphism. Having these concepts built into the language is very interesting, as it both gives them more directly to users and allows the compiler to optimize them directly.
      Another interesting related concept is the Church-encoding of data-types, allows any algebraic data type to be encoded as a (higher order) function. The Church-encoding of a data type is literally just the data applied to its fold. This is actually used for list-fusions in Haskell, where the lists are temporarily converted church-encoding, which can allow skipping construction of intermediate lists that would've been immediately folded away. Afterwards, you can recover the original data by giving the fold the original constructors. As the video mentioned, a fold is basically just a search-and-replace, where each constructor is replaced by some function, so replacing them with the original constructors is obviously a no-op.
      I'm not sure if there is a corresponding concept to the Church-encoding for bends, but it feels like there should be one

    • @asdfghyter
      @asdfghyter 20 วันที่ผ่านมา +6

      Looking at the Haskell module Data.Fix, I believe that what it calls the Least Fixpoint
      data Mu f = Mu { unMu :: forall a. (f a -> a) -> a }
      corresponds to the church-encoding, which would mean that the Greatest Fixpoint is the corresponding thing for a bend
      data Nu f = forall a. Nu (a -> f a) a
      both of these are equivalent to the basic recursive fixpoint
      data Fix f = Fix { unFix :: f (Fix f) }
      which allows you to write recursive data types without explicit recursion, which also means that you get the folds and bends for free
      In the bend language, you wouldn't need the Fix datatype, since folds and bends are built into the language

    • @AlexRodriguez-gb9ez
      @AlexRodriguez-gb9ez 18 วันที่ผ่านมา +7

      BTW you also know that FOLDS can be done not only on lists and graphs, they can be done on AST of code, and the fold on the AST is what is reffered to as an interpreter (the LISP eval function) O_o. Also in Haskell Monads are cata mappables, where the cata operation of monoids (i.e: (0,+,sum),([],++,concat),(true,&&,and) is a fold operation. Monads(programmable semicolons; chainable functions) literally are calling evaluate then map on your embedded languages as ASTs, and they split the embedded languages into their semantics so that Monads are programmable semantics.

    • @Tony-ow9bo
      @Tony-ow9bo 16 วันที่ผ่านมา +2

      You talk like somebody who thinks IQ is an important number.

    • @asdfghyter
      @asdfghyter 15 วันที่ผ่านมา +1

      @@Tony-ow9bo huh, what? why?

  • @noname-ql5fn
    @noname-ql5fn 20 วันที่ผ่านมา +5345

    Watched this video on 8000 Cores in parallel, added 500h of bend experience to my resume

    • @axelnick1
      @axelnick1 20 วันที่ผ่านมา +93

      I just knew you actually calculated the time x cores, instead of giving random numbers

    • @augustday9483
      @augustday9483 20 วันที่ผ่านมา +18

      5head 🧠

    • @cbaesemanai
      @cbaesemanai 20 วันที่ผ่านมา +36

      I will hire you for my job listing which requires 10 years of production bend programming experience

    • @davideographer4410
      @davideographer4410 20 วันที่ผ่านมา +27

      ACKCHYUALLY... 500h = 30,000m = 4m video x 7,500 cores 😋

    • @nu1x
      @nu1x 20 วันที่ผ่านมา +11

      500 ? You need to start with 50 000 hours for entry level positions, or no one will take you seriously.

  • @jonathanjeshualaniba5958
    @jonathanjeshualaniba5958 20 วันที่ผ่านมา +6040

    “1 week of problem, instead 7 days with 7 computers” 🤣🤣🤣

    • @deadlock107
      @deadlock107 20 วันที่ผ่านมา +51

      doesn't make any sense, especially in the context of parallel computing

    • @Qohist
      @Qohist 20 วันที่ผ่านมา +226

      wooosh or no?

    • @ashenmint
      @ashenmint 20 วันที่ผ่านมา +298

      @@Qohist it's definitely a r/wooosh

    • @TeslaPixel
      @TeslaPixel 20 วันที่ผ่านมา +526

      @@deadlock107 The joke is that the time saved running parallel was spent on the extra complexity of developing a parallel solution.

    • @alexlofka360
      @alexlofka360 20 วันที่ผ่านมา +7

      Thanks it wasn't stated in seconds😂

  • @Walker-ky9vy
    @Walker-ky9vy 20 วันที่ผ่านมา +194

    1:20 “may even lead to conflicts with demons”😂

    • @paulstelian97
      @paulstelian97 20 วันที่ผ่านมา +7

      daemon, as apparently some dialects call demons daemons

    • @sinistressdreams7243
      @sinistressdreams7243 14 วันที่ผ่านมา +8

      @@paulstelian97 I think that was the whole joke and thats why he is laughing about it...

    • @nuggert
      @nuggert 12 วันที่ผ่านมา +1

      @@paulstelian97🤓

    • @---..
      @---.. 11 วันที่ผ่านมา +4

      @@paulstelian97 I think it might be referencing the famous "nasal demons" meme from 1992 on comp.std.c noting how undefined behavior (which is common in incorrect parallel programs) can permit compilers to do arbitrarily strange things, giving "make demons fly out of your nose" as an example.

    • @ivoryas1696
      @ivoryas1696 9 วันที่ผ่านมา

      ​@@---..
      Neat. Thanks.

  • @pamus6242
    @pamus6242 20 วันที่ผ่านมา +25

    We needed this 17 years ago.
    It is happening 17 years too late.
    Imagine what we could have done with those core2quads and Phenoms !!

    • @mho...
      @mho... 7 วันที่ผ่านมา +6

      🥺 My Phenom2 x4 955BE ran for over 10 years 💪& the Motherboard died before the CPU!
      Was a really great Piece of Silicon!

  • @farouk_bloncko
    @farouk_bloncko 20 วันที่ผ่านมา +2382

    someone tomorrow will start recruiting people with 10 years of experience in this

    • @MmMRmaxim
      @MmMRmaxim 20 วันที่ผ่านมา +98

      This reminds me. Fuck the modern industry.

    • @nKe.
      @nKe. 20 วันที่ผ่านมา +113

      With salary being "valuable experience"

    • @realbigsquid
      @realbigsquid 20 วันที่ผ่านมา +1

      😂

    • @AMan-xz7tx
      @AMan-xz7tx 20 วันที่ผ่านมา +13

      yeah, lol. The only reasons that companies will ask for that is, either because they want the employee to do the work of making the company look better on statistics, or because they want the credentials to be impossible so they have an excuse to cut costs with dirt-cheap outsourced labor (or, with a textbook "do less with more effort" lack of experience that only an executive could have, with a GPT AI model)

    • @MmMRmaxim
      @MmMRmaxim 20 วันที่ผ่านมา +13

      @@AMan-xz7tx Problem is, that at a certain level this approach just won't work anymore. If a company demands unattainable experience , the few candidates that will have a somewhat relevant portfolio will demand a lot more than the company is willing to pay.

  • @_ptoni_
    @_ptoni_ 20 วันที่ผ่านมา +3650

    Saw this on Twitter/X and was like 'no way, this is a scam'. Then I saw their pfp was an anime avatar and ngl kinda trusted them immediately lmao

    • @Flowlackstalent
      @Flowlackstalent 20 วันที่ผ่านมา +62

      😂😂

    • @fresh218
      @fresh218 20 วันที่ผ่านมา +300

      Certificate of trust spotted

    • @mahersafadii
      @mahersafadii 20 วันที่ผ่านมา +34

      Same, I saw it from anime pfp account yesterday lol

    • @Manivelarino
      @Manivelarino 20 วันที่ผ่านมา +494

      Anime nerds single handedly pushing humanity 100s of years ahead just to make their waifus real in their lifetime 💪

    • @genghiskhan6688
      @genghiskhan6688 20 วันที่ผ่านมา +57

      why are weeaboos like that lol

  • @EllGeeLabs
    @EllGeeLabs 20 วันที่ผ่านมา +377

    People are rediscovering functional programming without knowing it.

    • @leftaroundabout
      @leftaroundabout 19 วันที่ผ่านมา +77

      I think it's more accurate to say that people are copying features from Haskell without giving it enough credit.

    • @bearwynn
      @bearwynn 16 วันที่ผ่านมา +56

      @@leftaroundabout the description for bend literally shouts out haskell

    • @xaaal11122
      @xaaal11122 15 วันที่ผ่านมา +36

      ​@@bearwynn bend is running on interaction combinators, that are optimal implementation of lambda calculus, which haskell is running on

    • @keepmehomeplease
      @keepmehomeplease 13 วันที่ผ่านมา +3

      @@leftaroundaboutyou have no idea what you’re talking about

    • @leftaroundabout
      @leftaroundabout 13 วันที่ผ่านมา +2

      @@keepmehomeplease you sure excel at phrasing criticism diplomatically, hm?
      But, what's your point? There can't be much doubt that the designers of Bend were well aware of Haskell from the start, and so were the designers of, say, Rust. So who do you mean that supposedly didn't know about functional programming?

  • @anonl5877
    @anonl5877 20 วันที่ผ่านมา +65

    You should do a video about Lean, it's a language that can understand mathematical logic and be used to prove theorems. It also has a very unique type system.

    • @paulstelian97
      @paulstelian97 20 วันที่ผ่านมา +7

      There’s also a tiny game where you have to prove some stuff about natural numbers online.

    • @anon_148
      @anon_148 18 วันที่ผ่านมา +12

      He should do a video about doing some actual lean

    • @yumbream
      @yumbream 18 วันที่ผ่านมา +3

      I LOVE LEAN, CHARLIE. I LOVE LEAN!

    • @marcuss.abildskov7175
      @marcuss.abildskov7175 13 วันที่ผ่านมา

      Next he should do a video about Gleam

  • @cherubin7th
    @cherubin7th 20 วันที่ผ่านมา +552

    But GPU guy said we will never have to code again.

    • @Meleeman011
      @Meleeman011 20 วันที่ผ่านมา +43

      he did say that didn't he? LOL

    • @randomnickname123
      @randomnickname123 20 วันที่ผ่านมา +70

      LMAO GPU guy

    • @andrewboldi47
      @andrewboldi47 19 วันที่ผ่านมา +26

      *the* GPU guy

    • @Eleganttf2
      @Eleganttf2 19 วันที่ผ่านมา +10

      all hail the lord mighty Jensen huang

    • @andrewboldi47
      @andrewboldi47 18 วันที่ผ่านมา +11

      @@Eleganttf2 shhh it's an insider joke people aren't supposed to know 😂

  • @neposis
    @neposis 20 วันที่ผ่านมา +710

    Yoooo new programming thing dropped that's not a new js library finally letsgoo

    • @DeltaByte
      @DeltaByte 20 วันที่ผ่านมา +134

      not a js library yet*

    • @FenrirRobu
      @FenrirRobu 20 วันที่ผ่านมา +37

      ​@@DeltaByte chatgpt how do I compile a rust based programming language for wasm

    • @thejoycode
      @thejoycode 20 วันที่ผ่านมา +31

      just started working on the JS binding to bend so we can write bend in js using bun

    • @okachobe1
      @okachobe1 20 วันที่ผ่านมา +8

      Its not AI!

    • @carlosmspk
      @carlosmspk 20 วันที่ผ่านมา

      I'm not super on top of JS world, but haven't new frameworks kinda stopped releasing lately?

  • @richtigmann1
    @richtigmann1 19 วันที่ผ่านมา +8

    That diagram showing the combinators being untangled is just so awesome.

  • @thecancermen245
    @thecancermen245 20 วันที่ผ่านมา +9

    Props for covering this project

  • @komeelali3832
    @komeelali3832 20 วันที่ผ่านมา +746

    7 days 7 computers joke was hilarious 🤣🤣🤣

    • @lovwanshichetan
      @lovwanshichetan 20 วันที่ผ่านมา +4

      Well, that's somewhat true for some cases. As this language heavily relies on recursion which takes a lot of resources & time for the same thing can be done with a normal for-loop but since it uses parallel computing it makes up for that. And that 7 computer analogy was used there because it can use all cores of cpu/gpu unlike what traditional languages do.

    • @AMan-xz7tx
      @AMan-xz7tx 20 วันที่ผ่านมา +1

      I initially thought he made a joke about crypto miners, both before and after I got the joke it was still funny

    • @supercompooper
      @supercompooper 20 วันที่ผ่านมา +1

      I liked his random numbers ❤

    • @notaspectator
      @notaspectator 20 วันที่ผ่านมา

      did it lol , buggy distributed node code

    • @ydne
      @ydne 20 วันที่ผ่านมา +1

      Was it a typo or a satirical analysis of how we are becoming frozen in a block of new good-intended time-savers?

  • @mephilees7866
    @mephilees7866 20 วันที่ผ่านมา +915

    Parallel Language: Check.
    Supports GPU: Check.
    Built with Rust(has thread safety, fast, beautiful, runs everywhere): What? ALL IN. let's integrate to Python and push to production now.

    • @vidal9747
      @vidal9747 20 วันที่ผ่านมา +73

      Python Integration is a must unfortunately. I don't like that it is necessary, but a lot of people are using it

    • @marcs9451
      @marcs9451 20 วันที่ผ่านมา +104

      rust is as thread ""safe"" as any language, the compiler is simply more restrictive about mutations

    • @jailsonmendes6120
      @jailsonmendes6120 20 วันที่ผ่านมา +63

      in what world rust is beautiful? lmao

    • @the_mastermage
      @the_mastermage 20 วันที่ผ่านมา +7

      @@marcs9451 thats why bend doesnt even allow mutations in the first place.

    • @geroutathat
      @geroutathat 20 วันที่ผ่านมา +11

      It's neat but putting it in production shouldn't happen. Your computer isnt made to run one python app, it runs an os and all sorts, if your app can run in one thread to the satisfaction of people do it that way, let the computer manage it.

  • @ChrisMazzerbo
    @ChrisMazzerbo 16 วันที่ผ่านมา +7

    Yoo!! The guy who wrote that paper you mentioned at 2:15 was one of my teachers at my first year of my maths bachelor, that's sick

  • @user-wh9qs5lo1m
    @user-wh9qs5lo1m 17 วันที่ผ่านมา +2

    I heard a lot of positive stuff about you and then I met this video. First video of yours i am watching... Totally hooked and I subscribed before I even finished watchng. Thanx you.

  • @douglaskrause3737
    @douglaskrause3737 20 วันที่ผ่านมา +508

    0:30 So THAT'S why my CUDA code wasn't running close to optimally... it's not my sophomoric understanding of algebra, it was that I wasn't leveraging REGEX!!!

    • @stephenkolostyak4087
      @stephenkolostyak4087 20 วันที่ผ่านมา +30

      how else will you parse... large text files...

    • @mage3690
      @mage3690 20 วันที่ผ่านมา +24

      Simply ripgrep your way to Blazingly Fast Code™, young padawan.

    • @zimriel
      @zimriel 20 วันที่ผ่านมา +19

      "and now you have two problems"

    • @Shazam999
      @Shazam999 20 วันที่ผ่านมา +10

      you now have a sophomoric understanding of regex.

    • @asdfghyter
      @asdfghyter 20 วันที่ผ่านมา

      @@stephenkolostyak4087 how else will you parse (X)HTML?

  • @Mersoh
    @Mersoh 20 วันที่ผ่านมา +439

    Imagine running this on cloud servers. They'll hate you for maxing out their resources constantly lol

    • @igorthelight
      @igorthelight 20 วันที่ผ่านมา +94

      You could make them hate you in any language.
      Bend is just a little bit easier ;-)

    • @xSNJVideos
      @xSNJVideos 20 วันที่ผ่านมา +71

      ​@@igorthelight A lot a bit easier my friend, a lot a bit. The amount of money my company has lost/wasted on parallelism issues is honestly insane. Time to present this to my team...

    • @fred.flintstone4099
      @fred.flintstone4099 20 วันที่ผ่านมา +45

      Cloud servers run virtual machines on hypervisors so each customer can only run on as many threads as the virtual machine is configured for, and virtual machines come in different sizes like small, medium and big depending on which one you pay for.

    • @sennetor
      @sennetor 20 วันที่ผ่านมา +25

      You mean the CFO or however set the cloud spend budget would hate you. CSP's would love you for this.

    • @sugo8479
      @sugo8479 20 วันที่ผ่านมา +3

      @@igorthelight you might even say that you can get them "bent" out of shape pretty easily

  • @MorganEarlJones
    @MorganEarlJones 20 วันที่ผ่านมา +14

    I'm not in tech but I've been following this one after a few people on Haskell Twitter mentioned it, the first of whom exclaimed something along the lines of "this guy is turning GPUs into real modern LISP machines!" which is exciting in and of itself, and then I think Ed Kmett engaged with something indicating that this does reduction of something akin to the lambda calculus really efficiently with GPU acceleration which is REALLY exciting

    • @spdcrzy
      @spdcrzy 2 วันที่ผ่านมา +1

      oooooooooooooooh.
      I just went down the lambda calculus rabbit hole again.
      ooooooooooooooooooooooooooooooooooooooooooooooooooh. This is VERY interesting (if true).

  • @vladislavkaras491
    @vladislavkaras491 18 วันที่ผ่านมา +1

    That quite comfy, that by modifying launching argument, you can specify on the fly, if you would like to use single or multithreaded and either CPU or GPU!
    Thanks for the video!

  • @AlamKanak
    @AlamKanak 20 วันที่ผ่านมา +579

    takes the order, cleans the toilet and cooks the food, in that order lmao 😂😂

    • @mu3a.d215
      @mu3a.d215 20 วันที่ผ่านมา +14

      ngl that someone looks like you, respectfully.

    • @danieldelriodevora9373
      @danieldelriodevora9373 20 วันที่ผ่านมา

      @@mu3a.d215 delete this

    • @shoopddawhooped
      @shoopddawhooped 20 วันที่ผ่านมา +6

      In parallel now they can clean the toilet 3x before cooking the order.

    • @stephenkolostyak4087
      @stephenkolostyak4087 20 วันที่ผ่านมา +34

      ​@@mu3a.d215 that's really ignorant, if the toilet doesn't get cleaned what are we going to cook in?

    • @Nina-cd2eh
      @Nina-cd2eh 20 วันที่ผ่านมา +1

      Smh these damn customers can't even appreciate concurrency

  • @Miss0Demon
    @Miss0Demon 20 วันที่ผ่านมา +333

    I’m just gonna stick with C, like God intended.

    • @RawFish2DChannel
      @RawFish2DChannel 20 วันที่ผ่านมา +95

      the Holy-C?

    • @cherubin7th
      @cherubin7th 20 วันที่ผ่านมา +1

      O yes God hates people.

    • @inversemicron
      @inversemicron 20 วันที่ผ่านมา +48

      @@RawFish2DChannel The Holy C.

    • @prontomatias3081
      @prontomatias3081 20 วันที่ผ่านมา +36

      Temple OS this is the way

    • @jakezepeda1267
      @jakezepeda1267 20 วันที่ผ่านมา +11

      God's Language

  • @4RILDIGITAL
    @4RILDIGITAL 19 วันที่ผ่านมา +3

    The parallelism promise sounds revolutionary for computing. The way you explained the workings makes it seem less complex. Looking forward to exploring more about this language.

    • @michaelbuckers
      @michaelbuckers 11 วันที่ผ่านมา +1

      Parallelism has been a thing since as early as computers had multiple CPUs, which is almost as soon as computers became a thing. The difference this makes, is that being a room temperature IQ chatGPT user does not preclude you from writing multithreaded code.

  • @johngodoy2929
    @johngodoy2929 20 วันที่ผ่านมา +4

    the way you talk about code is so satisfying

  • @NaN-se8ye
    @NaN-se8ye 20 วันที่ผ่านมา +134

    The multi-threaded example on Python isn't correct, the code shown in the video around 1:11 is creating Python threads which are executed under GIL meaning that only one thread is executed at a time under a single system thread (being Python interpreter itself). So while providing multi-threaded languages feeling, the threading module in Python is not suitable for CPU bound tasks and you'd have to mingle your software parts around to achieve parallel execution on multiple threads/cpus.

    • @cristianbenescu7949
      @cristianbenescu7949 20 วันที่ผ่านมา +22

      🤓 well ackchyually

    • @arie1906
      @arie1906 20 วันที่ผ่านมา +10

      Thank you, I learned something

    • @angelmusonda7951
      @angelmusonda7951 20 วันที่ผ่านมา +7

      Exactly what I wanted to say.

    • @kjgoebel7098
      @kjgoebel7098 20 วันที่ผ่านมา +38

      Also worth noting, there is a multiprocessing library in Python, which does get around the GIL.

    • @megaspazos1496
      @megaspazos1496 20 วันที่ผ่านมา +3

      ​@@kjgoebel7098yes but python multiprocessing cannot exploit hyperthreaded architectures in the same way multithreading does in C/C++ for example. Also threads are more lightweight and efficient than processes.

  • @DecadantHandshake
    @DecadantHandshake 20 วันที่ผ่านมา +43

    The first video on all of youtube about this language. Nice.

  • @KingVoodoo226
    @KingVoodoo226 16 วันที่ผ่านมา +1

    You're in a league of your own bro, these videos are hella informative and have me rolling lmao

  • @tylerwalton7659
    @tylerwalton7659 20 วันที่ผ่านมา +1

    I love that he still puts the “Hi Mom” references in. Gets me every time.

  • @rodrigosimoes7103
    @rodrigosimoes7103 20 วันที่ผ่านมา +430

    Babe wake up Fireship uploaded

    • @karanr3ddy
      @karanr3ddy 20 วันที่ผ่านมา +11

      Your babe is with me. she's had a good time.

    • @LittleMicho
      @LittleMicho 20 วันที่ผ่านมา +34

      ​@@karanr3ddy
      Bad joke :/

    • @DrDiabolical000
      @DrDiabolical000 20 วันที่ผ่านมา +32

      ​@@karanr3ddybruh... that was way too cringe.

    • @akshorts2115
      @akshorts2115 20 วันที่ผ่านมา +3

      Your babe is sleeping with me 😴

    • @turolretar
      @turolretar 20 วันที่ผ่านมา

      The babe is woken. You, however, are sleeping on the couch tonight

  • @CaarabaloneDZN
    @CaarabaloneDZN 20 วันที่ผ่านมา +4

    Amazing to see this featuring on fireship
    crazy stuff from the HOC guys

  • @HmFood4Thought
    @HmFood4Thought 20 วันที่ผ่านมา

    Holy moly you made this fast!

  • @JavArButt
    @JavArButt 20 วันที่ผ่านมา +1

    Love your humor, 1 week in serial or 7 days in parallel with 7 different pcs

  • @divine203
    @divine203 20 วันที่ผ่านมา +97

    4 minutes and one poo later. I now have 10 years experience of Bend. Thanks fireship 🔥

    • @zimriel
      @zimriel 20 วันที่ผ่านมา

      they won't hire you unless there's streetcam evidence

    • @ivandenkov7446
      @ivandenkov7446 19 วันที่ผ่านมา

      How do you poo so fast?

    • @SianaGearz
      @SianaGearz 19 วันที่ผ่านมา

      @@ivandenkov7446 Usually 60 years of training (accelerated at triple rate). You need to get your pooping game up mate.

    • @P-39_Airacobra
      @P-39_Airacobra 18 วันที่ผ่านมา +1

      Sorry but the industry is already ages ahead of you and left you behind, you're gonna have to find a new specialty

  • @leocondoric.2391
    @leocondoric.2391 20 วันที่ผ่านมา +3

    Good content bro!

  • @tommy.3377
    @tommy.3377 20 วันที่ผ่านมา

    I just love it Jeff .... This is exactly the kind of content that I am interested in =)

  • @rip4real437
    @rip4real437 20 วันที่ผ่านมา +2

    the picture used for the daemon conflict was perfect 🤣

  • @jeffh4581
    @jeffh4581 20 วันที่ผ่านมา +89

    That's actually so sick. Gonna check it out now

    • @carlosmspk
      @carlosmspk 20 วันที่ผ่านมา +7

      it's VERY early stages. It's probably not the best dev experience right now

  • @gblargg
    @gblargg 20 วันที่ผ่านมา +65

    0:40 I so wanted to see that program written as a bunch of threads each writing one character, with synchronization between them.

    • @last8exile
      @last8exile 20 วันที่ผ่านมา +3

      look into sleep sort

    • @gblargg
      @gblargg 20 วันที่ผ่านมา

      @@last8exile Hah, I think I already get it. Clever (but potentially a looong time until the last element gets appended).

  • @ric8248
    @ric8248 20 วันที่ผ่านมา +9

    Episode 5476 of "coders" afraid of C++ looking for an easy way out.

  • @leviathan5792
    @leviathan5792 19 วันที่ผ่านมา +1

    Funilly enough, I just spent my afternoon reading about Bend, and then stumbled upon this video! It's definitelly very interesting, and it seems promising. Honestly, I wish this had come out 3 weeks ago, maybe it could have saved a project of mine...

  • @gtgunar
    @gtgunar 20 วันที่ผ่านมา +4

    APL was made with built-in compatibility with parallel algorithms and reasoning. It could do all of it on a modern interpreter.

    • @igorthelight
      @igorthelight 20 วันที่ผ่านมา

      Including Cuda? ;-)

  • @igorbaltarejo4745
    @igorbaltarejo4745 20 วันที่ผ่านมา +128

    "Hi mom!" ❤

    • @igorbaltarejo4745
      @igorbaltarejo4745 20 วันที่ผ่านมา +9

      0:40

    • @ada0015
      @ada0015 20 วันที่ผ่านมา +8

      rip for his mom

    • @ryanleffler58
      @ryanleffler58 20 วันที่ผ่านมา +3

      😢 I’m sure she’s proud

  • @shinn-tyanwu4155
    @shinn-tyanwu4155 14 วันที่ผ่านมา

    Great presentation thanks 😊😊😊

  • @harrisjoseph6355
    @harrisjoseph6355 20 วันที่ผ่านมา

    Threading package in python std lib is still GIL bound and just time slices a single thread, you must use multiprocessing to achieve true parallelism in python (unless you have compiled 3.12 using noGIL or have written some native library that uses it outside the GIL)

  • @lipepaniguel
    @lipepaniguel 20 วันที่ผ่านมา +48

    Brazil mentioned! Let’s gooo!!

    • @Sergio_Loureiro
      @Sergio_Loureiro 20 วันที่ผ่านมา

      France mentioned! Let’s gooo!!

  • @piked86
    @piked86 20 วันที่ผ่านมา +4

    This sounds like a nightmare for compiler bugs

  • @beepbop6697
    @beepbop6697 20 วันที่ผ่านมา

    Nitpick: multithreading in python are still single threaded because of the GIL. You can spawn threads that are waiting on I/O, but number crunching on the CPU with python's GIL won't ever use more than one vcpu. To leverage more than one cpu in Python requires the multitasking library (spawn additional processes, each single-threaded).

  • @CtrlGame
    @CtrlGame 19 วันที่ผ่านมา

    Nice knowledge about parallel programming

  • @Dyils
    @Dyils 20 วันที่ผ่านมา +4

    1:14 But Python still runs a single thread at a time though. This isn't a good example, this will only help when you're limited by waiting for I/O. Compute workloads will be just as fast as without threading. The GIL (Global Interpreter Lock) only allows 1 thread to run at a time. There are ways around this, such as the multiprocessing library but each method has its own caveats.

  • @humphreywinnebago756
    @humphreywinnebago756 20 วันที่ผ่านมา +115

    Modifying your Python code to take advantage of multiple threads just adds a few gotchas. Nothing too crazy except, oh yeah, IT DOESN'T ACTUALLY RUN ANYTHING IN PARALLEL.

    • @antonhelsgaun
      @antonhelsgaun 20 วันที่ผ่านมา +1

      You can run multiple processes though, no?

    • @innovateInvent
      @innovateInvent 20 วันที่ผ่านมา +18

      I can't believe @Fireship overlooked the GIL

    • @user-dy3yo9ct9r
      @user-dy3yo9ct9r 20 วันที่ผ่านมา +3

      Might as well use async library.

    • @toxx1220
      @toxx1220 20 วันที่ผ่านมา

      exactly my thoughts xD

    • @nahuelvazquez2241
      @nahuelvazquez2241 20 วันที่ผ่านมา

      Weren't they getting rid of the global interpreter lock in a coming version?

  • @stefa168
    @stefa168 20 วันที่ผ่านมา +2

    Does this also support multiple computers? In our CS department we use a lot MPI, which allows for massive parallelism, and bend would be pretty great as a higher level substitute...

  • @ixion2001kx76
    @ixion2001kx76 20 วันที่ผ่านมา

    Amazing! I saw this on X 3hrs ago and you already have a funny, efficient, and insightful short with your own DEMOs on it! Do you have a time machine or something?

  • @sortysciaofiscia
    @sortysciaofiscia 20 วันที่ผ่านมา +8

    I DID NOT UNDERSTAND I need a follow-up tutorial on folds and bends

    • @sortysciaofiscia
      @sortysciaofiscia 20 วันที่ผ่านมา +4

      Edit: I read the github page and I firmly believe that nobody will ever understand folds and bends.

    • @footballuniverse6522
      @footballuniverse6522 20 วันที่ผ่านมา

      @@sortysciaofiscia gotta ask gpt4 to summarize for us simpletons xD

  • @explodestudios
    @explodestudios 20 วันที่ผ่านมา +40

    Will this help me build my todo app

    • @newchallengers9420
      @newchallengers9420 20 วันที่ผ่านมา +5

      Yes if it's a ToDo app for all your parallel universe personas

  • @ab3llini
    @ab3llini 19 วันที่ผ่านมา

    Great video ! Just bear in mind that no matter the underlying framworks, not all algos are parallelizable :)

  • @bestintentions6089
    @bestintentions6089 7 วันที่ผ่านมา

    Data partitioning is the hard thing about parrel programming. If blocks have a morass of dependencies between each other then you get mostly sequential execution

  • @ripplerxeon
    @ripplerxeon 20 วันที่ผ่านมา +6

    We are looking for a code bender with 10 years experience in code bending.
    I liked my own comment cuz I like it that's why I posted it. GigaChad

  • @sh4ndes
    @sh4ndes 20 วันที่ผ่านมา +3

    1:42 “two completely random numbers”
    Mhmmmmmm

  • @emperor8716
    @emperor8716 7 วันที่ผ่านมา +1

    You dropped the mic and I dropped my jaw. Insane stuff.

  • @YuNherd
    @YuNherd 20 วันที่ผ่านมา

    thank you for blessing simpletons like me to understand this. dont ever stop FireShip.

  • @feynstein1004
    @feynstein1004 20 วันที่ผ่านมา +11

    What a time to be alive!

  • @asdfghyter
    @asdfghyter 20 วันที่ผ่านมา +60

    2:18 "high level languages like python and haskell" two very similar languages on the same difficulty level XD

    • @traveller23e
      @traveller23e 12 วันที่ผ่านมา +8

      To be fair, I feel like much of Haskell's difficulty arises from its distance from imperative languages the majority of programmers are used to. Well, that and the relative lack of ide support.

    • @asdfghyter
      @asdfghyter 11 วันที่ผ่านมา

      @@traveller23e I think the current IDE support through Haskell Language Server is really good! I've had some issues with it refusing to start in the past and such, but when it works it's excellent! Installing it via the vscode extension is also really easy

    • @ParadymShiftVegan
      @ParadymShiftVegan 5 วันที่ผ่านมา +1

      "High level" has nothing to do with the difficultly of the language. It's referring to where the code is being applied. Low level languages would be languages which code instructions closer to the hardware of the machine, closer to the 1s and 0s which pass through the logic gates. This tends to be extremely specific by virtue of how information is processed at low levels. But, by virtue of said specificity, this makes them require more effort than a higher-level language. High level languages, on the other hand, are languages that are designed for humans to understand, and therefore are further abstracted from the low-level operations. This comes at the cost of less precise control, memory efficiency, and slower speed of operations, but at the same time allows programmers to complete more work than they would given the same amount of effort in a lower-level language.

    • @ParadymShiftVegan
      @ParadymShiftVegan 5 วันที่ผ่านมา

      @@traveller23e Also, high and low level isn't referring to the difficultly, it's referring to how abstracted it is from the hardware processes.

    • @traveller23e
      @traveller23e 5 วันที่ผ่านมา

      ​@@ParadymShiftVegan Yes, but one of the goals in abstraction (aside from cross-platform/architecture potential) is to make the language easier to learn or more convenient. The original commenter was laughing at the grouping together of such different languages, I don't think the goal was to teach people that high-level means "easy".

  • @akansha1127
    @akansha1127 20 วันที่ผ่านมา

    Please don't stop posting content. I am so addicted to this channel already!

    • @Satyam-mm1ct
      @Satyam-mm1ct 20 วันที่ผ่านมา

      I am unable to understand many things, probably a noobie case but hmm actually his videos are very interesting

    • @akansha1127
      @akansha1127 18 วันที่ผ่านมา

      @@Satyam-mm1ct You should definitely Google those... And in turn you will get to learn many new things. Internet is vast and a good teacher.

  • @jackbarham
    @jackbarham 18 วันที่ผ่านมา +1

    This is it! Time to recode my portfolio that I haven't finished yet.

  • @wezzelinator
    @wezzelinator 20 วันที่ผ่านมา +28

    Finally. Procedural Haskell.

    • @evergreen-
      @evergreen- 20 วันที่ผ่านมา +2

      Wait, what? Can you elaborate, please?
      2 questions: what’s procedural about this language? Folds and recursions associate with FP.
      Haskell is said to be good for parallelism also. What’s different with this language that it’s better than Haskell?

    • @Gigasharik5
      @Gigasharik5 20 วันที่ผ่านมา +1

      Its not haskell and its not procedural at all

    • @brendanfay2017
      @brendanfay2017 20 วันที่ผ่านมา +3

      ​@@evergreen- the language is procedural but has folds and bends and parallelization like haskell. it's better because stuff like parallel arrays is really hard in haskell, but I don't think it claims ot be better than Haskell anyway. different use cases

    • @wezzelinator
      @wezzelinator 19 วันที่ผ่านมา

      @@brendanfay2017
      :^)

  • @JohnnyUtah488
    @JohnnyUtah488 20 วันที่ผ่านมา +38

    1:02 "handling one instruction per cycle"
    *** CISC has left the chat ***

    • @wezzernium
      @wezzernium 20 วันที่ผ่านมา +6

      Uhhh... x86 has been doing more than one instruction per cycle for decades and I'm pretty sure the only ISA more CISC that it was VAX...

    • @devnom9143
      @devnom9143 20 วันที่ผ่านมา +8

      DIV over in a corner ruining everything by taking multiple cycles on the majority of architectures; Unless it's an integer division by 2 cause then you can typically get away with a bit shift to the right

    • @JohnnyUtah488
      @JohnnyUtah488 20 วันที่ผ่านมา

      ​@@devnom9143 Haha, beat me to it. The Motorola 68HC11 microcontroller takes 41 cycles (!) for an integer divide.

    • @JohnnyUtah488
      @JohnnyUtah488 20 วันที่ผ่านมา

      ​@@devnom9143 Haha, beat me to it. IDIV takes a whopping 41 cycles on a M68HC11 microcontroller.

    • @JohnnyUtah488
      @JohnnyUtah488 20 วันที่ผ่านมา

      ​@@devnom9143 Haha, yes! I once worked on a microcontroller that took ~40 cycles for a DIV instruction.

  • @nova8585
    @nova8585 20 วันที่ผ่านมา +1

    Could whatever techniques used to implement fold/bend be ported over to other programming languages?

  • @meph5291
    @meph5291 20 วันที่ผ่านมา

    Sounds fun when it works. Good luck debugging it.

  • @FUTURE_XD
    @FUTURE_XD 20 วันที่ผ่านมา +78

    came after i spent 3 months learning cuda

    • @SVVV97
      @SVVV97 20 วันที่ผ่านมา +19

      It really targets a different domain than cuda. It's for things that you specifically don't want to implement in cuda: just normal, general purpose programming.
      As the name implies it's a VM and that VM comes with some overhead - so if you implement something once in bare cuda and once in bend the cuda version will be faster. Bend / HVM(2) won't magically speed up your matrix multiplications and stuff like that. But since you already know cuda you'd surely agree that there's a ton of things you would never implement with it simple because it's fucking hard to do so or simply not practical. That's where bend comes in: putting algorithms on the GPU that were traditionally relegated to the CPU due to the limitation of the current implementations of high-level languages.
      (There's apparently also some room for super new algorithms / making already known algorithms that have issues in current systems more feasible in practice, for example around symbolic computing)
      (At least that's my current understanding - I'm not involved with the project I've just been following it for some time)

    • @NielsGx
      @NielsGx 20 วันที่ผ่านมา +7

      @@SVVV97 feels like GPU will replace CPU completely damn
      If you can get an OS working like this

    • @Dom-zy1qy
      @Dom-zy1qy 20 วันที่ผ่านมา

      You know I was just about to write a comment along the lines of "Man I'm glad I didn't invest my time into studying GPU architecture & learning cuda"

    • @tacokoneko
      @tacokoneko 20 วันที่ผ่านมา +7

      @@NielsGx OS are fundamentally single threaded concepts at a low level, that's why when supercomputers run, the operating system the supercomputer runs doesn't boot once it boots thousands of times, once for each individual SoC node in the cluster, and the init system of Linux is a single process PID 1 that all other processes fork from, and the bootloader of an SoC initializes the processor through a series of mode changes and all of these occur in a single thread.
      multithreading and multitasking is a _feature_ that gets enabled and active at a certain point in the SoC boot process but it can't be instantly active it takes a few milliseconds

    • @dhvcc8182
      @dhvcc8182 20 วันที่ผ่านมา +1

      ​@@NielsGx I don't, because the system still needs high hz cores, it's a dandem of GPU/CPU where CPU is the main head

  • @CalebCleavinger
    @CalebCleavinger 20 วันที่ผ่านมา +3

    But now I don't have to write .sType in vulkan 17,000 times. :(

  • @ethan7930
    @ethan7930 18 วันที่ผ่านมา

    The question is can single threaded computation in bend rival that of single threaded C++. There is supposedly a massive overhead in bend's interaction combinators system.

  • @verified_tinker1818
    @verified_tinker1818 20 วันที่ผ่านมา

    Ran across this on the Rust sub-Reddit this morning, and now there's already a Fireship video. Dope!

  • @xXBigGodXx
    @xXBigGodXx 20 วันที่ผ่านมา +29

    I just started to learn coding a few days ago, admittedly i have no idea on what anything said in this video is, but it sounds good for me!

    • @daphenomenalz4100
      @daphenomenalz4100 20 วันที่ผ่านมา +4

      You should start with Go, do not touch this if you're new.
      Start with a more simpler typed language like Go, that covers all these principles already and will probably teach you better, as all this would not be happening under the hood and you would have to write it manually.
      And then move to this or Rust, if you want to explore more. I mean I love Rust, but don't start programming right away with this or Rust 💀
      Go will teach you what rust does for the most part already, in an easier syntax.

    • @daphenomenalz4100
      @daphenomenalz4100 20 วันที่ผ่านมา

      Sry for the long para, btw still love rust

    • @theforsakeen-9014
      @theforsakeen-9014 20 วันที่ผ่านมา +2

      i really recommend you to start with C in cs50.

    • @xXBigGodXx
      @xXBigGodXx 20 วันที่ผ่านมา

      ​@@daphenomenalz4100 my only focus is game dev. And i assume AI will make me regret time investment soon, so im more so passively just trying to understand coding in a meta sense. for now i've settled on just learning python + unity or godot engine

    • @archardor3392
      @archardor3392 20 วันที่ผ่านมา

      Don't listen to either of them and just continue learning what you are currently learning. Both C and Rust will burn you out as a beginner unless you are pationate about the languages. You will learn them later, when you can appreciate what they bring to the table.

  • @kmuralikrishna1998
    @kmuralikrishna1998 20 วันที่ผ่านมา +3

    Time to fold 10 years of bend to my resume

  • @realityChemist
    @realityChemist 20 วันที่ผ่านมา +1

    Honestly, as someone who deals with parallelization pretty often (scientific computing), this is kinda huge

  • @edwarddejong8025
    @edwarddejong8025 19 วันที่ผ่านมา

    There is another language called Parasail, written by one of the maintainers of Ada, and it also automatically parallelizes code, but it is more conventional, and allows loops in the language. For those interested in Parallel computing, well worth the effort as it is very polished at this point.

  • @kawaxte
    @kawaxte 20 วันที่ผ่านมา +93

    Damn, It's like everyone apparently knows how to write progrmaming languages and I'm here trying to understand how it all works, despite all the resources available telling me, in complicated ways, how it all works...
    I'm a simpleton.

    • @muscifede
      @muscifede 20 วันที่ผ่านมา +44

      skill issue

    • @YoubasTV
      @YoubasTV 20 วันที่ผ่านมา +50

      Take solace in knowing that even with a lot of learning and professional experience, that feeling will never go away. It's par for the course.

    • @plshalpme173
      @plshalpme173 20 วันที่ผ่านมา +6

      read sicp, the concept is really well explained there
      if you cant get through sicp... my condolences

    • @erayagdogan3389
      @erayagdogan3389 20 วันที่ผ่านมา +6

      I have been coding for 5 years. I still don't feel I fully understand programming.

    • @RedstonekPL
      @RedstonekPL 20 วันที่ผ่านมา +15

      because you learn by doing
      you wont learn shit just reading about it
      same way you wont get good at drawing by reading van goghs biography or whatever
      just sit down and CODE

  • @pokefreak2112
    @pokefreak2112 20 วันที่ผ่านมา +6

    We had a tool for that, it was called *compute shaders*

    • @matthewmoulton1
      @matthewmoulton1 20 วันที่ผ่านมา +2

      This new language appears to be a higher level of abstraction than compute shaders and seems to be used for the CPU in addition to the GPU.

    • @pokefreak2112
      @pokefreak2112 20 วันที่ผ่านมา +6

      @@matthewmoulton1 Feel free to correct me if you're a GPU expert, but I don't think abstraction is a particularly good idea in this space.
      You're not going to be running complex business logic on the GPU. The logic you _do run_ should be as compact and optimized as possible.
      People literally minimize divisions and multiplies in GPU code, let alone memory reads or branches.
      If anything we should be making CPU langs look more like hlsl so we can actually make use of SIMD intrinsics without code looking ugly as sin

    • @matthewmoulton1
      @matthewmoulton1 20 วันที่ผ่านมา +1

      @@pokefreak2112 You are right- abstraction brings with it a number of inefficiencies. I was trying to point out how this new language is different from compute shaders, not necessarily claim that it would/should *replace* them.
      The fact of the matter is that the average programmer likes writing in as high-level of a language as possible. I think it is cool that Bend handles the parallelism internally, which hopefully should lead to higher multithreading and/or GPU utilization across the board. For situations where performance is critical (like rendering or neural net execution), we should probably stick with the lower-level tools available.

  • @2008uit123
    @2008uit123 20 วันที่ผ่านมา

    Should have used matrix's spoon bend as thumbnail and add mic hitting the floor sound at the end

  • @LittleBlue42
    @LittleBlue42 16 วันที่ผ่านมา

    Time to learn it!!

  • @alexanderst.7993
    @alexanderst.7993 20 วันที่ผ่านมา +43

    "Two completely random numbers". Yeah i believe you :)

    • @rafaeldeleon3386
      @rafaeldeleon3386 20 วันที่ผ่านมา

      Here's another two completely random numbers if you don't like those: 80085 + 7175
      Happy?

    • @zweitekonto9654
      @zweitekonto9654 20 วันที่ผ่านมา +5

      Holy shit how did i missed this joke

    • @artoriapd
      @artoriapd 20 วันที่ผ่านมา +1

      ​@@zweitekonto9654 same lmao 😂😂

    • @animatorslife9733
      @animatorslife9733 20 วันที่ผ่านมา

      yeah, I believe him as well!

  • @okokisbsi
    @okokisbsi 20 วันที่ผ่านมา +62

    0 days without AI

    •  20 วันที่ผ่านมา

      zero day 😹

    • @ludologian
      @ludologian 20 วันที่ผ่านมา +1

      Lua programmers are getting insulted

  • @basspuppy133
    @basspuppy133 18 วันที่ผ่านมา

    The way Bend works reminds me of recursive functions in functional programming languages like Haskell

    • @basspuppy133
      @basspuppy133 18 วันที่ผ่านมา

      Nvm just got further into the video that's literally all it is lmao

  • @djthdinsessions
    @djthdinsessions 16 วันที่ผ่านมา

    Note the shown python code will not do parallel computing at least in current versions with default configuration, because of the GIL

  • @RandomGamingDev
    @RandomGamingDev 20 วันที่ผ่านมา +6

    I mean, it sounds great and all, but at least right now, I don't see how this is going to be much better than the solutions we already have for running code on the GPU like compute shaders (OpenGL/OpenCL/CUDA) or a library like tensorflow or pytorch, and the multiple solutions for multiple threads and async/await in all the major programming languages, all of which already abstract away everything quite a lot.
    Trying to make hardware accelerated computing and general parallelism more accessible is great, but this is the sorta thing where you get into the nitty gritty bits of your algorithm's performance and with that explicit's almost always better than implicit especially with algorithms which require complex human thought and logic to optimize, something much harder to put in a compiler compared to say, the comparatively much more basic optimizations made by the C compiler, and when GPU cores can be easily compared to the CPUs of the yesterdecades: not exactly something you want something running high level code in an application worried about performance to this degree.
    So you end up left in a weird limbo where most applications are fine with a single thread, most of the few applications left that aren't delve into async/await and stay in the same language, and then the applications that really care about performance like simulations end up going with the more performant options mentioned previously that are already the industry standard anyways, and for good reason too.
    In my opinion, I love the project and its idea. It sounds great and I want it to succeed, but what I think it'll be great for and largely used for will probably be smaller scripts and data science computations and especially as an educational tool, but using it as something more than that, like to replace the industry standard solutions in an actual large project doesn't feel like it'd catch on nearly as much as just using the standard in the current tech landscape and most likely for years to come.
    Edit: Yes, this has promise for doing the things industry standard solutions can do and yes it abstracts a lot away which especially helps with things like race conditions (the industry standard solutions I listed also help significantly with that), but what I'm saying is that even then, most of the tasks are ones that are better off done with those industry standard solutions. Also, as for rj7259a's comment I doubt using a GPU for compilation say, for languages like C/C++ is a good idea at least in most cases.

    • @khlorghaal
      @khlorghaal 20 วันที่ผ่านมา +1

      interaction combinators are extremely promising, its attainable in the near term

    • @rj7250a
      @rj7250a 20 วันที่ผ่านมา +2

      You write serial code and it runs in parallel. That is the greatest invention in programming since subroutines.
      If you are not a average JS developer, you know how complicated it is to write parallel code, you will always need to deal with a deadlock or race condition, and they are non reproducible bugs, the worst kind of bug. (Heisenbug)
      There is software that could run on a GPU, but would be pratically impossible to be coded by humans, like a compiler.

    • @SimonBuchanNz
      @SimonBuchanNz 20 วันที่ผ่านมา

      ​@@rj7250ayou don't get that sort of bug in (safe) Rust. Deadlocks can happen, sure, but they're probably the easiest bug to diagnose, they're their own breakpoint.
      And what do you mean humans can't program GPUs? We've been doing that for decades? It's a little fiddly to shuffle data in and out, but honestly it's just not that bad.

    • @RandomGamingDev
      @RandomGamingDev 20 วันที่ผ่านมา

      @@rj7250a Yes, I understand that writing parallel code is difficult, but not only are most applications fine with a single thread, but those that truly need the extra threads are oftentimes better off with the more industry standard solutions I previously listed. They already have the developers with the skills needed to utilize those libraries as well.

  • @saranshthukral4021
    @saranshthukral4021 20 วันที่ผ่านมา +3

    perfect name for a new "programming language"

  • @mintoo2cool
    @mintoo2cool 19 วันที่ผ่านมา

    and here i was using a combination of psutils async and os module to manually parallelize my code in python when i should just have been folding and bending them all along in rust

  • @AtomicCodeX
    @AtomicCodeX 20 วันที่ผ่านมา

    I was literally talking about using the gpu for multithreading with a friend 2 days ago at work

  • @zilog1
    @zilog1 20 วันที่ผ่านมา +10

    Reminder: protogens go beep boop

    • @AlphaNeon
      @AlphaNeon 20 วันที่ผ่านมา +6

      Thank you

    • @atemoc
      @atemoc 20 วันที่ผ่านมา +1

      Very important reminder. Now it's time to make these reminders multithreaded.

    • @canaconn2388
      @canaconn2388 20 วันที่ผ่านมา

      Until I run memz.exe

    • @GeneralKenobi69420
      @GeneralKenobi69420 20 วันที่ผ่านมา

      ew a f*rry + who asked

  • @DevKumar-ci7eu
    @DevKumar-ci7eu 20 วันที่ผ่านมา +4

    1:21 wtf is that picture is that a devil . Chat is this real ?

    • @panda-_-dreamer2.030
      @panda-_-dreamer2.030 20 วันที่ผ่านมา +5

      Do not fuck around with the daemon, it will haunt your CPU forever looking for processes to keep alive

    • @bazookaman1353
      @bazookaman1353 20 วันที่ผ่านมา +2

      That's a 100% real photo, his name is Michael and he's a gentle giant.

  • @vrfrenzy8451
    @vrfrenzy8451 18 วันที่ผ่านมา

    This totally *bends* my mind

  • @luuclucas
    @luuclucas 18 วันที่ผ่านมา

    I was so confused when you show the image of a right fold on 3:05, which is inherently sequential as you carry an intermediate result from the previous computation. You're looking for the fold with the tree structure.

  • @incognitoflamingo
    @incognitoflamingo 20 วันที่ผ่านมา +3

    GPU hackers incoming

    • @khlorghaal
      @khlorghaal 20 วันที่ผ่านมา

      no different than webgl

  • @Vwcz
    @Vwcz 20 วันที่ผ่านมา +4

    So glad to see my experience from a semester of multiprocessor architecture is now obsolete.

    • @alababaju
      @alababaju 20 วันที่ผ่านมา

      Haha 😄
      I think you're now expected to write Bendscript or whatever the next amazing parallel programming language is.

    • @archardor3392
      @archardor3392 20 วันที่ผ่านมา

      Nah, this will never pick up.

  • @purpledaddy6077
    @purpledaddy6077 20 วันที่ผ่านมา

    I think that would be pretty big for hardware health as well!

  • @meustrus7056
    @meustrus7056 17 วันที่ผ่านมา

    Hrm. This bend thing is a neat concept. I feel like the syntax is too indirect though. I can think of a couple of ways to implement it as simply a generic function that takes a starting value and a function that takes the current value and a function to recurse. It's really cool as a built in language feature though as I'm sure it was much easier to implement.