1. 7
  1. 3

    This is very impressive computer science done by nvidia engineers. It just sucks that it’s hamstrung by a terrible distribution model. For a vast amount of software, adding a dependency on a proprietary compiler just isn’t going to fly. Especially when OpenCL, OpenGL compute shaders and Vulkan compute shaders all exist. Those obviously provide a worse development experience, but a better user experience (since more GPUs are supported), and – crucially for open-source projects – don’t require proprietary tools to build.

    The license agreement contains fun tidbits, such as:

    … NVIDIA grants you a … license … to Install and use the SOFTWARE only on computer system(s) running a specific operating system on which the SOFTWARE is designed to run and for which the SOFTWARE is intended to produce an executable image (“Target Systems”)

    That just seems evil to me. It means that trying to get the SDK to run on unsupported versions of Linux, or on Windows, or on MacOS, or on any BSD, is a violation of copyright law (at least if that part of the license is actually enforceable).

    It also contains:

    You shall strictly prohibit the further distribution of the Run-Time Files by users of an End-User Application

    So it seems you’re not allowed to compile software using the HPC SDK and then release the binaries under a license which allows a user to redistribute the binary.

    You also “agree to notify NVIDIA in writing of any known or suspected distribution or use of the SOFTWARE not in compliance with the requirements of this SLA, and to enforce the terms of your agreements with respect to distributed SOFTWARE”. I don’t know how that would be interpreted exactly, but it sounds a lot like I would be forced to send a written notice to nvidia if I ever see the HPC SDK on pirate sites, or if I see a software project which uses the HPC SDK but doesn’t have the required attribution, etc etc etc.

    I’ll pass on this one.

    1. 1

      For a vast amount of software, adding a dependency on a proprietary compiler just isn’t going to fly.

      I don’t think that’s the target market, anyway. Considering that they used LULESH from Lawrence Livermore as an example, it seems they’re targeting large HPC installations, and those won’t have any qualms about switching to a proprietary compiler if it delivers a big enough speed up and they don’t distribute binaries so it’s a non-issue for them. According to this technical report they were fine using Intel’s compiler, and whatever proprietary system they needed to compile for the BlueGene super computer.

      1. 2

        Yeah, obviously execs at nvidia aren’t stupid, they know what they’re doing. If they thought they could make more money through releasing the compiler under an open source (or just less hostile) license they would have. It’s just sad that this is remarkable feat of computer science gets relegated to a few niche use cases when the technology behind it would have the potential to significantly improve the world of computing.

        1. 1

          For context: The NVIDIA HPC SDK is the continuation of the (quite expensive) PGI compiler. It only went from paid at huge prices to free and publicly accessible this August. Currently, the EULA didn’t quite get adapted for that fact yet.

          For changing that license that is much less appropriate now that much more people can use it, I’ll ask NVIDIA about it, I cannot provide guarantees though.

    2. 1

      Perhaps a reaction to AMD ROCm stack?