View Single Post
Old 02-12-2020, 09:38 PM
Heracles's Avatar
Heracles is offline
Join Date: Jul 2009
Location: Southern Québec, Canada
Posts: 1,724
In my ordinary Lenovo desktop PC, the Intel Core i5 microprocessor is Intel's proprietary technology. However, the hardware interfaces, the processor's instruction set and timing are documented by Intel, so that people can actually use the chip to build computers and operating systems. The same goes for other components of the PC: memory, disk controllers, video chips, etc. So it's possible to design an open-source compiler, such as gcc, to compile programs for the Core i5, and to create an open-source kernel, such as Linux, to run on this microprocessor, and build an entire open-source operating system around this kernel.

This doesn't mean that the microcode running inside the Core i5 is publicly documented: it isn't. We only found out a couple of years ago that there was a version of MINIX running inside the processor, fer cryin' out loud.

For CUDA, nVidia has intellectual property (patents) that it can use to legally prevent any other manufacturer from making hardware that behaves exactly like a CUDA chip; so CUDA itself is proprietary. The plans for the CUDA hardware are not made public. However, like Intel, nVidia wants people to use its amazing chips, so it publishes documentation and libraries that programmers can use to target CUDA, and has also chosen to contribute some source code to the LLVM compiler project so that people can more easily write programs that target the CUDA hardware. So there is an open-source compiler for CUDA, but CUDA itself remains the property of nVidia.

Last edited by Heracles; 02-12-2020 at 09:41 PM.