Announcement

Collapse
No announcement yet.

NVIDIA, Mentor Graphics May Harm GCC

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

  • IanS
    replied
    Personally I don't care much either way how this plays out, but here are a few things to keep in mind.

    There is nothing about this that would violate the license of the GCC, but since GCC is managed by the very political FSF one does have to consider what sort of implications this holds for FSF and their Free software agenda. (Whether or not you agree with that agenda is not at issue here, but it must be recognized as a valid consideration in their decision on accepting this into one of their projects.)

    This is where things become a bit more questionable. The spec is called OpenACC, not NvidiaACC, yet the solution being proposed by Mentor Graphics is clearly biased in favor of Nvidia hardware and their closed source drivers that contain the PTX compiler which is closely tied to the Nvidia-exclusive CUDA technology. The main complaint here is that Mentor Graphics should be taking a more vendor neutral approach towards implementing OpenACC that targets the major ISAs. Instead they are focusing on targeting PTX which is something of a virtual machine layer that masks the Nvidia ISA.

    The PTX ISA is publicly available though, and it is technically possible for other vendors to write their own compilers for it, but that doesn't change the fact that PTX is rather specific to CUDA and may not map well to OpenCL which most other vendors would be using.

    Leave a comment:


  • johnc
    replied
    From above:

    I use GCC in conjunction with proprietary assemblers and/or linkers to compile my program. Can I still take advantage of the exception?

    Yes. The Compilation Process ends when the compiler generates Target Code, which includes output that is “suitable for input to an assembler, loader, linker and/or execution phase.” In other words, the Compilation Process in this case is over when you have assembly code or unlinked object files from GCC, and so it does not involve any proprietary software. It qualifies as Eligible, and the exception is thus available for this program.

    Leave a comment:


  • johnc
    replied
    Originally posted by tarceri View Post
    GCC would be encouraging the use of proprietary software this is should be a concern to the GNU project.



    CPU's don't have drivers that compile assembly code gcc creates the machine code

    Basic gcc compilation process:

    - preprocessing (to expand macros)
    - compilation (from source code to assembly language)
    - assembly (from assembly language to machine code)
    - linking (to create the final executable)

    GCC can be used to create non-free programs; is this encouraging the use of proprietary software?

    What part of this license is going to be violated by this method?

    http://www.gnu.org/licenses/gcc-exception-3.1-faq.html

    Leave a comment:


  • IanS
    replied
    Originally posted by ldesnogu View Post
    As far as I know ARM doesn't provide documentation for their GPUs. Imagination don't either. And Qualcomm don't.

    In fact, I guess only Intel and AMD have provided doc for their instruction set, so Michael's contact seems wrong about everyone publishing documentation...
    ARM:
    http://infocenter.arm.com/help/index.jsp
    http://infocenter.arm.com/help/topic...RC0001_UAL.pdf

    Imagination:
    http://www.imgtec.com/mips/developers/whitepapers.asp

    Qualcomm:
    You need to sign up with https://developer.qualcomm.com/ to access anything useful that is specific to Qualcomm products, but both Adreno and Snapdragon use the ARM ISA anyhow so it isn't a big deal in this case.

    It took me less than 5 minutes to find all of this.

    Leave a comment:


  • tarceri
    replied
    Originally posted by GreatEmerald View Post
    Again, no, it's not a requirement. It's separate from GCC. It's not like now installing GCC would pull in proprietary software, it's rather like the proprietary software supporting the output of GCC. GCC makes the output, and proprietary software just so happens to be able to use it as an input. But that's of no concern of GCC.
    GCC would be encouraging the use of proprietary software this is should be a concern to the GNU project.

    Originally posted by johnc View Post
    Nobody has yet to explain what, exactly, the issue is here and how it is principally different then what is quite ordinary today.

    When you compile code into x86 assembly, is there not some closed-source microcode on the Intel or AMD chip that converts that into binary code? What is the difference here?
    CPU's don't have drivers that compile assembly code gcc creates the machine code

    Basic gcc compilation process:

    - preprocessing (to expand macros)
    - compilation (from source code to assembly language)
    - assembly (from assembly language to machine code)
    - linking (to create the final executable)

    Leave a comment:


  • rvdboom
    replied
    Originally posted by GreatEmerald View Post
    And a proprietary application compiled with GCC can have a dependency on external proprietary libraries (probably even the same CUDA libraries), without which the program won't run. Again it's of no concern to GCC.
    That makes sense, I guess.

    Leave a comment:


  • rvdboom
    replied
    Originally posted by Temar View Post
    And? Is that a reason not to support it? Most of your hardware in your computer has most likely a proprietary firmware and you still use it. If Nvidia cards could directly understand PTX would the new backend suddenly be OK then?
    It can be a reason for GCC not support it as it's a FSF project and FSF do not have such relaxed stance. Actually, I don't know personnaly if it's a valid reason or not, but I consider valid to ponder about it. Is it fitting the goals of openness of GCC to be able to generate code that can only be used using proprietary, closed source libraries? It is not a simple question.

    Originally posted by Temar View Post
    Most developers? All I see is that most big OpenSource projects have a very relaxed stance. Just look at the Linux kernel itself or projects like Blender, XBMC and so on. Of course this all happens within the confinements of the GPL but that's ok. Even important as it keeps those projects free.
    Well the kernel itself warns you that it's "tainted" when you use NVidia's proprietary driver. And it's definititely

    Originally posted by Temar View Post
    All I can see is that many people on Phoronix have a blind hate for anything that is closed source. Whereas most of the actual open source developers have a relaxed view.
    I disagree with you. Free software and open source as expressed by every developpers I've read tolerate closed source when there's absolutely no other choice, but request open source as much as possible. And the FSF definitely does not want any.
    The only people I see that have such tolerance are some users who are using Linux for their stuff but are not really concerned by openness.

    Originally posted by Temar View Post
    Simply because Linux is the best tool for my line of work. It's that easy, no hidden agendas and no fanboism, neither for free nor for closed software. I simply want a tool that works best and this new gcc backend is another step to an even better tool.
    There you go.

    Leave a comment:


  • johnc
    replied
    Nobody has yet to explain what, exactly, the issue is here and how it is principally different then what is quite ordinary today.

    When you compile code into x86 assembly, is there not some closed-source microcode on the Intel or AMD chip that converts that into binary code? What is the difference here?

    Leave a comment:


  • GreatEmerald
    replied
    Originally posted by log0 View Post
    More like GCC making output for proprietary software (I don't see what PTX would be else useful for). To make it more extreme, you could see it as a way of adding proprietary plugins to GCC (with PTX being the interface here), which it kinda goes against what gnu stands for.
    As I mentioned, people might be able to find some other use for it in the future, even if not very likely. And I don't see how that is similar to adding proprietary plugins at all.

    Leave a comment:


  • Sonadow
    replied
    Originally posted by Pawlerson View Post
    Pardon me, but you're terribly mistaken. Being open has nothing common with supporting every system around. Those "real open source UNIX like systems" are irrelevant today. Following your logic most of the Open Source software is not open, because it focuses mainly on Linux. Your assumption is clearly incorrect.
    QFT. Open != cross-platform

    There are tons of opensource projects that target Windows or OS X exclusively.

    Leave a comment:

Working...
X