Announcement

Collapse
No announcement yet.

Open-Source Nouveau Linux 4.10 + NvBoost vs. NVIDIA Proprietary Linux Driver Performance

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

  • #21
    Originally posted by Hi-Angel View Post
    Could you link an article? Keywords "wine microsoft problems" didn't come up with anything relevant.

    Comment


    • #22
      Ah, you meant in general. I see, I thought you were talking about an incident.

      Comment


      • #23
        Originally posted by DMJC View Post
        Imirkin: What are the holdups on the 7** series hitting the same performance as the binaries? Do we actually have information on that now? Aside from re-clocking, are there other areas of the codebase which need improvement and what level of difficulty is this to work on? What sort of things can be done to improve the performance on the cards which do have working reclocking?
        So, before providing a list, you have to realize that the NVIDIA proprietary driver has had literally thousands of man-years worth of development on it. Nouveau ... has not. And that's ignoring the various documentation access/hw access considerations. That said,

        (a) ZCULL (similar to HiZ) - not implemented on nouveau. This requires figuring out how to configure all the ZCULL stuff, and working out when it has to be invalidated, etc., and then teaching nouveau about it. We've been sliding by on some of these things as a result of not using ZCULL, so I suspect this will be an involved project.
        (b) Instruction scheduling - not implemented on nouveau - this could be huge, as the default schedule sucks. However this is very complicated as a successful strategy will also have to account for register pressure.
        (c) General compiler improvements - nouveau's compiler is pretty good, but it's not exactly gcc in terms of sophistication. Most of the time I don't see any obvious optimizations in shaders, but every so often things pop up. If they're easy, I implement the opt, otherwise I let it be. One could take a few AAA games and see what they do and try to optimize those extensively. This would likely yield improvements all over the place.
        (d) Chip tuning. These chips have tons and tons of various tuning settings. We barely know what they do, much less how to tune them. No clue how big of a difference it can make though.

        None of these are particularly easy, but except for the last one, should all be achievable with sufficient dedication. However there aren't exactly a lot of qualified people who are looking to work on this stuff, so it sits idle. I'm sure there are other ways to improve things as well, esp around buffer management/movement, but that's even less clear in my mind as to what the "task" is.

        Comment


        • #24
          Originally posted by imirkin View Post

          So, before providing a list, you have to realize that the NVIDIA proprietary driver has had literally thousands of man-years worth of development on it. Nouveau ... has not. And that's ignoring the various documentation access/hw access considerations. That said,

          (a) ZCULL (similar to HiZ) - not implemented on nouveau. This requires figuring out how to configure all the ZCULL stuff, and working out when it has to be invalidated, etc., and then teaching nouveau about it. We've been sliding by on some of these things as a result of not using ZCULL, so I suspect this will be an involved project.
          (b) Instruction scheduling - not implemented on nouveau - this could be huge, as the default schedule sucks. However this is very complicated as a successful strategy will also have to account for register pressure.
          (c) General compiler improvements - nouveau's compiler is pretty good, but it's not exactly gcc in terms of sophistication. Most of the time I don't see any obvious optimizations in shaders, but every so often things pop up. If they're easy, I implement the opt, otherwise I let it be. One could take a few AAA games and see what they do and try to optimize those extensively. This would likely yield improvements all over the place.
          (d) Chip tuning. These chips have tons and tons of various tuning settings. We barely know what they do, much less how to tune them. No clue how big of a difference it can make though.

          None of these are particularly easy, but except for the last one, should all be achievable with sufficient dedication. However there aren't exactly a lot of qualified people who are looking to work on this stuff, so it sits idle. I'm sure there are other ways to improve things as well, esp around buffer management/movement, but that's even less clear in my mind as to what the "task" is.
          b, c, and partially a doesn't sound especially GPU-specific, does it? Wasn't it already been done in the general Mesa codebase via various helper functions?

          Comment


          • #25
            Originally posted by Hi-Angel View Post
            b, c, and partially a doesn't sound especially GPU-specific, does it? Wasn't it already been done in the general Mesa codebase via various helper functions?
            Instruction scheduling is the most GPU-specific thing that there is. Different GPU generations want different schedules, and might even have different mechanisms for hiding latency. One could imagine a generic framework for specifying this sort of thing, and one could call it "LLVM", but no such thing exists in Mesa. As for "General compiler improvements"... well, you could look at it being more generic, but as of right now, it's not. Nouveau had a relatively sophisticated SSA-based compiler years before Intel did. Unfortunately instead of building on that, the Intel folk decided to create their own universe, which is now catching up, and probably exceeding Nouveau's capabilities in many areas (not surprising - it's probably had 10x the manpower poured into it). However nouveau was unable to benefit from any of that. Separately, all GPUs have various "special" things about them, it's not like there's a standardized "GPU instruction set", so you'll always have some amount of per-GPU-specific stuff.

            Comment


            • #26
              This is a great read. Thank you all.

              Comment


              • #27
                free man on the land stuff seems really useful in this legal swamp. "you can not contribute code if you know what it is"

                Comment


                • #28
                  Originally posted by MoonMoon View Post

                  And that is a good thing. Leaked code from Nvidia drivers would open up nouveau for all kinds of lawsuits if they have code that even very losely looks like anything in the leaked code. A developer that has looked at that leaked code will never again be able to work for nouveau.
                  Reverse engineering is protected by law in the EU though.

                  "(15) The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author. Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary information to achieve the interoperability of an independently created program with other programs. It has therefore to be considered that, in these limited circumstances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the rightholder. An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together. Such an exception to the author's exclusive rights may not be used in a way which prejudices the legitimate interests of the rightholder or which conflicts with a normal exploitation of the program."

                  If someone wants to make a tool to hack nvidias firmware and binary drivers i am all for it and would join.

                  sidenote: this is about copyrights. if sold while infringing patents it is an entire different story...
                  Last edited by cj.wijtmans; 09 January 2017, 11:04 AM.

                  Comment


                  • #29
                    Originally posted by cj.wijtmans View Post
                    Reverse engineering is protected by law in the EU though.

                    "(15) The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author. Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary information to achieve the interoperability of an independently created program with other programs. It has therefore to be considered that, in these limited circumstances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the rightholder. An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together. Such an exception to the author's exclusive rights may not be used in a way which prejudices the legitimate interests of the rightholder or which conflicts with a normal exploitation of the program."

                    If someone wants to make a tool to hack nvidias firmware and binary drivers i am all for it and would join.
                    Atleast the EU has one good thing about it!

                    OH!

                    alright, no more political jokes, lol

                    Comment


                    • #30
                      Originally posted by AdamOne View Post

                      Atleast the EU has one good thing about it!

                      OH!

                      alright, no more political jokes, lol
                      Yeah well the good does not outweigh the bad when talking about the EU though.

                      Comment

                      Working...
                      X