• justOnePersistentKbinPlease@fedia.io
    link
    fedilink
    arrow-up
    18
    arrow-down
    4
    ·
    1 day ago

    From a technical POV, from having read into it a little:

    Deepseek devs worked in a very low level language called Assembly. This language is unlike relatively newer languages like C in that it provides no guardrails at all and is basically CPU instructions in extreme shorthand. An “if” statement would be something like BEQ 1000, where it goes to a specific memory location(in this case address 1000 if two CPU registers are equal.)

    The advantage of using it is that it is considerably faster than C. However, it also means that the code is mostly locked to that specific hardware. If you add more memory or change CPUs you have to refactor. This is one of the reasons the language was largely replaced with C and other languages.

    Edit: to expound on this: “modern” languages are even slower, but more flexible in terms of hardware. This would be languages like Python, Java and C#

    • froztbyte@awful.systems
      link
      fedilink
      English
      arrow-up
      6
      ·
      9 hours ago

      for anyone reading this comment hoping for an actual eli5, the “technical POV” here is nonsense bullshit. you don’t program GPUs with assembly.

      the rest of the comment is the poster filling in bad comparisons with worse details

        • froztbyte@awful.systems
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          5 hours ago

          yep, clueless. can’t tell a register apart from a soprano. and allocs? the memory’s right there in the machine, it has it already! why does it need an alloc!

          fuckin’ dipshit

          next time you want to do a stupid driveby, pick somewhere else

    • V0ldek@awful.systems
      link
      fedilink
      English
      arrow-up
      11
      ·
      edit-2
      7 hours ago

      This is a really weird comment. Assembly is not faster than C, that’s a nonsensical statement, C compiles down to assembly. LLVM’s optimizations will most likely outperform or directly match whatever hand-crafted assembly you write. Why would BEQ 1000 be “considerably faster” than if (x == y) goto L_1000;? This collapses even further if you consider any application larger than a few hundred lines of code, any sensible compiler is going to beat you on optimizations if you try to write hand-crafted assembly. Try loading up assembly code and manually performing intraprocedural optimizations, lol, there’s a reason every compiled language goes through an intermediate representation.

      Saying that C# is slower than C is also nonsensical, especially now that C# has built-in PGO it’s very likely it could outperform an application written in C. C#'s JIT compiler is not somehow slower because it’s flexible in terms of hardware, if anything that’s what makes it fast. For example you can write a vectorized loop that will be JIT-compiled to the ideal fastest instruction set available on the CPU running the program, whereas in C or assembly you’d have to manually write a version for each. There’s no reason to think that manual implementation would be faster than what the JIT comes up with at runtime, though, especially with PGO.

      It’s kinda like you’re saying that a V12 engine is faster than a Ferrari and that they are both faster than a spaceship because the spaceship doesn’t have wheels.

      I know you’re trying to explain this to a non-technical person but what you said is so terribly misleading I cannot see educational value in it.

      • justOnePersistentKbinPlease@fedia.io
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        6 hours ago

        I have have crafted assembly instructions and have made it faster than the same C code.

        Particular to if statements, C will do things push and pull values from the stack which takes a small but occasionally noticeable amount of cycles.

        • khalid_salad@awful.systems
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          3 hours ago

          python, what are you doing?"

          idk, I’m written in C, it does things push and pull values from the stack, have you tried assembly, it’s faster

    • msage@programming.dev
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      3
      ·
      13 hours ago

      Putting Python, the slowest popular language, alongside Java and C# really irks me bad.

      The real benefit of R1 is Mixture of Experts - the model is separated into smaller sections, that are trained and used independently, meaning you don’t need the entire model to be active all the time, just parts of it.

      Meaning it uses less resources during training and general usage. For example instead of 670 billion parameters all the time, it can use 30 billion for specific question, and you can get away with using 2% of the hardware used by competition.

      • blakestacey@awful.systems
        link
        fedilink
        English
        arrow-up
        17
        ·
        1 day ago

        And I’m sure that your snide remark will both tell them what to simplify and explain how to do so.

        Enjoy your free trip to the egress.