• Ironfacebuster@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    6 months ago

    Rockstar making GTA online be like: “Computer, here is a 512mb json file please download it from the server and then do nothing with it”

      • vvvvv@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        6 months ago

        106 Gbps

        They get to this result on 0.6 MB of data (paper, page 5)

        They even say:

        Moreover, there is no need to evaluate our design with datasets larger than the ones we have used; we achieve steady state performance with our datasets

        This requires an explanation. I do see the need - if you promise 100Gbps you need to process at least a few Tbs.

        • neatchee@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          6 months ago

          Imagine you have a car powered by a nuclear reactor with enough fuel to last 100 years and a stable output of energy. Then you put it on a 5 mile road that is comprised of the same 250 small segments in various configurations, but you know for a fact that starts and ends at the same elevation. You also know that this car gains exactly as much performance going downhill as it loses going uphill.

          You set the car driving and determine that, it takes 15 minutes to travel 5 miles. You reconfigure the road, same rules, and do it again. Same result, 15 minutes. You do this again and again and again and always get 15 minutes.

          Do you need to test the car on a 20 mile road of the same configuration to know that it goes 20mph?

          JSON is a text-based, uncompressed format. It has very strict rules and a limited number of data types and structures. Further, it cannot contain computational logic on it’s own. The contents can interpreted after being read to extract logic, but the JSON itself cannot change it’s own computational complexity. As such, it’s simple to express every possible form and complexity a JSON object can take within just 0.6 MB of data. And once they know they can process that file in however-the-fuck-many microseconds, they can extrapolate to Gbps from there

          • vvvvv@lemmy.world
            link
            fedilink
            English
            arrow-up
            0
            ·
            6 months ago

            Based on your analogue they drive the car for 7.5 inches (614.4 Kb by 63360 inches by 20 divided by 103179878.4 Kb) and promise based on that that car travels 20mph which might be true, yes, but the scale disproportion is too considerable to not require tests. This is not maths, this is a real physical device - how would it would behave on larger real data remains to be seen.

  • jballs@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 months ago

    I have the same problem with XML too. Notepad++ has a plugin that can format a 50MB XML file in a few seconds. But my current client won’t allow plugins installed. So I have to use VS Code, which chokes on anything bigger than what I could do myself manually if I was determined.

  • Xyloph@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    6 months ago

    That is sometime the issue when your code editor is a disguised web browser 😅

  • AusatKeyboardPremi@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    6 months ago

    Given it is a CPU is limiting the parsing of the file, I wonder how a GPU-based editor like Zed would handle it.

    Been wanting to test out the editor ever since it was partially open sourced but I am too lazy to get around doing it

    • icesentry@lemmy.ca
      link
      fedilink
      arrow-up
      0
      ·
      6 months ago

      That’s not how this works, GPUs are fast because the kind of work they do is embarrassingly parallel and they have hundreds of cores. Loading a json file is not something that can be trivially parallelized. Also, zed use the gpu for rendering, not reading files.

      • You999@sh.itjust.works
        link
        fedilink
        arrow-up
        0
        ·
        6 months ago

        I’d like to point out for those who aren’t in the weeds of silicon architecture, ‘embarrassingly parellel’ is the a type of computation work flow. It’s just named that because the solution was an embarrassingly easy one.

        • Kevin@programming.dev
          link
          fedilink
          arrow-up
          0
          ·
          6 months ago

          Huh, I was about to correct you on the use of embarrassment in that the intent was to mean a large amount, but it seems a Wiki edit reverted it to your meaning a year ago, thanks for making me check!

    • agelord@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      6 months ago

      As far as my understanding goes, Zed uses the GPU only for rendering things on screen. And from what I’ve heard, most editors do that. I don’t understand why Zed uses that as a key marketing point

  • Skull giver@popplesburger.hilciferous.nl
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    6 months ago

    Fifty million polygons processed by over 7 thousand processing cores (Intel iGPU), versus 4 million tokens processed by a single execution unit (with some instruction reordering tricky).

    • AdrianTheFrog@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      6 months ago

      Doesn’t a 3070 have less than 7k cores? A UHD 750 (relatively recent iGPU) only has 256.

      And I don’t know the structure of JSON that well, but can’t tokens be made of multiple chars?

      • Skull giver@popplesburger.hilciferous.nl
        link
        fedilink
        arrow-up
        0
        ·
        6 months ago

        You’re right, I looked up the highest Intel GPU count but forgot that they released desktop cards. Intel iGPUs “only” have 768 cores, it’s the Ampere cards that have thousands of cores.

        JSON is UTF-8 so it can be up to three bytes per token theoretically. Depends on the language you’re processing, I guess.

  • BaardFigur@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    6 months ago

    I’ve never had any problems with 4,2 MB (and bigger) json files. What languages/libraries/editors chokes on it?

      • Andrew@mander.xyz
        link
        fedilink
        arrow-up
        0
        ·
        6 months ago

        If you’re not aware, it was called MB because of JADEC when IEC units weren’t invented. IEC units were introduced because they remove the double meaning of JADEC units — decimal and binary. IEC units only carry the binary meaning, hence why they’re superior. If you convert 1000 kB to 1 MB then use MB, but on case of 1024 KiB to 1 MiB you should be using MiB. It’s all about getting the point across and JADEC units aren’t good at it.

        • HopFlop@discuss.tchncs.de
          link
          fedilink
          arrow-up
          0
          ·
          6 months ago

          I’m failing to understand why we would need decimal units at all. Whats the point of them? And why do the original units havr to change name to something as ridiculous as “Gibibyte” while the unnecessary decimal units get the binary’s old name?

          • Andrew@mander.xyz
            link
            fedilink
            arrow-up
            0
            ·
            edit-2
            6 months ago

            You poor innocent soul… I can try to explain why decimal is even mentioned, but it would probably take a lot of time, and I’m not sure if I will be able to clarify things up.

            I can at least say this: 2 TB HDD drive is indeed 2*10^12 B, but suddenly shindow$ in its File Explorer will show you that in fact the drive is only 1.82 TB. But WHY? Everyone asks, feeling scammed. Because HDD spec uses decimal units (SI; MB) and Window$ uses binary units (JEDEC; MB), i.e., 1.82 TiB (IEC; MiB). And macOS also uses JEDEC units, AFAIK.

            More and more FOSS software uses IEC units and KDE Plasma is a good example: file manager, package manager etc. uses IEC units. Simply put, JEDEC added the binary meaning to decimal units, so at first MB (and now) only carried decimal meaning (until JEDEC shit out their standard). And the only reason why “gibibyte” is ridiculous, is because we all grew up with JEDEC interpretation of SI units. So it will take many generations for everyone to adapt xxbityte words into daily conversations. I’m (already) doing my part. It’s just the legacy that we have to deal with.

            All international bodies (BIPM, NIST, EU) agree that the SI prefixes “refer strictly to powers of 10” and that the binary definitions “should not be used” for them.

            https://en.wikipedia.org/wiki/Binary_prefix#IEC_1999_Standard

            https://en.wikipedia.org/wiki/Binary_prefix#Other_standards_bodies_and_organizations

            https://en.wikipedia.org/wiki/JEDEC_memory_standards#JEDEC_Standard_100B.01

            • HopFlop@discuss.tchncs.de
              link
              fedilink
              arrow-up
              0
              ·
              6 months ago

              Well, thank you for taking the time to write this detailed explanation!

              Windows and MacOS use the abbriviation “MB” referring to the binary units, correct? How come that these big OS’s use another unit than these large international bodies recognize?

              On a side note, I’ve always found it weird why HDDs or SSDs are/were sold with 128GB, 265GB, 512GB etc. when they are referring to decimal units.

              • Andrew@mander.xyz
                link
                fedilink
                arrow-up
                0
                ·
                6 months ago

                Windows and MacOS use the abbriviation “MB” referring to the binary units, correct?

                Yez. I’m only sure about the first one, but didn’t test myself whether the macOS is using power of 2 or 10 under the hood (of MB). You can open properties of something big and try converting raw number of bytes with /1024^n and /1000^n and compare the end results.

                How come that these big OS’s use another unit than these large international bodies recognize?

                Legacy, legacy everywhere (IMO). And of course they don’t want to confuse their precious users that don’t know any better. And this also would break some scripts that rely on that specific output. GNU C library also uses JEDEC units by default, hence flatpak and other software.

                On a side note, I’ve always found it weird why HDDs or SSDs are/were sold with 128GB, 265GB, 512GB etc. when they are referring to decimal units.

                It is weird for everyone, because we mainly only count with multiples of 2 when it comes to digital size of information. I didn’t investigate why they use power of 10, but I’ve seen that some other hardware also uses decimal units (I think at least in RAM, but JEDEC is used intentionally or not for CPU cache memory). I had a link where the RAM thingy is lightly addressed, but I couldn’t find it.

                spoiler

                P.S. it’s “OSes” and “macOS” BTW.