Monday, October 15, 2012

NVidia And The FOSS Community

English: NVIDIA Tegra T2 based Embedded Comput...
English: NVIDIA Tegra T2 based Embedded Computer Module in SoDIMM format by Toradex, Switzerland (Photo credit: Wikipedia)

Background

I've observed over the years that the FOSS (Free/Open Source Software) community loves to hate NVidia. Linus Torvalds, creator of the Linux kernel famously gave NVidia the finger and dropped the F bomb when describing how he felt about the company earlier this year. Torvalds isn't known for mincing words but at times he's also been less than popular with the hard core FOSS crowd for failing to be completely pure in his adherence to Open Source ideals so its probably safe to describe that event as a low point.

My roots in the FOSS community go back a long way. I did some work on porting the shadow password suite to SunOS at one point and wrote or edited the bulk of the early MySQL documentation. I also did a lot of work on a now defunct open source task tracking system called "request". I love the ideals of open source software but there are times when the sense of entitlement expressed by some adherents annoys me. Companies and individuals have to generate enough revenues to get by. If they don't bad things happen. While pictures of people with signs saying "Will code for food" are amusing the reality of being in that situation isn't.

Balancing the interests of FOSS ideals with the need to provide for ones shareholders or family is tricky, complicated and absolutely necessary.

In researching this article I was pleasantly surprised to see that there have been changes recently that may signal an improvement in the relationship between NVidia and the FOSS community. This will hopefully be a good thing for both sides.


The Main Issue

The central beef of the FOSS community with NVidia has centered on the companies refusal to release an open source driver for their video cards. Making matters worse NVidia has also refused to release technical details that would enable others to do so; that is starting to change though. NVidia recently released technical details on the 2D portion of their Tegra architecture. Some sources claim there will be a release of information on the 3D portion of the Tegra line as well. I couldn't find anything on NVidia's site at this time but I did find the following text at

http://developer.nvidia.com/mobile/tegra-documentation

The Tegra Technical Reference Manuals are technical documents targeted at those working on open source or other low level software projects that use or target the Tegra 2 or 3 processors.

Unfortunately at this time, NVIDIA cannot provide access to the TRM (or accompanying Embedded Controller Interface documentation) but please check back to http://developer.nvidia.com in the near future for more information


The potential implication here are very promising.

The question a lot of FOSS adherents struggle with is why doesn't NVidia just open up their source and documentation right away? There are probably a lot of reasons for that but if I were to guess, the primary reason probably has to do with being a publicly traded company with shareholders and employees that expect to be rewarded for their investment of money and/or time.

NVidia likely has a number of trade secrets as well as partner code incorporated into their hardware and software. Trade secrets aren't secrets if they are documented in text or code that is widely available. In an ideal world there would be no need for such secrets but the world we live in is far from ideal.

If I'm correct, releasing code or documentation would require a non trivial amount of work on NVidia's part to sanitize and remove anything they either didn't own or didn't want to reveal. That work would need to be done by valuable staff that could be working on other projects which would create both an up front cost and what is referred to int he business world as an "opportunity cost". Companies incur opportunity costs when they choose to work on one thing rather than another. Smart companies make the right choice on where to focus their resources more often than not. There has to be a strong business case for NVidia to justify making this effort. If there isn't, it simply won't happen.

Yes, other companies have gone down this path successfully but that doesn't mean NVidia must or should. Another consideration is that every decision a company makes is going to reflect on its brand. NVidia has in the past essentially chosen to annoy the FOSS community rather than lose some control of how their product is perceived from a performance and reliability perspective. Is that a good choice? It depends on who you are I guess. On balance NVidia has apparently felt it is.

I covered this in passing above but want to reinforce the point. Time to market in the technology sector is critical. Being first at a particular performance point can be a huge advantage. AMD was able to put Intel back on its heels for a few years by releasing processors that provided a 64 bit IA-32 compatible instruction set and much better performance than anything Intel had. Keeping their drivers closed allows NVidia to license technology from other companies more easily than they could if their driver were FOSS. It also means all driver related coordination can take place within the company. That control likely equates to shorter time to market which translates into money.

Can those difficulties be overcome? Sure but the old missive "If it ain't broke don't fix it" comes to mind. Innovation is good, but change without a strong business case is the road to ruin.


The Larger Picture/The Future

Rumors to the contrary NVidia isn't universally opposed to FOSS. NVCC, NVidia's CUDA compiler is built on the LLVM FOSS compiler infrastructure and earlier this year NVidia released NVCC and contributed it back to the larger community as open source software. That's a big chunk of code with a lot of functionality. Why would NVidia have done that? Only they know for sure but I'm betting they did it because they saw it as being beneficial to their customers and to themselves. Its easy to make a business case when those two things are in alignment.

NVidia has also shown a willingness to express support for causes near and dear to many FOSS community members such as stating they did not support SOPA

If I were to guess I'd say we'll likely see more support for FOSS from NVidia going forward. This is only going to happen though if it makes sense for NVidia. Benefiting the FOSS community at its own expense is not in the best interest of NVidia or the majority of its customers.

Getting something valuable for free is always going to be attractive. Providing something valuable for free is a much harder case to make. At the end of the day that dichotomy explains the bulk of the divide between the FOSS community and companies like NVidia.

Related Articles:
Enhanced by Zemanta

No comments:

Post a Comment