Announcement

Collapse
No announcement yet.

Gallium3D Is Getting Closer To Support NIR As An Alternate IR

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gallium3D Is Getting Closer To Support NIR As An Alternate IR

    Phoronix: Gallium3D Is Getting Closer To Support NIR As An Alternate IR

    Mesa's Gallium3D drivers are stepping closer to supporting the NIR intermediate representation as a tier-one IR...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    i hope that nir will make gallium faster

    Comment


    • #3
      Originally posted by davidbepo View Post
      i hope that nir will make gallium faster
      it can make faster only drivers using nir. amd drivers do not use it.

      Comment


      • #4
        Originally posted by pal666 View Post
        it can make faster only drivers using nir. amd drivers do not use it.
        How about Intel? Is this good for them? They use nir but not gallium.

        Could someone explain simply how all the pieces fit together and how this helps?

        Comment


        • #5
          Originally posted by slacka View Post

          How about Intel? Is this good for them? They use nir but not gallium.

          Could someone explain simply how all the pieces fit together and how this helps?
          Disclaimer: I do not work on Mesa or any other GPU driver. Confirmation from people involved would be appreciated.

          There are AFAIK 5 major IRs in Mesa: GLSL IR, which is basically an abstract syntax tree of GLSL. This is originally where the Intel driver used ,to do its optimizations.
          Now the Intel driver converts into NIR (the second IR) and optimizes in that form.
          Then there is TGSI, the original IR for Gallium. Gallium used to convert GLSL IR ⇒ TGSI before passing to the pipe drivers. Now apparently Gallium drivers can accept NIR as well.
          Then, SPIR-V. I think there was work to make Gallium drivers accept SPIR-V as well, but maybe that is now irrelevant since SPIR-V ⇔ NIR is (so I've heard) really easy, because that's what they were designed for.
          Lastly, certain drivers (at least radeonsi) create LLVM IR and let LLVM create their GPU-specific ISA for them.

          So no, this is not directly relevant to Intel, except that maybe now developers of gallium drivers may work on NIR optimizations as well.

          Comment


          • #6
            Originally posted by CrystalGamma View Post
            SPIR-V ⇔ NIR
            Offtop: I'd recommend to not use the double arrow in the sense "converting back and forth", at least not without the word "converting", because it is really hard to read. The sentence by default being read as "SPIR-V is equivalent to NIR", and I were rereading it for a minute before figured out the other meaning. I'm writing that because I see the second time it is used like this, and if you really want to use it this way, then at least add the word "converting" to clear the confusion up.

            Comment


            • #7
              Originally posted by Hi-Angel View Post
              Offtop: I'd recommend to not use the double arrow in the sense "converting back and forth", at least not without the word "converting", because it is really hard to read. The sentence by default being read as "SPIR-V is equivalent to NIR", and I were rereading it for a minute before figured out the other meaning. I'm writing that because I see the second time it is used like this, and if you really want to use it this way, then at least add the word "converting" to clear the confusion up.
              As long as “SPIR-V ⇔ NIR conversion” is OK, I guess I can do that. But doesn't logical equivalence imply two forms of the same information, just like two data formats for the same data, anyway?
              I just used that arrow because it's easy to type on my keyboard layout.

              Comment


              • #8
                Originally posted by CrystalGamma View Post
                But doesn't logical equivalence imply two forms of the same information, just like two data formats for the same data, anyway?
                Well, it is meant to be used with boolean expressions (I didn't see other uses, but I'm just a student, and abuse of notation by mathematicians not a rare thing), but as "SPIR-V" and NIR" are rather names, the most natural explanation that comes in mind is "SPIR-V have one-to-one correspondence with NIR". It is somewhat close to conversion means though, but definitely not what you wanted to say.

                Originally posted by CrystalGamma View Post
                I just used that arrow because it's easy to type on my keyboard layout.
                I thought you're using Compose key
                Last edited by Hi-Angel; 28 March 2016, 07:44 AM. Reason: add: about abuse

                Comment


                • #9
                  Originally posted by Hi-Angel View Post
                  Well, it is meant to be used with boolean expressions (I didn't see other uses, but I'm just a student, and abuse of notation by mathematicians not a rare thing), but as "SPIR-V" and NIR" are rather names, the most natural explanation that comes in mind is "SPIR-V have one-to-one correspondence with NIR". It is somewhat close to conversion means though, but definitely not what you wanted to say.

                  I thought you're using Compose key
                  Well mathematicians don't have a monopoly on arrows (or at least they shouldn't IMO).

                  And yes, I am using Compose, but no, not for this character.
                  I see that project you linked to has a few compose sequences that I could have used on multiple occasions (up arrow and down arrow for up- or down-trends for example). I didn't even know you could set compose sequences on a per-user basis.
                  I'll definitely check that out and maybe contribute a sequence for ⇄ U+21C4 RIGHTWARDS ARROW OVER LEFTWARDS ARROW or ⇌ U+21CC RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON and start using that instead for transformations/conversions.

                  Comment


                  • #10
                    CrystalGamma if you're going to use that file, note that the combinations — as noted in the README — are collected in a way to not conflict with the default ones. You might probably want to rebind some of them in a way, overwritting the existing ones, yet more comfortable. E.g. the superscript letters like "ⁿ" are produced by default with «Compose + ^ + ^ + n», because «Compose + ^ n» would produce "n̂". But at first superscript letters are needed more often, and at second the file have combining Unicode cap too, i.e. "̂"

                    Comment

                    Working...
                    X